In case anyone is interested, here's the patch I wrote for this.
/src/hardware/hardware.cpp
Copy code to clipboard 1 --- dosbox-svn/src/hardware/hardware.cpp 2014-09-02 23:38:17.000000000 +0200 2 +++ dosbox-svn-ms/src/hardware/hardware.cpp 2014-09-02 23:48:00.000000000 +0200 3 @@ -81,6 +81,7 @@ 4 } capture; 5 6 FILE * OpenCaptureFile(const char * type,const char * ext) { 7 + 8 if(capturedir.empty()) { 9 LOG_MSG("Please specify a capture directory"); 10 return 0; 11 @@ -160,7 +161,27 @@ 12 #endif 13 14 #if (C_SSHOT) 15 -static void CAPTURE_VideoEvent(bool pressed) { 16 +void CAPTURE_VideoStart() { 17 + if (CaptureState & CAPTURE_VIDEO) { 18 + LOG_MSG("Already capturing video."); 19 + } else { 20 + CAPTURE_VideoEvent(true); 21 + } 22 +} 23 +#endif 24 + 25 +#if (C_SSHOT) 26 +void CAPTURE_VideoStop() { 27 + if (CaptureState & CAPTURE_VIDEO) { 28 + CAPTURE_VideoEvent(true); 29 + } else { 30 + LOG_MSG("Not capturing video."); 31 + } 32 +} 33 +#endif 34 + 35 +#if (C_SSHOT) 36 +void CAPTURE_VideoEvent(bool pressed) { 37 if (!pressed) 38 return; 39 if (CaptureState & CAPTURE_VIDEO) {
/src/misc/programs.cpp
Copy code to clipboard 1 --- dosbox-svn/src/misc/programs.cpp 2014-09-02 23:38:15.000000000 +0200 2 +++ dosbox-svn-ms/src/misc/programs.cpp 2014-09-02 23:25:25.000000000 +0200 3 @@ -31,6 +31,7 @@ 4 #include "cross.h" 5 #include "control.h" 6 #include "shell.h" 7 +#include "hardware.h" 8 9 Bitu call_program; 10 11 @@ -279,7 +280,9 @@ 12 void CONFIG::Run(void) { 13 static const char* const params[] = { 14 "-r", "-wcp", "-wcd", "-wc", "-writeconf", "-l", "-rmconf", 15 - "-h", "-help", "-?", "-axclear", "-axadd", "-axtype", "-get", "-set", 16 + "-h", "-help", "-?", "-axclear", "-axadd", "-axtype", 17 + "-recavistart", "-recavistop", 18 + "-get", "-set", 19 "-writelang", "-wl", "-securemode", "" }; 20 enum prs { 21 P_NOMATCH, P_NOPARAMS, // fixed return values for GetParameterFromList 22 @@ -288,6 +291,7 @@ 23 P_LISTCONF, P_KILLCONF, 24 P_HELP, P_HELP2, P_HELP3, 25 P_AUTOEXEC_CLEAR, P_AUTOEXEC_ADD, P_AUTOEXEC_TYPE, 26 + P_REC_AVI_START, P_REC_AVI_STOP, 27 P_GETPROP, P_SETPROP, 28 P_WRITELANG, P_WRITELANG2, 29 P_SECURE 30 @@ -526,6 +530,18 @@ 31 WriteOut("\n%s",sec->data.c_str()); 32 break; 33 } 34 + case P_REC_AVI_START: { 35 + CAPTURE_VideoStart(); 36 + //OpenCaptureFile("Video",".avi"); 37 + //LOG_MSG('a'); 38 + /* here's where i want avi */ 39 + /**/ 40 + break; 41 + } 42 + case P_REC_AVI_STOP: { 43 + CAPTURE_VideoStop(); 44 + break; 45 + } 46 case P_GETPROP: { 47 // "section property" 48 // "property" 49 @@ -784,6 +800,8 @@ 50 "-axadd [line] adds a line to the autoexec section.\n"\ 51 "-axtype prints the content of the autoexec section.\n"\ 52 "-securemode switches to secure mode.\n"\ 53 + "-recavistart starts AVI recording.\n"\ 54 + "-recavistop stops AVI recording.\n"\ 55 "-get \"section property\" returns the value of the property.\n"\ 56 "-set \"section property=value\" sets the value." ); 57 MSG_Add("PROGRAM_CONFIG_HLP_PROPHLP","Purpose of property \"%s\" (contained in section \"%s\"):\n%s\n\nPossible Values: %s\nDefault value: %s\nCurrent value: %s\n");
/include/hardware.h
Copy code to clipboard 1 --- dosbox-svn/include/hardware.h 2014-09-02 23:38:09.000000000 +0200 2 +++ dosbox-svn-ms/include/hardware.h 2014-09-02 23:27:36.000000000 +0200 3 @@ -50,5 +50,8 @@ 4 #define CAPTURE_FLAG_DBLH 0x2 5 void CAPTURE_AddImage(Bitu width, Bitu height, Bitu bpp, Bitu pitch, Bitu flags, float fps, Bit8u * data, Bit8u * pal); 6 void CAPTURE_AddMidi(bool sysex, Bitu len, Bit8u * data); 7 +void CAPTURE_VideoEvent(bool pressed); 8 +void CAPTURE_VideoStart(); 9 +void CAPTURE_VideoStop(); 10 11 #endif
edit: on sourceforge: https://sourceforge.net/p/dosbox/patches/262/