From cbec71190c013f599c97e3d586d59e319df35d09 Mon Sep 17 00:00:00 2001 From: Barry Harris <44396066+barry65536@users.noreply.github.com> Date: Fri, 9 Oct 2015 10:31:46 +0000 Subject: [PATCH] allow avi recording to be turned off in makefile --- makefile | 3 +++ makefile.burner_win32_rules | 6 +++++- makefile.mingw | 10 +++++++++- makefile.vc | 10 +++++++++- src/burner/win32/app.rc | 2 ++ src/burner/win32/burner_win32.h | 3 ++- src/burner/win32/menu.cpp | 6 ++++-- src/burner/win32/run.cpp | 2 ++ src/burner/win32/scrn.cpp | 14 ++++++++++++-- src/intf/video/vid_interface.cpp | 6 ++++++ 10 files changed, 54 insertions(+), 8 deletions(-) diff --git a/makefile b/makefile index ce7790a1a..b7b4d3673 100644 --- a/makefile +++ b/makefile @@ -33,6 +33,9 @@ BUILD_X86_ASM = 1 # Include 7-zip support INCLUDE_7Z_SUPPORT = 1 +# Include AVI recording support (uses Video For Windows) +INCLUDE_AVI_RECORDING = 1 + # Include Toaplan sound sample hacks for games without MCU dumps TOAPLAN_SOUND_SAMPLES_HACK = 1 diff --git a/makefile.burner_win32_rules b/makefile.burner_win32_rules index f18bb05f9..ea59f385e 100644 --- a/makefile.burner_win32_rules +++ b/makefile.burner_win32_rules @@ -2,7 +2,7 @@ alldir += burner burner/win32 dep/kaillera/client dep/libs/libpng dep/libs/lib7 intf/video/scalers intf/video/win32 intf/audio intf/audio/win32 intf/input intf/input/win32 intf/cd intf/cd/win32 \ intf/perfcount intf/perfcount/win32 dep/generated -depobj += about.o avi.o bzip.o cona.o debugger.o drv.o dwmapi_core.o dynhuff.o fba_kaillera.o gameinfo.o image_win32.o inpc.o \ +depobj += about.o bzip.o cona.o debugger.o drv.o dwmapi_core.o dynhuff.o fba_kaillera.o gameinfo.o image_win32.o inpc.o \ inpcheat.o inpd.o inpdipsw.o inps.o ips_manager.o localise.o localise_download.o localise_gamelist.o main.o mdi.o \ media.o memcard.o menu.o misc_win32.o neocdlist.o neocdsel.o numdial.o numpluscommas.o paletteviewer.o popup_win32.o \ progress.o replay.o res.o roms.o run.o scrn.o sel.o sfactd.o splash.o stated.o support_paths.o systeminfo.o wave.o \ @@ -31,6 +31,10 @@ depobj += un7z.o \ 7zBuf.o 7zBuf2.o 7zCrc.o 7zCrcOpt.o 7zDec.o 7zIn.o Bcj2.o Bra.o Bra86.o CpuArch.o LzmaDec.o Lzma2Dec.o Ppmd7.o \ Ppmd7Dec.o 7zStream.o endif + +ifdef INCLUDE_AVI_RECORDING +depobj += avi.o +endif autobj += $(depobj) diff --git a/makefile.mingw b/makefile.mingw index f3006ca9e..1f46a850c 100644 --- a/makefile.mingw +++ b/makefile.mingw @@ -110,7 +110,11 @@ ifdef UNICODE # lib = -lunicows endif -lib += -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lshell32 -lwinmm -lshlwapi -ladvapi32 -lsetupapi -lole32 -luuid -lwininet -lvfw32 +lib += -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lshell32 -lwinmm -lshlwapi -ladvapi32 -lsetupapi -lole32 -luuid -lwininet + +ifdef INCLUDE_AVI_RECORDING +lib += -lvfw32 +endif depobj += resource.o \ @@ -316,6 +320,10 @@ ifdef INCLUDE_7Z_SUPPORT DEF := $(DEF) -DINCLUDE_7Z_SUPPORT endif +ifdef INCLUDE_AVI_RECORDING + DEF := $(DEF) -DINCLUDE_AVI_RECORDING +endif + ifdef TOAPLAN_SOUND_SAMPLES_HACK DEF := $(DEF) -DTOAPLAN_SOUND_SAMPLES_HACK endif diff --git a/makefile.vc b/makefile.vc index 3f8ccb5d1..f32f0630f 100644 --- a/makefile.vc +++ b/makefile.vc @@ -107,7 +107,11 @@ ifdef UNICODE # lib = unicows.lib endif -lib += user32.lib gdi32.lib comdlg32.lib comctl32.lib shell32.lib winmm.lib ole32.lib shlwapi.lib advapi32.lib setupapi.lib wininet.lib vfw32.lib +lib += user32.lib gdi32.lib comdlg32.lib comctl32.lib shell32.lib winmm.lib ole32.lib shlwapi.lib advapi32.lib setupapi.lib wininet.lib + +ifdef INCLUDE_AVI_RECORDING +lib += vfw32.lib +endif ifdef BUILD_X86_ASM autobj += hq3xs.o hq_shared32.o @@ -195,6 +199,10 @@ ifdef INCLUDE_7Z_SUPPORT DEF := $(DEF) /DINCLUDE_7Z_SUPPORT endif +ifdef INCLUDE_AVI_RECORDING + DEF := $(DEF) /DINCLUDE_AVI_RECORDING +endif + ifdef TOAPLAN_SOUND_SAMPLES_HACK DEF := $(DEF) /DTOAPLAN_SOUND_SAMPLES_HACK endif diff --git a/src/burner/win32/app.rc b/src/burner/win32/app.rc index 56e3ea240..3d7e60ddc 100644 --- a/src/burner/win32/app.rc +++ b/src/burner/win32/app.rc @@ -811,9 +811,11 @@ BEGIN END MENUITEM "Restore full state on load", MENU_ALLRAM END +#ifdef INCLUDE_AVI_RECORDING MENUITEM SEPARATOR MENUITEM "Record AVI", MENU_AVISTART, GRAYED MENUITEM "Stop recording", MENU_AVISTOP, GRAYED +#endif MENUITEM SEPARATOR MENUITEM "Exit emulator\tAlt+F4", MENU_EXIT END diff --git a/src/burner/win32/burner_win32.h b/src/burner/win32/burner_win32.h index 46f1ad084..c199193e2 100644 --- a/src/burner/win32/burner_win32.h +++ b/src/burner/win32/burner_win32.h @@ -465,6 +465,7 @@ TCHAR* FormatCommasNumber(__int64); #define _uInt64ToCommaFormattedTCHAR(szOUT, nIN) \ _stprintf(szOUT, _T("%s"), FormatCommasNumber(nIN)); +#ifdef INCLUDE_AVI_RECORDING // ---------------------------------------------------------------------------- // AVI recording @@ -474,4 +475,4 @@ int AviRecordFrame(int bDraw); void AviStop(); extern unsigned char *pAviBuffer; extern int nAviStatus; - +#endif diff --git a/src/burner/win32/menu.cpp b/src/burner/win32/menu.cpp index 9f3cf378a..a7f1705f9 100644 --- a/src/burner/win32/menu.cpp +++ b/src/burner/win32/menu.cpp @@ -1349,6 +1349,7 @@ void MenuEnableItems() EnableMenuItem(hMenu, MENU_STATE_LOAD_DIALOG, MF_ENABLED | MF_BYCOMMAND); } } +#ifdef INCLUDE_AVI_RECORDING if (nAviStatus) { EnableMenuItem(hMenu, MENU_AVISTART, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_AVISTOP, MF_ENABLED | MF_BYCOMMAND); @@ -1356,7 +1357,7 @@ void MenuEnableItems() EnableMenuItem(hMenu, MENU_AVISTART, MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_AVISTOP, MF_GRAYED | MF_BYCOMMAND); } - +#endif } else { bAltPause = 0; @@ -1407,9 +1408,10 @@ void MenuEnableItems() EnableMenuItem(hMenu, MENU_SNAPFACT, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_PALETTEVIEWER, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_SAVEGAMEINPUTNOW, MF_GRAYED | MF_BYCOMMAND); +#ifdef INCLUDE_AVI_RECORDING EnableMenuItem(hMenu, MENU_AVISTART, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_AVISTOP, MF_GRAYED | MF_BYCOMMAND); - +#endif EnableMenuItem(hMenu, MENU_CDIMAGE, MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(hMenu, MENU_AUD_PLUGIN_1, MF_ENABLED | MF_BYCOMMAND); diff --git a/src/burner/win32/run.cpp b/src/burner/win32/run.cpp index 92025e073..e5409a24b 100644 --- a/src/burner/win32/run.cpp +++ b/src/burner/win32/run.cpp @@ -181,11 +181,13 @@ static int RunFrame(int bDraw, int bPause) } } +#ifdef INCLUDE_AVI_RECORDING if (nAviStatus) { if (AviRecordFrame(bDraw)) { AviStop(); } } +#endif bPrevPause = bPause; bPrevDraw = bDraw; diff --git a/src/burner/win32/scrn.cpp b/src/burner/win32/scrn.cpp index 84312298b..c80f2d95e 100644 --- a/src/burner/win32/scrn.cpp +++ b/src/burner/win32/scrn.cpp @@ -818,7 +818,9 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) SplashDestroy(1); StopReplay(); +#ifdef INCLUDE_AVI_RECORDING AviStop(); +#endif InputSetCooperativeLevel(false, bAlwaysProcessKeyboardInput); @@ -923,7 +925,9 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) AudBlankSound(); SplashDestroy(1); StopReplay(); +#ifdef INCLUDE_AVI_RECORDING AviStop(); +#endif DrvExit(); DoNetGame(); MenuEnableItems(); @@ -955,7 +959,8 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) StopReplay(); break; - case MENU_AVISTART: +#ifdef INCLUDE_AVI_RECORDING + case MENU_AVISTART: if (AviStart()) { AviStop(); } @@ -965,7 +970,8 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) AviStop(); VidSNewShortMsg(FBALoadStringEx(hAppInst, IDS_STOP_AVI, true), 0xFF3F3F); break; - +#endif + case MENU_QUIT: AudBlankSound(); if (nVidFullscreen) { @@ -974,7 +980,9 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) } if (bDrvOkay) { StopReplay(); +#ifdef INCLUDE_AVI_RECORDING AviStop(); +#endif DrvExit(); if (kNetGame) { kNetGame = 0; @@ -997,7 +1005,9 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify) case MENU_EXIT: StopReplay(); +#ifdef INCLUDE_AVI_RECORDING AviStop(); +#endif if (kNetGame) { kNetGame = 0; // kailleraEndGame(); diff --git a/src/intf/video/vid_interface.cpp b/src/intf/video/vid_interface.cpp index b51c347dc..9c8d0869a 100644 --- a/src/intf/video/vid_interface.cpp +++ b/src/intf/video/vid_interface.cpp @@ -274,7 +274,9 @@ INT32 VidExit() if (pVidTransImage) { free(pVidTransImage); pVidTransImage = NULL; +#ifdef INCLUDE_AVI_RECORDING pAviBuffer = NULL; +#endif } return nRet; @@ -303,7 +305,9 @@ static INT32 VidDoFrame(bool bRedraw) bVidRecalcPalette = false; } pBurnDraw = pVidTransImage; +#ifdef INCLUDE_AVI_RECORDING pAviBuffer = pVidImage; +#endif nBurnPitch = nVidImageWidth * 2; nRet = pVidOut[nVidActive]->Frame(bRedraw); @@ -335,7 +339,9 @@ static INT32 VidDoFrame(bool bRedraw) } else { pBurnDraw = pVidImage; nBurnPitch = nVidImagePitch; +#ifdef INCLUDE_AVI_RECORDING pAviBuffer = pBurnDraw; +#endif nRet = pVidOut[nVidActive]->Frame(bRedraw);