Add taking screenshots to a few more places

This commit is contained in:
Pk11 2021-08-14 13:54:37 -05:00
parent fe50b15537
commit 9df88c6b7f
4 changed files with 26 additions and 4 deletions

View File

@ -9,6 +9,7 @@
#include "file_browse.h" #include "file_browse.h"
#include "font.h" #include "font.h"
#include "ndsheaderbanner.h" #include "ndsheaderbanner.h"
#include "screenshot.h"
#define copyBufSize 0x8000 #define copyBufSize 0x8000
#define shaChunkSize 0x10000 #define shaChunkSize 0x10000
@ -218,7 +219,7 @@ int fcopy(const char *sourcePath, const char *destinationPath) {
} }
void changeFileAttribs(const DirEntry *entry) { void changeFileAttribs(const DirEntry *entry) {
int pressed = 0; int pressed = 0, held = 0;
int cursorScreenPos = font->calcHeight(entry->name); int cursorScreenPos = font->calcHeight(entry->name);
uint8_t currentAttribs = FAT_getAttr(entry->name.c_str()); uint8_t currentAttribs = FAT_getAttr(entry->name.c_str());
uint8_t newAttribs = currentAttribs; uint8_t newAttribs = currentAttribs;
@ -242,6 +243,7 @@ void changeFileAttribs(const DirEntry *entry) {
font->update(true); font->update(true);
scanKeys(); scanKeys();
held = keysHeld();
pressed = keysDown(); pressed = keysDown();
swiWaitForVBlank(); swiWaitForVBlank();
} while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_RIGHT) && !(pressed & KEY_LEFT) } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_RIGHT) && !(pressed & KEY_LEFT)
@ -260,6 +262,8 @@ void changeFileAttribs(const DirEntry *entry) {
break; break;
} else if (pressed & (KEY_A | KEY_B)) { } else if (pressed & (KEY_A | KEY_B)) {
break; break;
} else if (held & KEY_R && pressed & KEY_L) {
screenshot();
} }
} }
} }

View File

@ -174,7 +174,7 @@ void showDirectoryContents (const std::vector<DirEntry>& dirContents, int fileOf
} }
FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) { FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
int pressed = 0; int pressed = 0, held = 0;
std::vector<FileOperation> operations; std::vector<FileOperation> operations;
int optionOffset = 0; int optionOffset = 0;
std::string fullPath = path + entry->name; std::string fullPath = path + entry->name;
@ -287,9 +287,9 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
scanKeys(); scanKeys();
pressed = keysDownRepeat(); pressed = keysDownRepeat();
held = keysHeld();
swiWaitForVBlank(); swiWaitForVBlank();
} while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) } while (!(pressed & (KEY_UP| KEY_DOWN | KEY_A | KEY_B | KEY_L))
&& !(pressed & KEY_A) && !(pressed & KEY_B)
#ifdef SCREENSWAP #ifdef SCREENSWAP
&& !(pressed & KEY_TOUCH) && !(pressed & KEY_TOUCH)
#endif #endif
@ -435,6 +435,10 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
scanKeys(); scanKeys();
pressed = keysDownRepeat(); pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
if(keysHeld() & KEY_R && pressed & KEY_L) {
screenshot();
}
} while (!(pressed & (KEY_A | KEY_Y | KEY_B | KEY_X))); } while (!(pressed & (KEY_A | KEY_Y | KEY_B | KEY_X)));
break; break;
} case FileOperation::none: { } case FileOperation::none: {
@ -453,6 +457,11 @@ FileOperation fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
screenSwapped ? lcdMainOnBottom() : lcdMainOnTop(); screenSwapped ? lcdMainOnBottom() : lcdMainOnTop();
} }
#endif #endif
// Make a screenshot
if ((held & KEY_R) && (pressed & KEY_L)) {
screenshot();
}
} }
} }

View File

@ -46,6 +46,8 @@ u32 jumpToOffset(u32 offset) {
cursorPosition--; cursorPosition--;
} else if(pressed & (KEY_A | KEY_B)) { } else if(pressed & (KEY_A | KEY_B)) {
return offset; return offset;
} else if(keysHeld() & KEY_R && pressed & KEY_L) {
screenshot();
} }
} }
} }
@ -79,6 +81,8 @@ u32 search(u32 offset, FILE *file) {
break; break;
} else if(pressed & KEY_B) { } else if(pressed & KEY_B) {
return offset; return offset;
} else if(keysHeld() & KEY_R && pressed & KEY_L) {
screenshot();
} }
} }
@ -160,6 +164,8 @@ u32 search(u32 offset, FILE *file) {
if(cursorPosition > strLen * 2 - 1) if(cursorPosition > strLen * 2 - 1)
cursorPosition -= 2; cursorPosition -= 2;
} }
} else if(keysHeld() & KEY_R && pressed & KEY_L) {
screenshot();
} }
} }
} }

View File

@ -2,6 +2,7 @@
#include "date.h" #include "date.h"
#include "font.h" #include "font.h"
#include "screenshot.h"
#include "tonccpy.h" #include "tonccpy.h"
#include <nds.h> #include <nds.h>
@ -120,6 +121,8 @@ void ndsInfo(const char *path) {
lang++; lang++;
} else if(pressed & KEY_B) { } else if(pressed & KEY_B) {
break; break;
} else if(keysHeld() & KEY_R && pressed & KEY_L) {
screenshot();
} }
} }