* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2014 Roderick W. Smith
*
* Modifications distributed under the terms of the GNU General Public
* License (GPL) version 3 (GPLv3), a copy of which must be distributed
#include "../refind/screen.h"
#include "../refind/lib.h"
#include "../include/refit_call_wrapper.h"
+#include "libeg.h"
+#include "../include/Handle.h"
#include <efiUgaDraw.h>
#include <efiConsoleControl.h>
UINT8 *FileData;
UINTN FileDataLength;
UINTN Index;
+ UINTN ssNum;
+ CHAR16 Filename[80];
+ EFI_FILE* BaseDir;
Image = egCopyScreen();
if (Image == NULL) {
goto bailout_wait;
}
+ Status = egFindESP(&BaseDir);
+ if (EFI_ERROR(Status))
+ return;
+
+ // Search for existing screen shot files; increment number to an unused value...
+ ssNum = 001;
+ do {
+ SPrint(Filename, 80, L"screenshot_%03d.bmp", ssNum++);
+ } while (FileExists(BaseDir, Filename));
+
// save to file on the ESP
- Status = egSaveFile(NULL, L"screenshot.bmp", FileData, FileDataLength);
+ Status = egSaveFile(BaseDir, Filename, FileData, FileDataLength);
FreePool(FileData);
- if (EFI_ERROR(Status)) {
- Print(L"Error egSaveFile: %x\n", Status);
+ if (CheckError(Status, L"in egSaveFile()")) {
goto bailout_wait;
}