Added option to execute command when resetting CPU

This commit is contained in:
0xmac 2025-01-24 10:38:08 +01:00
parent dc23e8d7ed
commit 04f0fe2c7b
2 changed files with 12 additions and 1 deletions

View File

@ -9,6 +9,7 @@ extern uint8_t showHelp;
extern uint8_t displayMmap; extern uint8_t displayMmap;
extern uint8_t documentReload; extern uint8_t documentReload;
extern char *reloadExecute;
extern uint32_t renderMemory[]; extern uint32_t renderMemory[];
extern int openFile(); extern int openFile();
@ -27,8 +28,8 @@ void pollEvents(){
while (SDL_PollEvent(&event)){ while (SDL_PollEvent(&event)){
switch(event.type){ switch(event.type){
case SDL_QUIT: case SDL_QUIT:
printf("Exited.\n");
exit(0); exit(0);
break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
switch (event.key.keysym.scancode){ switch (event.key.keysym.scancode){
@ -49,8 +50,16 @@ void pollEvents(){
break; break;
case SDL_SCANCODE_F5: /* CPU Reset */ case SDL_SCANCODE_F5: /* CPU Reset */
if (reloadExecute[0]) {
if (system(reloadExecute)){
printf("Shell command failed!\n");
goto skip;
}
}
if (documentReload) openFile(); if (documentReload) openFile();
resetSystem(); resetSystem();
skip:
break; break;
case SDL_SCANCODE_F6: /* Scale -- */ case SDL_SCANCODE_F6: /* Scale -- */

View File

@ -40,6 +40,7 @@ unsigned long tickTrigger = 0;
char debugString[512]; char debugString[512];
char snapshotFile[32]; char snapshotFile[32];
char *reloadExecute;
char *inputFile; char *inputFile;
int openFile(){ int openFile(){
@ -78,6 +79,7 @@ void fetchArgs(int argc, char *argv[]){
//else if (!strcmp(argv[i], "--snapshot")) snapshotFile = &argv[i]; //else if (!strcmp(argv[i], "--snapshot")) snapshotFile = &argv[i];
else if (!strcmp(argv[i], "--fps")) FPS = atoi(argv[++i]); else if (!strcmp(argv[i], "--fps")) FPS = atoi(argv[++i]);
else if (!strcmp(argv[i], "--enable-reload")) documentReload = 1; else if (!strcmp(argv[i], "--enable-reload")) documentReload = 1;
else if (!strcmp(argv[i], "--reload-execute")) reloadExecute = argv[++i];
else { else {
inputFile = argv[i]; inputFile = argv[i];
if (openFile()){ if (openFile()){