Skip to content

Commit dd70596

Browse files
committed
pulled and resolved conlicts
2 parents 9c741fc + addf9a3 commit dd70596

File tree

3 files changed

+29
-38
lines changed

3 files changed

+29
-38
lines changed

src/drivers/dingux-sdl/dingoo.cpp

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -293,38 +293,30 @@ void handle_sigusr1(int sig)
293293
/* Quick save and turn off the console */
294294
void quick_save_and_poweroff()
295295
{
296-
/* Vars */
297-
char shell_cmd[2048];
298-
FILE *fp;
299-
300-
/* Send command to kill any previously scheduled shutdown */
301-
sprintf(shell_cmd, "pkill %s", SHELL_CMD_SCHEDULE_POWERDOWN);
302-
fp = popen(shell_cmd, "r");
303-
if (fp == NULL) {
304-
printf("Failed to run command %s\n", shell_cmd);
296+
printf("Save Instant Play file\n");
297+
298+
/* Send command to cancel any previously scheduled powerdown */
299+
if (popen(SHELL_CMD_CANCEL_SCHED_POWERDOWN, "r") == NULL)
300+
{
301+
/* Countdown is still ticking, so better do nothing
302+
than start writing and get interrupted!
303+
*/
304+
printf("Failed to cancel scheduled shutdown\n");
305+
exit(0);
305306
}
306307

307308
/* Save */
308309
FCEUI_SaveState(quick_save_file);
309310

310-
/* Write quick load file */
311-
sprintf(shell_cmd, "%s SDL_NOMOUSE=1 \"%s\" --loadStateFile \"%s\" \"%s\"",
312-
SHELL_CMD_WRITE_QUICK_LOAD_CMD, prog_name, quick_save_file, mRomName);
313-
printf("Cmd write quick load file:\n %s\n", shell_cmd);
314-
fp = popen(shell_cmd, "r");
315-
if (fp == NULL) {
316-
printf("Failed to run command %s\n", shell_cmd);
317-
}
311+
/* Perform Instant Play save and shutdown */
312+
execlp(SHELL_CMD_INSTANT_PLAY, SHELL_CMD_INSTANT_PLAY,
313+
prog_name, "--loadStateFile", quick_save_file, mRomName, NULL);
318314

319-
/* Clean Poweroff */
320-
sprintf(shell_cmd, "%s", SHELL_CMD_POWERDOWN);
321-
fp = popen(shell_cmd, "r");
322-
if (fp == NULL) {
323-
printf("Failed to run command %s\n", shell_cmd);
324-
}
315+
/* Should not be reached */
316+
printf("Failed to perform Instant Play save and shutdown\n");
325317

326318
/* Exit Emulator */
327-
CloseGame();
319+
exit(0);
328320
}
329321

330322
static void DoFun(int fskip) {

src/drivers/dingux-sdl/menu.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -935,11 +935,9 @@ void run_menu_loop()
935935
if(menu_confirmation){
936936
MENU_DEBUG_PRINTF("Powerdown - confirmed\n");
937937
/// ----- Shell cmd ----
938-
sprintf(shell_cmd, "%s", SHELL_CMD_POWERDOWN);
939-
fp = popen(shell_cmd, "r");
940-
if (fp == NULL) {
941-
MENU_ERROR_PRINTF("Failed to run command %s\n", shell_cmd);
942-
}
938+
execlp(SHELL_CMD_SHUTDOWN_FUNKEY, SHELL_CMD_SHUTDOWN_FUNKEY, NULL);
939+
MENU_ERROR_PRINTF("Failed to run command %s\n", SHELL_CMD_SHUTDOWN_FUNKEY);
940+
exit(0);
943941
}
944942
else{
945943
MENU_DEBUG_PRINTF("Powerdown - asking confirmation\n");

src/drivers/dingux-sdl/menu.h

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,18 @@ typedef enum {RESUME_OPTIONS} ENUM_RESUME_OPTIONS;
4242
#define NOTIF_SECONDS_DISP 2
4343

4444
////------ Menu commands -------
45-
#define SHELL_CMD_VOLUME_GET "volume_get"
46-
#define SHELL_CMD_VOLUME_SET "volume_set"
47-
#define SHELL_CMD_BRIGHTNESS_GET "brightness_get"
48-
#define SHELL_CMD_BRIGHTNESS_SET "brightness_set"
49-
#define SHELL_CMD_POWERDOWN "shutdown_funkey"
50-
#define SHELL_CMD_SCHEDULE_POWERDOWN "sched_shutdown"
51-
#define SHELL_CMD_NOTIF "notif_set"
52-
#define SHELL_CMD_WRITE_QUICK_LOAD_CMD "write_args_quick_load_file"
45+
#define SHELL_CMD_VOLUME_GET "volume_get"
46+
#define SHELL_CMD_VOLUME_SET "volume_set"
47+
#define SHELL_CMD_BRIGHTNESS_GET "brightness_get"
48+
#define SHELL_CMD_BRIGHTNESS_SET "brightness_set"
49+
#define SHELL_CMD_NOTIF "notif_set"
50+
#define SHELL_CMD_WRITE_QUICK_LOAD_CMD "write_args_quick_load_file"
5351
#define SHELL_CMD_TURN_AMPLI_ON "start_audio_amp 1"
5452
#define SHELL_CMD_TURN_AMPLI_OFF "start_audio_amp 0"
55-
53+
#define SHELL_CMD_CANCEL_SCHED_POWERDOWN "cancel_sched_powerdown"
54+
#define SHELL_CMD_INSTANT_PLAY "instant_play"
55+
#define SHELL_CMD_SHUTDOWN_FUNKEY "shutdown_funkey"
56+
5657
////------ Global variables -------
5758
extern int volume_percentage;
5859
extern int brightness_percentage;

0 commit comments

Comments
 (0)