From 252a4a55ad0defaeea95f65e91df83861d1364df Mon Sep 17 00:00:00 2001 From: aquanull Date: Tue, 22 Jun 2010 14:29:05 +0000 Subject: [PATCH] Allowed the user to disable keeping finished movies open. --- src/drivers/win/args.cpp | 1 + src/drivers/win/config.cpp | 5 +- src/drivers/win/main.cpp | 1 + src/drivers/win/main.h | 1 + src/drivers/win/movieoptions.cpp | 7 +- src/drivers/win/res.rc | 24 +- src/drivers/win/resource.h | 1 + src/drivers/win/window.cpp | 2 +- src/movie.cpp | 37 +- vc/vc10_fceux.vcxproj.filters | 604 +++++++++++++++---------------- 10 files changed, 349 insertions(+), 334 deletions(-) diff --git a/src/drivers/win/args.cpp b/src/drivers/win/args.cpp index ce6a3899..15a3c21f 100644 --- a/src/drivers/win/args.cpp +++ b/src/drivers/win/args.cpp @@ -57,6 +57,7 @@ char *ParseArgies(int argc, char *argv[]) {"-inputdisplay",0,&input_display,0}, {"-allowUDLR",0,&allowUDLR,0}, {"-stopmovie",0,&pauseAfterPlayback,0}, + {"-shutmovie",0,&closeFinishedMovie,0}, {"-bginput",0,&EnableBackgroundInput,0}, {"-turbo",0,&turbo,0}, {"-pause",0,&PauseAfterLoad,0}, diff --git a/src/drivers/win/config.cpp b/src/drivers/win/config.cpp index bef2b3d9..db85361d 100644 --- a/src/drivers/win/config.cpp +++ b/src/drivers/win/config.cpp @@ -277,6 +277,7 @@ static CFGSTRUCT fceuconfig[] = { AC(MLogPosY), AC(pauseAfterPlayback), + AC(closeFinishedMovie), AC(AFon), AC(AFoff), AC(AutoFireOffset), @@ -307,9 +308,9 @@ static CFGSTRUCT fceuconfig[] = { AC(RomFreezeColorB), //ACS(memwLastfile[2048]), - AC(AutoRWLoad), + AC(AutoRWLoad), AC(RWSaveWindowPos), - AC(ramw_x), + AC(ramw_x), AC(ramw_y), AC(backupSavestates), diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 6e893043..79afb074 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -684,6 +684,7 @@ int main(int argc,char *argv[]) frame_display = !!frame_display; allowUDLR = !!allowUDLR; pauseAfterPlayback = !!pauseAfterPlayback; + closeFinishedMovie = !!closeFinishedMovie; EnableBackgroundInput = !!EnableBackgroundInput; KeyboardSetBackgroundAccess(EnableBackgroundInput!=0); diff --git a/src/drivers/win/main.h b/src/drivers/win/main.h index e4d4e21a..8d145796 100644 --- a/src/drivers/win/main.h +++ b/src/drivers/win/main.h @@ -46,6 +46,7 @@ extern int frame_display; extern int input_display; extern int allowUDLR; extern int pauseAfterPlayback; +extern int closeFinishedMovie; extern int EnableBackgroundInput; extern int AFon; extern int AFoff; diff --git a/src/drivers/win/movieoptions.cpp b/src/drivers/win/movieoptions.cpp index c2123137..ffe3f5a3 100644 --- a/src/drivers/win/movieoptions.cpp +++ b/src/drivers/win/movieoptions.cpp @@ -23,7 +23,7 @@ //internal variables int pauseAfterPlayback = 0; //Flag for pausing emulator when movie is finished - +int closeFinishedMovie = 0; //Flag for clossing movie when it is finished //external extern int status_icon; //In main.cpp - For displaying movie status icons (play,record,pause) @@ -36,6 +36,7 @@ extern bool fullSaveStateLoads; //Toggle that does "VBA style" loadstates in rec void UpdateCheckBoxes(HWND hwndDlg) { CheckDlgButton(hwndDlg, IDC_MOVIE_PAUSEAFTERPLAYBACK, pauseAfterPlayback ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_MOVIE_CLOSEAFTERPLAYBACK, closeFinishedMovie ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_MOVIE_BINDSAVESTATES, bindSavestate ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_MOVIE_DISPLAYSTATUSICON, status_icon ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_MOVIE_DISPLAYSUBTITLES, movieSubtitles ? BST_CHECKED : BST_UNCHECKED); @@ -76,6 +77,10 @@ BOOL CALLBACK MovieOptionsCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l pauseAfterPlayback = pauseAfterPlayback?0:1; break; + case IDC_MOVIE_CLOSEAFTERPLAYBACK: + closeFinishedMovie = closeFinishedMovie?0:1; + break; + case IDC_MOVIE_BINDSAVESTATES: bindSavestate ^= 1; break; diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 62ad7d3c..8d266846 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -886,23 +886,25 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Movie Options" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,35,194,49,14 + DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,45,194,49,14,BS_CENTER CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,17,83,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,12,134,10 CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,37,98,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,50,134,10 CONTROL "Display movie status icon",IDC_MOVIE_DISPLAYSTATUSICON, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,57,95,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,69,134,10 CONTROL "Display movie subtitles",IDC_MOVIE_DISPLAYSUBTITLES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,77,87,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,89,134,10 CONTROL "Put movie subtitles in AVI",IDC_MOVIE_SUBTITLESINAVI, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,93,95,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,109,109,10 CONTROL "Automatically backup movies",IDC_MOVIE_AUTOBACKUP, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,113,107,10 - CONTROL "Load full savestate-movies",IDC_FULLSAVESTATES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,135,99,10 - LTEXT "loaded states in record mode not",IDC_STATIC,19,147,104,8 - LTEXT "truncated until next frame",IDC_STATIC,23,157,80,8 - LTEXT "(VBA-rr & SNES9x style)",IDC_STATIC,18,167,72,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,128,134,10 + CONTROL "Load full savestate-movies",IDC_FULLSAVESTATES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,147,134,10 + LTEXT "loaded states in record mode not",IDC_STATIC,19,159,119,8 + LTEXT "truncated until next frame",IDC_STATIC,21,169,117,8 + LTEXT "(VBA-rr & SNES9x style)",IDC_STATIC,18,179,120,8 + CONTROL "Close after playback",IDC_MOVIE_CLOSEAFTERPLAYBACK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,31,96,10 END DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 04547b84..9c1d9f42 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -483,6 +483,7 @@ #define DEBUGLOADDEB 1258 #define IDC_CHECK2 1258 #define IDC_SINGLEINSTANCE 1258 +#define IDC_MOVIE_CLOSEAFTERPLAYBACK 1258 #define MENU_NETWORK 40040 #define MENU_PALETTE 40041 #define MENU_SOUND 40042 diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index ae58072c..5f5e429f 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -391,7 +391,7 @@ void UpdateCheckedMenuItems() CheckMenuItem(fceumenu, ID_NES_TURBO, turbo ? MF_CHECKED : MF_UNCHECKED); //Config Menu - CheckMenuItem(fceumenu, MENU_PAUSEAFTERPLAYBACK, pauseAfterPlayback ? MF_CHECKED : MF_UNCHECKED); +// CheckMenuItem(fceumenu, MENU_PAUSEAFTERPLAYBACK, pauseAfterPlayback ? MF_CHECKED : MF_UNCHECKED); // no more CheckMenuItem(fceumenu, MENU_RUN_IN_BACKGROUND, eoptions & EO_BGRUN ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_BACKGROUND_INPUT, EnableBackgroundInput ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_ENABLE_AUTOSAVE, EnableAutosave ? MF_CHECKED : MF_UNCHECKED); diff --git a/src/movie.cpp b/src/movie.cpp index f7893e64..396156b1 100644 --- a/src/movie.cpp +++ b/src/movie.cpp @@ -745,6 +745,26 @@ bool LoadFM2(MovieData& movieData, EMUFILE* fp, int size, bool stopAfterHeader) return true; } +/// Stop movie playback. +static void StopPlayback() +{ + FCEU_DispMessageOnMovie("Movie playback stopped."); + movieMode = MOVIEMODE_INACTIVE; +} + +// Stop movie playback without closing the movie. +static void FinishPlayback() +{ + extern int closeFinishedMovie; + if (closeFinishedMovie) + StopPlayback(); + else + { + FCEU_DispMessage("Movie finished playing.",0); + movieMode = MOVIEMODE_FINISHED; + } +} + static void closeRecordingMovie() { if(osRecordingMovie) @@ -754,24 +774,15 @@ static void closeRecordingMovie() } } -/// Stop movie playback. -static void StopPlayback() -{ - FCEU_DispMessageOnMovie("Movie playback stopped."); - movieMode = MOVIEMODE_INACTIVE; -} - /// Stop movie recording static void StopRecording() { FCEU_DispMessage("Movie recording stopped.",0); - movieMode = MOVIEMODE_INACTIVE; closeRecordingMovie(); } - void FCEUI_StopMovie() { if(suppressMovieStop) @@ -1070,14 +1081,6 @@ void FCEUI_SaveMovie(const char *fname, EMOVIE_FLAG flags, std::wstring author) static int _currCommand = 0; - -// Stop movie playback without closing the movie. -static void FinishPlayback() -{ - FCEU_DispMessage("Movie finished playing.",0); - movieMode = MOVIEMODE_FINISHED; -} - //the main interaction point between the emulator and the movie system. //either dumps the current joystick state or loads one state from the movie void FCEUMOV_AddInputState() diff --git a/vc/vc10_fceux.vcxproj.filters b/vc/vc10_fceux.vcxproj.filters index 9e085126..9574e971 100644 --- a/vc/vc10_fceux.vcxproj.filters +++ b/vc/vc10_fceux.vcxproj.filters @@ -2,55 +2,56 @@ - {5e7fad1d-5825-4872-8afe-7f120d2833e5} + {9df8a9c0-b1c6-4cfc-b494-a032de5610dd} - {c52c8078-7189-407a-bcd6-168a1c150873} + {37c56600-9a81-498c-ae95-ad217bb601e7} - {4fe9b456-d1fa-4884-9313-891dd8382a16} + {4251322f-2a2d-4b6a-9bce-042361a39b04} - {9501ab97-867a-4927-84fe-90bcacd3dffc} - - - {65d2a2cc-daf4-4779-9977-20fd505f2ab8} - - - {b14c8234-2f69-4a72-abca-cbb7896793ca} + {aa276048-3e0e-42b0-8562-278c052715a8} - {a804840f-6cee-43be-ab56-c57f371d288f} + {d4ab474f-f74e-4042-8e0a-161e0c89a940} - {6836d49f-90ba-4702-aebc-8dd32d91bc94} + {46e87a33-60b3-41a1-87b1-5fc0b410c0a1} - {7c9424b3-10d1-4060-bac9-2f0c00a92296} + {bfa3a49b-0c30-4093-8119-7e315c80053d} + + + {008e1f62-e23f-4235-bee7-a45a466678e9} - {0507c515-edd4-4710-a986-3a5877681def} + {cfac36a2-cdfd-4c0a-be8e-353b1303a909} + + + {7279627e-c72f-441f-bb8b-48ef8412f051} - {196659e2-3bec-4f05-9c7c-1713976f3af0} + {8770e1b4-9ef8-4253-bdcd-7c4d5a51461b} - {d5779911-d1df-43b8-9664-a8df7af70d8c} + {aec82faa-87f7-44b0-963e-01b07ce40e82} - {b0f13dd3-701b-4fc5-b3ae-8fd79d28208a} + {5f356733-cee3-4440-aa40-cf138dcfbd8c} - {98c85bc1-c778-4952-88d7-a4318cd9ff50} - - - {b5b491e1-8f30-48bf-b803-9cbe5485ed09} + {13cb7bca-c196-4896-b88a-581e99d86457} - {78295b94-f766-43ab-b8e3-c3ded1039d41} + {2a047eb3-7b56-41d4-b228-5df54bc1809d} + + + {b826cbb1-8f65-48a4-89ca-a1b691426971} + boards @@ -162,9 +163,6 @@ boards - - boards - boards @@ -300,6 +298,15 @@ boards + + boards + + + + + + + drivers\common @@ -423,10 +430,10 @@ drivers\win - + drivers\win - + drivers\win @@ -441,6 +448,9 @@ drivers\win + + drivers\win\taseditlib + drivers\win @@ -507,9 +517,12 @@ drivers\win\zlib - - drivers\win\taseditlib - + + + + + + input @@ -555,6 +568,97 @@ input + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + + + drivers\win\lua + mappers @@ -762,6 +866,15 @@ mappers + + + + + + + + + utils @@ -789,119 +902,6 @@ utils - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - drivers\win\lua - - - - - - - - - - - - - - - - - - - - - - - - @@ -912,6 +912,27 @@ + + include files + + + include files + + + include files + + + include files + + + include files + + + include files + + + include files + drivers\common @@ -993,6 +1014,21 @@ drivers\win + + drivers\win\lua\include + + + drivers\win\lua\include + + + drivers\win\lua\include + + + drivers\win\lua\include + + + drivers\win\lua\include + drivers\win @@ -1029,10 +1065,10 @@ drivers\win - + drivers\win - + drivers\win @@ -1050,6 +1086,9 @@ drivers\win + + drivers\win\taseditlib + drivers\win @@ -1074,23 +1113,23 @@ drivers\win - - drivers\win\lua\include + + include files - - drivers\win\lua\include + + include files - - drivers\win\lua\include + + include files - - drivers\win\lua\include + + include files - - drivers\win\lua\include + + include files - - drivers\win\taseditlib + + include files fir @@ -1110,45 +1149,6 @@ fir - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - include files @@ -1164,117 +1164,12 @@ include files - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - - - include files - input input - - mappers - - - mappers - - - mappers - - - mappers - - - utils - - - utils - - - utils - - - utils - - - utils - - - utils - - - utils - - - utils - - - utils - - - utils - - - palettes - - - palettes - - - palettes - - - palettes - - - palettes - drivers\win\lua @@ -1344,6 +1239,111 @@ drivers\win\lua + + mappers + + + mappers + + + mappers + + + mappers + + + include files + + + include files + + + include files + + + include files + + + include files + + + palettes + + + palettes + + + palettes + + + palettes + + + palettes + + + include files + + + include files + + + include files + + + include files + + + include files + + + include files + + + utils + + + utils + + + utils + + + utils + + + utils + + + utils + + + utils + + + utils + + + utils + + + utils + + + include files + + + include files + + + include files + + + include files + + + include files + drivers\common @@ -1373,9 +1373,9 @@ + drivers\win\help - \ No newline at end of file