Win32 - new Context Menu item - Save Movie As.. available when a movie is loaded in read+write mode.
This commit is contained in:
parent
a0c535cd60
commit
9ee1449a74
|
@ -1,3 +1,4 @@
|
||||||
|
23-may-2009 - adelikat - win32 - context menu - Save Movie As... menu item (for when a movie is loaded in read+write mode)
|
||||||
23-may-2009 - adelikat - win32 - added opton to remove a recent item to the roms, lua, and movie recent menus
|
23-may-2009 - adelikat - win32 - added opton to remove a recent item to the roms, lua, and movie recent menus
|
||||||
23-may-2009 - adelikat - win32 - Added a remove recent item function and hooked it up to memwatch recent menu, now if a bad recent item is clicked, the user has a choice to remove it from the list
|
23-may-2009 - adelikat - win32 - Added a remove recent item function and hooked it up to memwatch recent menu, now if a bad recent item is clicked, the user has a choice to remove it from the list
|
||||||
23-may-2009 - adelikat - win32 - Load Last Movie context menu item added
|
23-may-2009 - adelikat - win32 - Load Last Movie context menu item added
|
||||||
|
|
|
@ -369,6 +369,7 @@ BEGIN
|
||||||
MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE
|
MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE
|
||||||
MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES
|
MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES
|
||||||
MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP
|
MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP
|
||||||
|
MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE
|
MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE
|
||||||
MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE
|
MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE
|
||||||
|
|
|
@ -684,6 +684,8 @@
|
||||||
#define MENU_MOVIE_RECENT 40354
|
#define MENU_MOVIE_RECENT 40354
|
||||||
#define ID_GAME_LOADLASTMOVIE 40355
|
#define ID_GAME_LOADLASTMOVIE 40355
|
||||||
#define FCEUX_CONTEXT_LOADLASTMOVIE 40356
|
#define FCEUX_CONTEXT_LOADLASTMOVIE 40356
|
||||||
|
#define ID_GAME_SAVEMOVIEAS 40357
|
||||||
|
#define FCEUX_CONTEXT_SAVEMOVIEAS 40358
|
||||||
#define IDC_DEBUGGER_ICONTRAY 55535
|
#define IDC_DEBUGGER_ICONTRAY 55535
|
||||||
#define MW_ValueLabel2 65423
|
#define MW_ValueLabel2 65423
|
||||||
#define MW_ValueLabel1 65426
|
#define MW_ValueLabel1 65426
|
||||||
|
@ -693,7 +695,7 @@
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 125
|
#define _APS_NEXT_RESOURCE_VALUE 125
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40357
|
#define _APS_NEXT_COMMAND_VALUE 40359
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1204
|
#define _APS_NEXT_CONTROL_VALUE 1204
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -129,6 +129,7 @@ bool rightClickEnabled = true; //If set to false, the right click context menu
|
||||||
//Function Prototypes
|
//Function Prototypes
|
||||||
void ChangeMenuItemText(int menuitem, string text); //Alters a menu item name
|
void ChangeMenuItemText(int menuitem, string text); //Alters a menu item name
|
||||||
void ChangeContextMenuItemText(int menuitem, string text, HMENU menu); //Alters a context menu item name
|
void ChangeContextMenuItemText(int menuitem, string text, HMENU menu); //Alters a context menu item name
|
||||||
|
void SaveMovieAs(); //Gets a filename for Save Movie As...
|
||||||
|
|
||||||
//Recent Menu Strings ------------------------------------
|
//Recent Menu Strings ------------------------------------
|
||||||
char *recent_files[] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };
|
char *recent_files[] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };
|
||||||
|
@ -1758,6 +1759,7 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//Recent Movie 1
|
||||||
case FCEUX_CONTEXT_LOADLASTMOVIE:
|
case FCEUX_CONTEXT_LOADLASTMOVIE:
|
||||||
if(recent_movie[0])
|
if(recent_movie[0])
|
||||||
{
|
{
|
||||||
|
@ -1801,6 +1803,12 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
|
||||||
case FCEUX_CONTEXT_MAKEBACKUP:
|
case FCEUX_CONTEXT_MAKEBACKUP:
|
||||||
FCEUI_MakeBackupMovie(true);
|
FCEUI_MakeBackupMovie(true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//Create a backup based on user entering a filename
|
||||||
|
case FCEUX_CONTEXT_SAVEMOVIEAS:
|
||||||
|
SaveMovieAs();
|
||||||
|
break;
|
||||||
|
|
||||||
//Game + Movie - Help
|
//Game + Movie - Help
|
||||||
case FCEU_CONTEXT_MOVIEHELP:
|
case FCEU_CONTEXT_MOVIEHELP:
|
||||||
OpenHelpWindow(moviehelp);
|
OpenHelpWindow(moviehelp);
|
||||||
|
@ -2581,3 +2589,33 @@ void UpdateMenuHotkeys()
|
||||||
combined = "&Code/Data Logger...\t" + combo;
|
combined = "&Code/Data Logger...\t" + combo;
|
||||||
ChangeMenuItemText(MENU_CDLOGGER, combined);
|
ChangeMenuItemText(MENU_CDLOGGER, combined);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This function is for the context menu item Save Movie As...
|
||||||
|
//It gets a filename from the user then calls CreateMovie()
|
||||||
|
void SaveMovieAs()
|
||||||
|
{
|
||||||
|
const char filter[]="NES Movie file (*.fm2)\0*.fm2\0";
|
||||||
|
char nameo[2048];
|
||||||
|
std::string tempName;
|
||||||
|
int x;
|
||||||
|
|
||||||
|
OPENFILENAME ofn;
|
||||||
|
memset(&ofn,0,sizeof(ofn));
|
||||||
|
ofn.lStructSize=sizeof(ofn);
|
||||||
|
ofn.hInstance=fceu_hInstance;
|
||||||
|
ofn.lpstrTitle="Save Movie as...";
|
||||||
|
ofn.lpstrFilter=filter;
|
||||||
|
strcpy(nameo,curMovieFilename);
|
||||||
|
ofn.lpstrFile=nameo;
|
||||||
|
ofn.nMaxFile=256;
|
||||||
|
ofn.Flags=OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY;
|
||||||
|
ofn.hwndOwner = hMemView;
|
||||||
|
if (GetSaveFileName(&ofn))
|
||||||
|
{
|
||||||
|
tempName = nameo;
|
||||||
|
x = tempName.find_last_of("."); //Check to see if the user provided a file extension
|
||||||
|
if (x < 0)
|
||||||
|
tempName.append(".fm2"); //If not, make it .fm2
|
||||||
|
FCEUI_CreateMovieFile(tempName);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1293,6 +1293,14 @@ void FCEU_DisplaySubtitles(char *format, ...)
|
||||||
subtitleMessage.isMovieMessage = subtitlesOnAVI;
|
subtitleMessage.isMovieMessage = subtitlesOnAVI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FCEUI_CreateMovieFile(std::string fn)
|
||||||
|
{
|
||||||
|
MovieData md = currMovieData; //Get current movie data
|
||||||
|
std::fstream* outf = FCEUD_UTF8_fstream(fn, "wb"); //open/create file
|
||||||
|
md.dump(outf,false); //dump movie data
|
||||||
|
delete outf; //clean up, delete file object
|
||||||
|
}
|
||||||
|
|
||||||
void FCEUI_MakeBackupMovie(bool dispMessage)
|
void FCEUI_MakeBackupMovie(bool dispMessage)
|
||||||
{
|
{
|
||||||
//This function generates backup movie files
|
//This function generates backup movie files
|
||||||
|
@ -1337,11 +1345,7 @@ void FCEUI_MakeBackupMovie(bool dispMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
FCEUI_CreateMovieFile(backupFn);
|
||||||
MovieData md = currMovieData; //Get current movie data
|
|
||||||
std::fstream* outf = FCEUD_UTF8_fstream(backupFn, "wb"); //open/create file
|
|
||||||
md.dump(outf,false); //dump movie data
|
|
||||||
delete outf; //clean up, delete file object
|
|
||||||
|
|
||||||
//TODO, decide if fstream successfully opened the file and print error message if it doesn't
|
//TODO, decide if fstream successfully opened the file and print error message if it doesn't
|
||||||
|
|
||||||
|
|
|
@ -242,6 +242,7 @@ extern bool autoMovieBackup;
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
bool CheckFileExists(const char* filename); //Receives a filename (fullpath) and checks to see if that file exists
|
bool CheckFileExists(const char* filename); //Receives a filename (fullpath) and checks to see if that file exists
|
||||||
void FCEUI_MakeBackupMovie(bool dispMessage);
|
void FCEUI_MakeBackupMovie(bool dispMessage);
|
||||||
|
void FCEUI_CreateMovieFile(std::string fn);
|
||||||
void FCEUI_SaveMovie(const char *fname, EMOVIE_FLAG flags, std::wstring author);
|
void FCEUI_SaveMovie(const char *fname, EMOVIE_FLAG flags, std::wstring author);
|
||||||
bool FCEUI_LoadMovie(const char *fname, bool read_only, bool tasedit, int _stopframe);
|
bool FCEUI_LoadMovie(const char *fname, bool read_only, bool tasedit, int _stopframe);
|
||||||
void FCEUI_MoviePlayFromBeginning(void);
|
void FCEUI_MoviePlayFromBeginning(void);
|
||||||
|
|
Loading…
Reference in New Issue