Changeset 75341 in vbox
- Timestamp:
- Nov 9, 2018 8:37:28 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 32 edited
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/log.h
r75274 r75341 354 354 /** Main group, IBIOSSettings. */ 355 355 LOG_GROUP_MAIN_BIOSSETTINGS, 356 /** Main group, ICaptureChangedEvent. */357 LOG_GROUP_MAIN_CAPTURECHANGEDEVENT,358 /** Main group, ICaptureSettings. */359 LOG_GROUP_MAIN_CAPTURESETTINGS,360 /** Main group, ICaptureScreenSettings. */361 LOG_GROUP_MAIN_CAPTURESCREENSETTINGS,362 356 /** Main group, ICanShowWindowEvent. */ 363 357 LOG_GROUP_MAIN_CANSHOWWINDOWEVENT, … … 600 594 /** Main group, IProgressTaskCompletedEvent. */ 601 595 LOG_GROUP_MAIN_PROGRESSTASKCOMPLETEDEVENT, 596 /** Main group, IRecordChangedEvent. */ 597 LOG_GROUP_MAIN_RECORDCHANGEDEVENT, 598 /** Main group, IRecordSettings. */ 599 LOG_GROUP_MAIN_RECORDSETTINGS, 600 /** Main group, IRecordScreenSettings. */ 601 LOG_GROUP_MAIN_RECORDSCREENSETTINGS, 602 602 /** Main group, IReusableEvent. */ 603 603 LOG_GROUP_MAIN_REUSABLEEVENT, … … 1004 1004 "MAIN_BANDWIDTHGROUPCHANGEDEVENT", \ 1005 1005 "MAIN_BIOSSETTINGS", \ 1006 "MAIN_CAPTURECHANGEDEVENT", \1007 "MAIN_CAPTURESETTINGS", \1008 "MAIN_CAPTURESCREENSETTINGS", \1009 1006 "MAIN_CANSHOWWINDOWEVENT", \ 1010 1007 "MAIN_CERTIFICATE", \ … … 1127 1124 "MAIN_PROGRESSPERCENTAGECHANGEDEVENT", \ 1128 1125 "MAIN_PROGRESSTASKCOMPLETEDEVENT", \ 1126 "MAIN_RECORDCHANGEDEVENT", \ 1127 "MAIN_RECORDSETTINGS", \ 1128 "MAIN_RECORDSCREENSETTINGS", \ 1129 1129 "MAIN_REUSABLEEVENT", \ 1130 1130 "MAIN_RUNTIMEERROREVENT", \ -
trunk/include/VBox/settings.h
r75279 r75341 481 481 }; 482 482 483 /** List for keeping a capturing feature list. */484 typedef std::map< CaptureFeature_T, bool> CaptureFeatureMap;485 486 struct CaptureScreenSettings487 { 488 CaptureScreenSettings();489 490 virtual ~ CaptureScreenSettings();483 /** List for keeping a recording feature list. */ 484 typedef std::map<RecordFeature_T, bool> RecordFeatureMap; 485 486 struct RecordScreenSettings 487 { 488 RecordScreenSettings(); 489 490 virtual ~RecordScreenSettings(); 491 491 492 492 void applyDefaults(void); … … 494 494 bool areDefaultSettings(void) const; 495 495 496 bool isFeatureEnabled( CaptureFeature_T enmFeature) const;497 498 bool operator==(const CaptureScreenSettings &d) const;496 bool isFeatureEnabled(RecordFeature_T enmFeature) const; 497 498 bool operator==(const RecordScreenSettings &d) const; 499 499 500 500 bool fEnabled; // requires settings version 1.14 (VirtualBox 4.3) 501 CaptureDestination_T enmDest; // new since VirtualBox 6.0.502 CaptureFeatureMap featureMap; // new since VirtualBox 6.0.501 RecordDestination_T enmDest; // new since VirtualBox 6.0. 502 RecordFeatureMap featureMap; // new since VirtualBox 6.0. 503 503 uint32_t ulMaxTimeS; // requires settings version 1.14 (VirtualBox 4.3) 504 504 com::Utf8Str strOptions; // new since VirtualBox 5.2. … … 507 507 { 508 508 Audio() 509 : enmAudioCodec( CaptureAudioCodec_Opus)509 : enmAudioCodec(RecordAudioCodec_Opus) 510 510 , uHz(22050) 511 511 , cBits(16) … … 513 513 514 514 /** The audio codec type to use. */ 515 CaptureAudioCodec_T enmAudioCodec; // new since VirtualBox 6.0.515 RecordAudioCodec_T enmAudioCodec; // new since VirtualBox 6.0. 516 516 /** Hz rate. */ 517 517 uint16_t uHz; // new since VirtualBox 6.0. … … 525 525 { 526 526 Video() 527 : enmCodec( CaptureVideoCodec_VP8)527 : enmCodec(RecordVideoCodec_VP8) 528 528 , ulWidth(1024) 529 529 , ulHeight(768) … … 531 531 , ulFPS(25) { } 532 532 533 CaptureVideoCodec_T enmCodec; // new since VirtualBox 6.0.533 RecordVideoCodec_T enmCodec; // new since VirtualBox 6.0. 534 534 uint32_t ulWidth; // requires settings version 1.14 (VirtualBox 4.3) 535 535 uint32_t ulHeight; // requires settings version 1.14 (VirtualBox 4.3) … … 549 549 550 550 /** Map for keeping settings per virtual screen. */ 551 typedef std::map<uint32_t, CaptureScreenSettings> CaptureScreenMap;552 553 /** 554 * NOTE: If you add any fields in here, you must update a) the constructor and b) 555 * the operator== which is used by MachineConfigFile::operator==(), or otherwise 556 * your settings might never get saved. 557 */ 558 struct CaptureSettings559 { 560 CaptureSettings();551 typedef std::map<uint32_t, RecordScreenSettings> RecordScreenMap; 552 553 /** 554 * NOTE: If you add any fields in here, you must update a) the constructor and b) 555 * the operator== which is used by MachineConfigFile::operator==(), or otherwise 556 * your settings might never get saved. 557 */ 558 struct RecordSettings 559 { 560 RecordSettings(); 561 561 562 562 void applyDefaults(void); … … 564 564 bool areDefaultSettings(void) const; 565 565 566 bool operator==(const CaptureSettings &d) const;567 568 bool 569 CaptureScreenMap mapScreens;566 bool operator==(const RecordSettings &d) const; 567 568 bool fEnabled; // requires settings version 1.14 (VirtualBox 4.3) 569 RecordScreenMap mapScreens; 570 570 }; 571 571 … … 1039 1039 1040 1040 BIOSSettings biosSettings; 1041 CaptureSettings captureSettings;1041 RecordSettings recordSettings; 1042 1042 USB usbSettings; 1043 1043 NetworkAdaptersList llNetworkAdapters; -
trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp
r75253 r75341 465 465 " -start-paused, --start-paused Start the VM in paused state\n" 466 466 #ifdef VBOX_WITH_VIDEOREC 467 " -c, - capture, --captureRecord the VM screen output to a file\n"468 " -w, -- width Frame width when recording\n"469 " -h, -- height Frame height when recording\n"470 " -r, -- bitrateRecording bit rate when recording\n"467 " -c, -record, --record Record the VM screen output to a file\n" 468 " -w, --videowidth Video frame width when recording\n" 469 " -h, --videoheight Video frame height when recording\n" 470 " -r, --videobitrate Recording bit rate when recording\n" 471 471 " -f, --filename File name when recording. The codec used\n" 472 " 472 " will be chosen based on file extension\n" 473 473 #endif 474 474 "\n"); … … 494 494 * 495 495 * Use RTEnvGetEx instead! */ 496 if ((pszEnvTemp = RTEnvGet("VBOX_ CAPTUREWIDTH")) != 0)496 if ((pszEnvTemp = RTEnvGet("VBOX_RECORDWIDTH")) != 0) 497 497 { 498 498 errno = 0; 499 499 unsigned long ulFrameWidth = strtoul(pszEnvTemp, 0, 10); 500 500 if (errno != 0) 501 LogError("VBoxHeadless: ERROR: invalid VBOX_ CAPTUREWIDTH environment variable", 0);501 LogError("VBoxHeadless: ERROR: invalid VBOX_RECORDWIDTH environment variable", 0); 502 502 else 503 503 *pulFrameWidth = ulFrameWidth; 504 504 } 505 if ((pszEnvTemp = RTEnvGet("VBOX_ CAPTUREHEIGHT")) != 0)505 if ((pszEnvTemp = RTEnvGet("VBOX_RECORDHEIGHT")) != 0) 506 506 { 507 507 errno = 0; 508 508 unsigned long ulFrameHeight = strtoul(pszEnvTemp, 0, 10); 509 509 if (errno != 0) 510 LogError("VBoxHeadless: ERROR: invalid VBOX_ CAPTUREHEIGHT environment variable", 0);510 LogError("VBoxHeadless: ERROR: invalid VBOX_RECORDHEIGHT environment variable", 0); 511 511 else 512 512 *pulFrameHeight = ulFrameHeight; 513 513 } 514 if ((pszEnvTemp = RTEnvGet("VBOX_ CAPTUREBITRATE")) != 0)514 if ((pszEnvTemp = RTEnvGet("VBOX_RECORDBITRATE")) != 0) 515 515 { 516 516 errno = 0; 517 517 unsigned long ulBitRate = strtoul(pszEnvTemp, 0, 10); 518 518 if (errno != 0) 519 LogError("VBoxHeadless: ERROR: invalid VBOX_ CAPTUREBITRATE environment variable", 0);519 LogError("VBoxHeadless: ERROR: invalid VBOX_RECORDBITRATE environment variable", 0); 520 520 else 521 521 *pulBitRate = ulBitRate; 522 522 } 523 if ((pszEnvTemp = RTEnvGet("VBOX_ CAPTUREFILE")) != 0)523 if ((pszEnvTemp = RTEnvGet("VBOX_RECORDFILE")) != 0) 524 524 *ppszFileName = pszEnvTemp; 525 525 } … … 627 627 unsigned fPaused = 0; 628 628 #ifdef VBOX_WITH_VIDEOREC 629 bool f CaptureEnabled = false;630 uint32_t ul CaptureVideoWidth = 800;631 uint32_t ul CaptureVideoHeight = 600;632 uint32_t ul CaptureVideoRate = 300000;633 char sz CaptureFileName[RTPATH_MAX];634 const char *psz CaptureFileNameTemplate = "VBox-%d.webm"; /* .webm container by default. */629 bool fRecordEnabled = false; 630 uint32_t ulRecordVideoWidth = 800; 631 uint32_t ulRecordVideoHeight = 600; 632 uint32_t ulRecordVideoRate = 300000; 633 char szRecordFileName[RTPATH_MAX]; 634 const char *pszRecordFileNameTemplate = "VBox-%d.webm"; /* .webm container by default. */ 635 635 #endif /* VBOX_WITH_VIDEOREC */ 636 636 #ifdef RT_OS_WINDOWS … … 645 645 #ifdef VBOX_WITH_VIDEOREC 646 646 /* Parse the environment */ 647 parse_environ(&ul CaptureVideoWidth, &ulCaptureVideoHeight, &ulCaptureVideoRate, &pszCaptureFileNameTemplate);647 parse_environ(&ulRecordVideoWidth, &ulRecordVideoHeight, &ulRecordVideoRate, &pszRecordFileNameTemplate); 648 648 #endif 649 649 … … 697 697 { "--settingspwfile", OPT_SETTINGSPW_FILE, RTGETOPT_REQ_STRING }, 698 698 #ifdef VBOX_WITH_VIDEOREC 699 { "- capture", 'c', 0 },700 { "-- capture", 'c', 0 },701 { "-- width", 'w', RTGETOPT_REQ_UINT32 },702 { "-- height", 'h', RTGETOPT_REQ_UINT32 }, /* great choice of short option! */703 { "-- bitrate", 'r', RTGETOPT_REQ_UINT32 },699 { "-record", 'c', 0 }, 700 { "--record", 'c', 0 }, 701 { "--videowidth", 'w', RTGETOPT_REQ_UINT32 }, 702 { "--videoheight", 'h', RTGETOPT_REQ_UINT32 }, /* great choice of short option! */ 703 { "--videorate", 'r', RTGETOPT_REQ_UINT32 }, 704 704 { "--filename", 'f', RTGETOPT_REQ_STRING }, 705 705 #endif /* VBOX_WITH_VIDEOREC defined */ … … 782 782 #ifdef VBOX_WITH_VIDEOREC 783 783 case 'c': 784 f CaptureEnabled = true;784 fRecordEnabled = true; 785 785 break; 786 786 case 'w': 787 ul CaptureVideoWidth = ValueUnion.u32;787 ulRecordVideoWidth = ValueUnion.u32; 788 788 break; 789 789 case 'r': 790 ul CaptureVideoRate = ValueUnion.u32;790 ulRecordVideoRate = ValueUnion.u32; 791 791 break; 792 792 case 'f': 793 psz CaptureFileNameTemplate = ValueUnion.psz;793 pszRecordFileNameTemplate = ValueUnion.psz; 794 794 break; 795 795 #endif /* VBOX_WITH_VIDEOREC defined */ … … 798 798 if ((GetState.pDef->fFlags & RTGETOPT_REQ_MASK) != RTGETOPT_REQ_NOTHING) 799 799 { 800 ul CaptureVideoHeight = ValueUnion.u32;800 ulRecordVideoHeight = ValueUnion.u32; 801 801 break; 802 802 } … … 818 818 819 819 #ifdef VBOX_WITH_VIDEOREC 820 if (ul CaptureVideoWidth < 512 || ulCaptureVideoWidth > 2048 || ulCaptureVideoWidth % 2)821 { 822 LogError("VBoxHeadless: ERROR: please specify an even frame width between 512 and 2048", 0);820 if (ulRecordVideoWidth < 512 || ulRecordVideoWidth > 2048 || ulRecordVideoWidth % 2) 821 { 822 LogError("VBoxHeadless: ERROR: please specify an even video frame width between 512 and 2048", 0); 823 823 return 1; 824 824 } 825 if (ul CaptureVideoHeight < 384 || ulCaptureVideoHeight > 1536 || ulCaptureVideoHeight % 2)826 { 827 LogError("VBoxHeadless: ERROR: please specify an even frame height between 384 and 1536", 0);825 if (ulRecordVideoHeight < 384 || ulRecordVideoHeight > 1536 || ulRecordVideoHeight % 2) 826 { 827 LogError("VBoxHeadless: ERROR: please specify an even video frame height between 384 and 1536", 0); 828 828 return 1; 829 829 } 830 if (ul CaptureVideoRate < 300000 || ulCaptureVideoRate > 1000000)831 { 832 LogError("VBoxHeadless: ERROR: please specify an even bitrate between 300000 and 1000000", 0);830 if (ulRecordVideoRate < 300000 || ulRecordVideoRate > 1000000) 831 { 832 LogError("VBoxHeadless: ERROR: please specify an even video bitrate between 300000 and 1000000", 0); 833 833 return 1; 834 834 } 835 835 /* Make sure we only have %d or %u (or none) in the file name specified */ 836 char *pcPercent = (char*)strchr(psz CaptureFileNameTemplate, '%');836 char *pcPercent = (char*)strchr(pszRecordFileNameTemplate, '%'); 837 837 if (pcPercent != 0 && *(pcPercent + 1) != 'd' && *(pcPercent + 1) != 'u') 838 838 { 839 LogError("VBoxHeadless: ERROR: Only %%d and %%u are allowed in the capturefile name.", -1);839 LogError("VBoxHeadless: ERROR: Only %%d and %%u are allowed in the recording file name.", -1); 840 840 return 1; 841 841 } … … 843 843 if (pcPercent != 0 && strchr(pcPercent + 1, '%') != 0) 844 844 { 845 LogError("VBoxHeadless: ERROR: Only one format modifier is allowed in the capturefile name.", -1);845 LogError("VBoxHeadless: ERROR: Only one format modifier is allowed in the recording file name.", -1); 846 846 return 1; 847 847 } 848 RTStrPrintf(&sz CaptureFileName[0], RTPATH_MAX, pszCaptureFileNameTemplate, RTProcSelf());848 RTStrPrintf(&szRecordFileName[0], RTPATH_MAX, pszRecordFileNameTemplate, RTProcSelf()); 849 849 #endif /* defined VBOX_WITH_VIDEOREC */ 850 850 … … 959 959 960 960 #ifdef VBOX_WITH_VIDEOREC 961 if (f CaptureEnabled)962 { 963 ComPtr<I CaptureSettings> captureSettings;964 CHECK_ERROR_BREAK(machine, COMGETTER( CaptureSettings)(captureSettings.asOutParam()));965 CHECK_ERROR_BREAK( captureSettings, COMSETTER(Enabled)(TRUE));966 967 SafeIfaceArray <I CaptureScreenSettings> saCaptureScreenScreens;968 CHECK_ERROR_BREAK( captureSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saCaptureScreenScreens)));961 if (fRecordEnabled) 962 { 963 ComPtr<IRecordSettings> RecordSettings; 964 CHECK_ERROR_BREAK(machine, COMGETTER(RecordSettings)(RecordSettings.asOutParam())); 965 CHECK_ERROR_BREAK(RecordSettings, COMSETTER(Enabled)(TRUE)); 966 967 SafeIfaceArray <IRecordScreenSettings> saRecordScreenScreens; 968 CHECK_ERROR_BREAK(RecordSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saRecordScreenScreens))); 969 969 970 970 /* Note: For now all screens have the same configuration. */ 971 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)972 { 973 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(Enabled)(TRUE));974 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(FileName)(Bstr(szCaptureFileName).raw()));975 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoWidth)(ulCaptureVideoWidth));976 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoHeight)(ulCaptureVideoHeight));977 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoRate)(ulCaptureVideoRate));971 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 972 { 973 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(Enabled)(TRUE)); 974 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(FileName)(Bstr(szRecordFileName).raw())); 975 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoWidth)(ulRecordVideoWidth)); 976 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoHeight)(ulRecordVideoHeight)); 977 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoRate)(ulRecordVideoRate)); 978 978 } 979 979 } … … 1228 1228 1229 1229 #ifdef VBOX_WITH_VIDEOREC 1230 if (f CaptureEnabled)1230 if (fRecordEnabled) 1231 1231 { 1232 1232 if (!machine.isNull()) 1233 1233 { 1234 ComPtr<I CaptureSettings> captureSettings;1235 CHECK_ERROR_BREAK(machine, COMGETTER( CaptureSettings)(captureSettings.asOutParam()));1236 CHECK_ERROR_BREAK( captureSettings, COMSETTER(Enabled)(FALSE));1234 ComPtr<IRecordSettings> RecordSettings; 1235 CHECK_ERROR_BREAK(machine, COMGETTER(RecordSettings)(RecordSettings.asOutParam())); 1236 CHECK_ERROR_BREAK(RecordSettings, COMSETTER(Enabled)(FALSE)); 1237 1237 } 1238 1238 } -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageControlVM.cpp
r75251 r75341 1855 1855 } 1856 1856 #ifdef VBOX_WITH_VIDEOREC 1857 else if (!strcmp(a->argv[1], " capture"))1857 else if (!strcmp(a->argv[1], "record")) 1858 1858 { 1859 1859 if (a->argc < 3) … … 1864 1864 } 1865 1865 1866 ComPtr<I CaptureSettings> captureSettings;1867 CHECK_ERROR_BREAK(machine, COMGETTER( CaptureSettings)(captureSettings.asOutParam()));1868 1869 SafeIfaceArray <I CaptureScreenSettings> saCaptureScreenScreens;1870 CHECK_ERROR_BREAK( captureSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saCaptureScreenScreens)));1866 ComPtr<IRecordSettings> RecordSettings; 1867 CHECK_ERROR_BREAK(machine, COMGETTER(RecordSettings)(RecordSettings.asOutParam())); 1868 1869 SafeIfaceArray <IRecordScreenSettings> saRecordScreenScreens; 1870 CHECK_ERROR_BREAK(RecordSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saRecordScreenScreens))); 1871 1871 1872 1872 /* Note: For now all screens have the same configuration. */ … … 1876 1876 * kept to ensure backwards compatibility. 1877 1877 */ 1878 if (!strcmp(a->argv[2], " enable"))1879 { 1880 CHECK_ERROR_RET( captureSettings, COMSETTER(Enabled)(TRUE), RTEXITCODE_FAILURE);1881 } 1882 else if (!strcmp(a->argv[2], " disable"))1883 { 1884 CHECK_ERROR_RET( captureSettings, COMSETTER(Enabled)(FALSE), RTEXITCODE_FAILURE);1878 if (!strcmp(a->argv[2], "on")) 1879 { 1880 CHECK_ERROR_RET(RecordSettings, COMSETTER(Enabled)(TRUE), RTEXITCODE_FAILURE); 1881 } 1882 else if (!strcmp(a->argv[2], "off")) 1883 { 1884 CHECK_ERROR_RET(RecordSettings, COMSETTER(Enabled)(FALSE), RTEXITCODE_FAILURE); 1885 1885 } 1886 1886 else if (!strcmp(a->argv[2], "screens")) … … 1930 1930 } 1931 1931 1932 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)1933 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(Enabled)(saScreens[i]));1932 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 1933 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(Enabled)(saScreens[i])); 1934 1934 } 1935 1935 else if (!strcmp(a->argv[2], "filename")) … … 1942 1942 } 1943 1943 1944 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)1945 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(FileName)(Bstr(a->argv[2]).raw()));1946 } 1947 else if ( !strcmp(a->argv[2], " res")1948 || !strcmp(a->argv[2], " resolution"))1944 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 1945 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(FileName)(Bstr(a->argv[2]).raw())); 1946 } 1947 else if ( !strcmp(a->argv[2], "videores") 1948 || !strcmp(a->argv[2], "videoresolution")) 1949 1949 { 1950 1950 if (a->argc != 5) … … 1972 1972 } 1973 1973 1974 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)1975 { 1976 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoWidth)(uVal));1977 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoHeight)(uVal));1974 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 1975 { 1976 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoWidth)(uVal)); 1977 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoHeight)(uVal)); 1978 1978 } 1979 1979 } … … 1996 1996 } 1997 1997 1998 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)1999 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoRate)(uVal));1998 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 1999 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoRate)(uVal)); 2000 2000 } 2001 2001 else if (!strcmp(a->argv[2], "videofps")) … … 2017 2017 } 2018 2018 2019 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)2020 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(VideoFPS)(uVal));2019 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 2020 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(VideoFPS)(uVal)); 2021 2021 } 2022 2022 else if (!strcmp(a->argv[2], "maxtime")) … … 2038 2038 } 2039 2039 2040 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)2041 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(MaxTime)(uVal));2040 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 2041 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(MaxTime)(uVal)); 2042 2042 } 2043 2043 else if (!strcmp(a->argv[2], "maxfilesize")) … … 2059 2059 } 2060 2060 2061 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)2062 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(MaxFileSize)(uVal));2061 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 2062 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(MaxFileSize)(uVal)); 2063 2063 } 2064 2064 else if (!strcmp(a->argv[2], "opts")) … … 2071 2071 } 2072 2072 2073 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)2074 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(Options)(Bstr(a->argv[3]).raw()));2073 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 2074 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(Options)(Bstr(a->argv[3]).raw())); 2075 2075 } 2076 2076 } -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
r75251 r75341 713 713 #endif 714 714 #ifdef VBOX_WITH_VIDEOREC 715 " [-- captureon|off]\n"716 " [-- capturescreens all|<screen ID> [<screen ID> ...]]\n"717 " [-- capturefilename <filename>]\n"718 " [-- capture resolution<width> <height>]\n"719 " [-- capturevideorate <rate>]\n"720 " [-- capturevideofps <fps>]\n"721 " [-- capturemaxtime <ms>]\n"722 " [-- capturemaxfilesize <MB>]\n"723 " [-- captureopts <key=value> [,<key=value> ...]]\n"715 " [--record on|off]\n" 716 " [--record screens all|<screen ID> [<screen ID> ...]]\n" 717 " [--record filename <filename>]\n" 718 " [--record videores <width> <height>]\n" 719 " [--record videorate <rate>]\n" 720 " [--record videofps <fps>]\n" 721 " [--record maxtime <ms>]\n" 722 " [--record maxfilesize <MB>]\n" 723 " [--record opts <key=value> [,<key=value> ...]]\n" 724 724 #endif 725 725 " [--defaultfrontend default|<name>]\n" … … 832 832 " screenshotpng <file> [display] |\n" 833 833 #ifdef VBOX_WITH_VIDEOREC 834 " captureon|off |\n"835 " capturescreens all|none|<screen>,[<screen>...] |\n"836 " capturefilename <file> |\n"837 " capture resolution<width>x<height> |\n"838 " capturevideorate <rate> |\n"839 " capturevideofps <fps> |\n"840 " capturemaxtime <s> |\n"841 " capturemaxfilesize <MB> |\n"834 " record on|off |\n" 835 " record screens all|none|<screen>,[<screen>...] |\n" 836 " record filename <file> |\n" 837 " record videores <width>x<height> |\n" 838 " record videorate <rate> |\n" 839 " record videofps <fps> |\n" 840 " record maxtime <s> |\n" 841 " record maxfilesize <MB> |\n" 842 842 #endif /* VBOX_WITH_VIDEOREC */ 843 843 " setcredentials <username>\n" -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
r75251 r75341 2379 2379 # endif 2380 2380 2381 ComPtr<I CaptureSettings> captureSettings;2382 CHECK_ERROR_RET(machine, COMGETTER( CaptureSettings)(captureSettings.asOutParam()), rc);2383 2384 SafeIfaceArray <I CaptureScreenSettings> saCaptureScreenScreens;2385 CHECK_ERROR_RET( captureSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saCaptureScreenScreens)), rc);2381 ComPtr<IRecordSettings> RecordSettings; 2382 CHECK_ERROR_RET(machine, COMGETTER(RecordSettings)(RecordSettings.asOutParam()), rc); 2383 2384 SafeIfaceArray <IRecordScreenSettings> saCaptureScreenScreens; 2385 CHECK_ERROR_RET(RecordSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saCaptureScreenScreens)), rc); 2386 2386 2387 2387 /* For now all screens have the same configuration; so take screen 0 and work with that. */ -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
r75255 r75341 215 215 #endif 216 216 #ifdef VBOX_WITH_VIDEOREC 217 MODIFYVM_ CAPTURE,218 MODIFYVM_ CAPTURE_FEATURES,219 MODIFYVM_ CAPTURE_SCREENS,220 MODIFYVM_ CAPTURE_FILENAME,221 MODIFYVM_ CAPTURE_WIDTH,222 MODIFYVM_ CAPTURE_HEIGHT,223 MODIFYVM_ CAPTURE_VIDEO_RES,224 MODIFYVM_ CAPTURE_VIDEO_RATE,225 MODIFYVM_ CAPTURE_VIDEO_FPS,226 MODIFYVM_ CAPTURE_MAXTIME,227 MODIFYVM_ CAPTURE_MAXSIZE,228 MODIFYVM_ CAPTURE_OPTIONS,217 MODIFYVM_RECORD, 218 MODIFYVM_RECORD_FEATURES, 219 MODIFYVM_RECORD_SCREENS, 220 MODIFYVM_RECORD_FILENAME, 221 MODIFYVM_RECORD_VIDEO_WIDTH, 222 MODIFYVM_RECORD_VIDEO_HEIGHT, 223 MODIFYVM_RECORD_VIDEO_RES, 224 MODIFYVM_RECORD_VIDEO_RATE, 225 MODIFYVM_RECORD_VIDEO_FPS, 226 MODIFYVM_RECORD_MAXTIME, 227 MODIFYVM_RECORD_MAXSIZE, 228 MODIFYVM_RECORD_OPTIONS, 229 229 #endif 230 230 MODIFYVM_CHIPSET, … … 395 395 { "--chipset", MODIFYVM_CHIPSET, RTGETOPT_REQ_STRING }, 396 396 #ifdef VBOX_WITH_VIDEOREC 397 { "-- capture", MODIFYVM_CAPTURE, RTGETOPT_REQ_BOOL_ONOFF },398 { "-- capturescreens", MODIFYVM_CAPTURE_SCREENS, RTGETOPT_REQ_STRING },399 { "-- capturefile", MODIFYVM_CAPTURE_FILENAME, RTGETOPT_REQ_STRING },400 { "-- capturemaxtime", MODIFYVM_CAPTURE_MAXTIME, RTGETOPT_REQ_INT32 },401 { "-- capturemaxsize", MODIFYVM_CAPTURE_MAXSIZE, RTGETOPT_REQ_INT32 },402 { "-- captureopts", MODIFYVM_CAPTURE_OPTIONS, RTGETOPT_REQ_STRING },403 { "-- captureoptions", MODIFYVM_CAPTURE_OPTIONS, RTGETOPT_REQ_STRING },404 { "-- capturevideores", MODIFYVM_CAPTURE_VIDEO_RES, RTGETOPT_REQ_STRING },405 { "-- capturevideorate", MODIFYVM_CAPTURE_VIDEO_RATE, RTGETOPT_REQ_UINT32 },406 { "-- capturevideofps", MODIFYVM_CAPTURE_VIDEO_FPS, RTGETOPT_REQ_UINT32 },397 { "--record", MODIFYVM_RECORD, RTGETOPT_REQ_BOOL_ONOFF }, 398 { "--recordscreens", MODIFYVM_RECORD_SCREENS, RTGETOPT_REQ_STRING }, 399 { "--recordfile", MODIFYVM_RECORD_FILENAME, RTGETOPT_REQ_STRING }, 400 { "--recordmaxtime", MODIFYVM_RECORD_MAXTIME, RTGETOPT_REQ_INT32 }, 401 { "--recordmaxsize", MODIFYVM_RECORD_MAXSIZE, RTGETOPT_REQ_INT32 }, 402 { "--recordopts", MODIFYVM_RECORD_OPTIONS, RTGETOPT_REQ_STRING }, 403 { "--recordoptions", MODIFYVM_RECORD_OPTIONS, RTGETOPT_REQ_STRING }, 404 { "--recordvideores", MODIFYVM_RECORD_VIDEO_RES, RTGETOPT_REQ_STRING }, 405 { "--recordvideorate", MODIFYVM_RECORD_VIDEO_RATE, RTGETOPT_REQ_UINT32 }, 406 { "--recordvideofps", MODIFYVM_RECORD_VIDEO_FPS, RTGETOPT_REQ_UINT32 }, 407 407 #endif 408 408 { "--autostart-enabled", MODIFYVM_AUTOSTART_ENABLED, RTGETOPT_REQ_BOOL_ONOFF }, … … 2928 2928 } 2929 2929 #ifdef VBOX_WITH_VIDEOREC 2930 case MODIFYVM_ CAPTURE:2930 case MODIFYVM_RECORD: 2931 2931 RT_FALL_THROUGH(); 2932 case MODIFYVM_ CAPTURE_SCREENS:2932 case MODIFYVM_RECORD_SCREENS: 2933 2933 RT_FALL_THROUGH(); 2934 case MODIFYVM_ CAPTURE_FILENAME:2934 case MODIFYVM_RECORD_FILENAME: 2935 2935 RT_FALL_THROUGH(); 2936 case MODIFYVM_ CAPTURE_WIDTH:2936 case MODIFYVM_RECORD_VIDEO_WIDTH: 2937 2937 RT_FALL_THROUGH(); 2938 case MODIFYVM_ CAPTURE_HEIGHT:2938 case MODIFYVM_RECORD_VIDEO_HEIGHT: 2939 2939 RT_FALL_THROUGH(); 2940 case MODIFYVM_ CAPTURE_VIDEO_RES:2940 case MODIFYVM_RECORD_VIDEO_RES: 2941 2941 RT_FALL_THROUGH(); 2942 case MODIFYVM_ CAPTURE_VIDEO_RATE:2942 case MODIFYVM_RECORD_VIDEO_RATE: 2943 2943 RT_FALL_THROUGH(); 2944 case MODIFYVM_ CAPTURE_VIDEO_FPS:2944 case MODIFYVM_RECORD_VIDEO_FPS: 2945 2945 RT_FALL_THROUGH(); 2946 case MODIFYVM_ CAPTURE_MAXTIME:2946 case MODIFYVM_RECORD_MAXTIME: 2947 2947 RT_FALL_THROUGH(); 2948 case MODIFYVM_ CAPTURE_MAXSIZE:2948 case MODIFYVM_RECORD_MAXSIZE: 2949 2949 RT_FALL_THROUGH(); 2950 case MODIFYVM_ CAPTURE_OPTIONS:2951 { 2952 ComPtr<I CaptureSettings> captureSettings;2953 CHECK_ERROR_BREAK(machine, COMGETTER( CaptureSettings)(captureSettings.asOutParam()));2954 SafeIfaceArray <I CaptureScreenSettings> saCaptureScreenScreens;2955 CHECK_ERROR_BREAK( captureSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saCaptureScreenScreens)));2950 case MODIFYVM_RECORD_OPTIONS: 2951 { 2952 ComPtr<IRecordSettings> RecordSettings; 2953 CHECK_ERROR_BREAK(machine, COMGETTER(RecordSettings)(RecordSettings.asOutParam())); 2954 SafeIfaceArray <IRecordScreenSettings> saRecordScreenScreens; 2955 CHECK_ERROR_BREAK(RecordSettings, COMGETTER(Screens)(ComSafeArrayAsOutParam(saRecordScreenScreens))); 2956 2956 2957 2957 switch (c) 2958 2958 { 2959 case MODIFYVM_ CAPTURE:2960 { 2961 CHECK_ERROR( captureSettings, COMSETTER(Enabled)(ValueUnion.f));2959 case MODIFYVM_RECORD: 2960 { 2961 CHECK_ERROR(RecordSettings, COMSETTER(Enabled)(ValueUnion.f)); 2962 2962 break; 2963 2963 } 2964 case MODIFYVM_ CAPTURE_SCREENS:2964 case MODIFYVM_RECORD_SCREENS: 2965 2965 { 2966 2966 ULONG cMonitors = 64; … … 2974 2974 } 2975 2975 2976 if (cMonitors > sa CaptureScreenScreens.size()) /* Paranoia. */2977 cMonitors = (ULONG)sa CaptureScreenScreens.size();2976 if (cMonitors > saRecordScreenScreens.size()) /* Paranoia. */ 2977 cMonitors = (ULONG)saRecordScreenScreens.size(); 2978 2978 2979 2979 for (size_t i = 0; i < cMonitors; ++i) 2980 CHECK_ERROR_BREAK(sa CaptureScreenScreens[i], COMSETTER(Enabled)(screens[i]));2980 CHECK_ERROR_BREAK(saRecordScreenScreens[i], COMSETTER(Enabled)(screens[i])); 2981 2981 break; 2982 2982 } 2983 case MODIFYVM_ CAPTURE_FILENAME:2983 case MODIFYVM_RECORD_FILENAME: 2984 2984 { 2985 2985 Bstr bstr; … … 2998 2998 } 2999 2999 3000 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3001 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(FileName)(bstr.raw()));3000 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3001 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(FileName)(bstr.raw())); 3002 3002 break; 3003 3003 } 3004 case MODIFYVM_ CAPTURE_WIDTH:3005 { 3006 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3007 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoWidth)(ValueUnion.u32));3004 case MODIFYVM_RECORD_VIDEO_WIDTH: 3005 { 3006 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3007 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoWidth)(ValueUnion.u32)); 3008 3008 break; 3009 3009 } 3010 case MODIFYVM_ CAPTURE_HEIGHT:3011 { 3012 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3013 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoHeight)(ValueUnion.u32));3010 case MODIFYVM_RECORD_VIDEO_HEIGHT: 3011 { 3012 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3013 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoHeight)(ValueUnion.u32)); 3014 3014 break; 3015 3015 } 3016 case MODIFYVM_ CAPTURE_VIDEO_RES:3016 case MODIFYVM_RECORD_VIDEO_RES: 3017 3017 { 3018 3018 uint32_t uWidth = 0; … … 3034 3034 } 3035 3035 3036 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3036 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3037 3037 { 3038 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoWidth)(uWidth));3039 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoHeight)(uHeight));3038 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoWidth)(uWidth)); 3039 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoHeight)(uHeight)); 3040 3040 } 3041 3041 break; 3042 3042 } 3043 case MODIFYVM_ CAPTURE_VIDEO_RATE:3044 { 3045 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3046 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoRate)(ValueUnion.u32));3043 case MODIFYVM_RECORD_VIDEO_RATE: 3044 { 3045 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3046 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoRate)(ValueUnion.u32)); 3047 3047 break; 3048 3048 } 3049 case MODIFYVM_ CAPTURE_VIDEO_FPS:3050 { 3051 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3052 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(VideoFPS)(ValueUnion.u32));3049 case MODIFYVM_RECORD_VIDEO_FPS: 3050 { 3051 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3052 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(VideoFPS)(ValueUnion.u32)); 3053 3053 break; 3054 3054 } 3055 case MODIFYVM_ CAPTURE_MAXTIME:3056 { 3057 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3058 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(MaxTime)(ValueUnion.u32));3055 case MODIFYVM_RECORD_MAXTIME: 3056 { 3057 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3058 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(MaxTime)(ValueUnion.u32)); 3059 3059 break; 3060 3060 } 3061 case MODIFYVM_ CAPTURE_MAXSIZE:3062 { 3063 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3064 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(MaxFileSize)(ValueUnion.u32));3061 case MODIFYVM_RECORD_MAXSIZE: 3062 { 3063 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3064 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(MaxFileSize)(ValueUnion.u32)); 3065 3065 break; 3066 3066 } 3067 case MODIFYVM_ CAPTURE_OPTIONS:3067 case MODIFYVM_RECORD_OPTIONS: 3068 3068 { 3069 3069 Bstr bstr(ValueUnion.psz); 3070 for (size_t i = 0; i < sa CaptureScreenScreens.size(); ++i)3071 CHECK_ERROR(sa CaptureScreenScreens[i], COMSETTER(Options)(bstr.raw()));3070 for (size_t i = 0; i < saRecordScreenScreens.size(); ++i) 3071 CHECK_ERROR(saRecordScreenScreens[i], COMSETTER(Options)(bstr.raw())); 3072 3072 break; 3073 3073 } -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp
r75291 r75341 375 375 break; 376 376 } 377 case KVBoxEventType_On CaptureChanged:377 case KVBoxEventType_OnRecordChanged: 378 378 { 379 379 emit sigRecordingChange(); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElements.cpp
r75319 r75341 44 44 # include "CMediumAttachment.h" 45 45 # include "CAudioAdapter.h" 46 # include "C CaptureSettings.h"47 # include "C CaptureScreenSettings.h"46 # include "CRecordSettings.h" 47 # include "CRecordScreenSettings.h" 48 48 # include "CNetworkAdapter.h" 49 49 # include "CSerialPort.h" … … 450 450 451 451 /* Recording info: */ 452 C CaptureSettings comRecordingSettings = machine.GetCaptureSettings();452 CRecordSettings comRecordingSettings = machine.GetRecordSettings(); 453 453 if (comRecordingSettings.GetEnabled()) 454 454 { 455 455 /* For now all screens have the same config: */ 456 C CaptureScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0);456 CRecordScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 457 457 458 458 /** @todo r=andy Refine these texts (wrt audio and/or video). */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp
r75291 r75341 188 188 << KVBoxEventType_OnVRDEServerChanged 189 189 << KVBoxEventType_OnVRDEServerInfoChanged 190 << KVBoxEventType_On CaptureChanged190 << KVBoxEventType_OnRecordChanged 191 191 << KVBoxEventType_OnUSBControllerChanged 192 192 << KVBoxEventType_OnUSBDeviceStateChanged -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp
r75319 r75341 43 43 /* COM includes: */ 44 44 # include "CAudioAdapter.h" 45 # include "C CaptureSettings.h"46 # include "C CaptureScreenSettings.h"45 # include "CRecordSettings.h" 46 # include "CRecordScreenSettings.h" 47 47 # include "CConsole.h" 48 48 # include "CMachine.h" … … 884 884 885 885 /* Update indicator state early: */ 886 C CaptureSettings comRecordingSettings = comMachine.GetCaptureSettings();886 CRecordSettings comRecordingSettings = comMachine.GetRecordSettings(); 887 887 Assert(comRecordingSettings.isOk()); 888 888 if (!comRecordingSettings.GetEnabled()) … … 918 918 919 919 /* For now all screens have the same config: */ 920 C CaptureScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0);920 CRecordScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 921 921 Assert(comRecordingScreen0Settings.isOk()); 922 922 … … 943 943 void setRotationAngle(double dRotationAngle) { m_dRotationAngle = dRotationAngle; update(); } 944 944 945 /* Parses CaptureScreenSettings::Options and updates m_enmRecordingMode accordingly. */945 /* Parses RecordScreenSettings::Options and updates m_enmRecordingMode accordingly. */ 946 946 void updateRecordingMode() 947 947 { … … 955 955 return; 956 956 957 C CaptureSettings comRecordingSettings = comMachine.GetCaptureSettings();957 CRecordSettings comRecordingSettings = comMachine.GetRecordSettings(); 958 958 /* For now all screens have the same config: */ 959 C CaptureScreenSettings recordingScreen0Settings = comRecordingSettings.GetScreenSettings(0);960 if (recordingScreen0Settings.IsFeatureEnabled(K CaptureFeature_Video))959 CRecordScreenSettings recordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 960 if (recordingScreen0Settings.IsFeatureEnabled(KRecordFeature_Video)) 961 961 m_enmRecordingMode = (UIIndicatorStateRecordingMode)((int)m_enmRecordingMode | (int)UIIndicatorStateRecordingMode_Video); 962 962 963 if (recordingScreen0Settings.IsFeatureEnabled(K CaptureFeature_Audio))963 if (recordingScreen0Settings.IsFeatureEnabled(KRecordFeature_Audio)) 964 964 m_enmRecordingMode = (UIIndicatorStateRecordingMode)((int)m_enmRecordingMode | (int)UIIndicatorStateRecordingMode_Audio); 965 965 } -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
r75319 r75341 77 77 /* COM includes: */ 78 78 # include "CAudioAdapter.h" 79 # include "C CaptureSettings.h"79 # include "CRecordSettings.h" 80 80 # include "CVirtualBoxErrorInfo.h" 81 81 # include "CMachineDebugger.h" … … 2104 2104 2105 2105 /* Make sure something had changed: */ 2106 C CaptureSettings comRecordingSettings = machine().GetCaptureSettings();2106 CRecordSettings comRecordingSettings = machine().GetRecordSettings(); 2107 2107 if (comRecordingSettings.GetEnabled() == static_cast<BOOL>(fEnabled)) 2108 2108 return; -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
r75319 r75341 60 60 /* COM includes: */ 61 61 # include "CAudioAdapter.h" 62 # include "C CaptureSettings.h"62 # include "CRecordSettings.h" 63 63 # include "CSystemProperties.h" 64 64 # include "CStorageController.h" … … 724 724 void UISession::sltRecordingChange() 725 725 { 726 C CaptureSettings comRecordingSettings = machine().GetCaptureSettings();726 CRecordSettings comRecordingSettings = machine().GetRecordSettings(); 727 727 728 728 /* Check/Uncheck Capture action depending on feature status: */ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
r75324 r75341 31 31 32 32 /* COM includes: */ 33 # include "C CaptureSettings.h"34 # include "C CaptureScreenSettings.h"33 # include "CRecordSettings.h" 34 # include "CRecordScreenSettings.h" 35 35 # include "CExtPack.h" 36 36 # include "CExtPackManager.h" … … 383 383 384 384 /* Gather old 'Recording' data: */ 385 C CaptureSettings recordingSettings = m_machine.GetCaptureSettings();385 CRecordSettings recordingSettings = m_machine.GetRecordSettings(); 386 386 Assert(recordingSettings.isNotNull()); 387 387 oldDisplayData.m_fRecordingEnabled = recordingSettings.GetEnabled(); 388 388 389 389 /* For now we're using the same settings for all screens; so get settings from screen 0 and work with that. */ 390 C CaptureScreenSettings recordingScreen0Settings = recordingSettings.GetScreenSettings(0);390 CRecordScreenSettings recordingScreen0Settings = recordingSettings.GetScreenSettings(0); 391 391 if (!recordingScreen0Settings.isNull()) 392 392 { … … 400 400 } 401 401 402 C CaptureScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens();402 CRecordScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens(); 403 403 oldDisplayData.m_vecRecordingScreens.resize(recordingScreenSettingsVector.size()); 404 404 for (int iScreenIndex = 0; iScreenIndex < recordingScreenSettingsVector.size(); ++iScreenIndex) 405 405 { 406 C CaptureScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex);406 CRecordScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex); 407 407 if (!recordingScreenSettings.isNull()) 408 408 oldDisplayData.m_vecRecordingScreens[iScreenIndex] = recordingScreenSettings.GetEnabled(); … … 1511 1511 const UIDataSettingsMachineDisplay &newDisplayData = m_pCache->data(); 1512 1512 1513 C CaptureSettings recordingSettings = m_machine.GetCaptureSettings();1513 CRecordSettings recordingSettings = m_machine.GetRecordSettings(); 1514 1514 Assert(recordingSettings.isNotNull()); 1515 1515 … … 1533 1533 if (fSuccess) 1534 1534 { 1535 C CaptureScreenSettingsVector captureScreenSettingsVector = recordingSettings.GetScreens();1536 for (int iScreenIndex = 0; fSuccess && iScreenIndex < captureScreenSettingsVector.size(); ++iScreenIndex)1535 CRecordScreenSettingsVector RecordScreenSettingsVector = recordingSettings.GetScreens(); 1536 for (int iScreenIndex = 0; fSuccess && iScreenIndex < RecordScreenSettingsVector.size(); ++iScreenIndex) 1537 1537 { 1538 1538 if (newDisplayData.m_vecRecordingScreens[iScreenIndex] == oldDisplayData.m_vecRecordingScreens[iScreenIndex]) 1539 1539 continue; 1540 1540 1541 C CaptureScreenSettings recordingScreenSettings = captureScreenSettingsVector.at(iScreenIndex);1541 CRecordScreenSettings recordingScreenSettings = RecordScreenSettingsVector.at(iScreenIndex); 1542 1542 recordingScreenSettings.SetEnabled(newDisplayData.m_vecRecordingScreens[iScreenIndex]); 1543 1543 fSuccess = recordingScreenSettings.isOk(); … … 1548 1548 else 1549 1549 { 1550 C CaptureScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens();1550 CRecordScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens(); 1551 1551 for (int iScreenIndex = 0; fSuccess && iScreenIndex < recordingScreenSettingsVector.size(); ++iScreenIndex) 1552 1552 { … … 1554 1554 continue; 1555 1555 1556 C CaptureScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex);1556 CRecordScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex); 1557 1557 1558 1558 // We should save all the options *before* 'Recording' activation. … … 1623 1623 else 1624 1624 { 1625 C CaptureScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens();1625 CRecordScreenSettingsVector recordingScreenSettingsVector = recordingSettings.GetScreens(); 1626 1626 for (int iScreenIndex = 0; fSuccess && iScreenIndex < recordingScreenSettingsVector.size(); ++iScreenIndex) 1627 1627 { … … 1629 1629 continue; 1630 1630 1631 C CaptureScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex);1631 CRecordScreenSettings recordingScreenSettings = recordingScreenSettingsVector.at(iScreenIndex); 1632 1632 1633 1633 /* Save recording file path: */ -
trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotDetailsWidget.cpp
r75319 r75341 48 48 /* COM includes: */ 49 49 # include "CAudioAdapter.h" 50 # include "C CaptureSettings.h"51 # include "C CaptureScreenSettings.h"50 # include "CRecordSettings.h" 51 # include "CRecordScreenSettings.h" 52 52 # include "CMachine.h" 53 53 # include "CMedium.h" … … 1748 1748 QStringList aReport; 1749 1749 /* Acquire recording status: */ 1750 C CaptureSettings comRecordingSettings = comMachine.GetCaptureSettings();1750 CRecordSettings comRecordingSettings = comMachine.GetRecordSettings(); 1751 1751 /* For now all screens have the same config: */ 1752 C CaptureScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0);1752 CRecordScreenSettings comRecordingScreen0Settings = comRecordingSettings.GetScreenSettings(0); 1753 1753 if (comRecordingScreen0Settings.GetEnabled()) 1754 1754 { -
trunk/src/VBox/Main/Makefile.kmk
r75261 r75341 457 457 src-server/BandwidthGroupImpl.cpp \ 458 458 src-server/BIOSSettingsImpl.cpp \ 459 src-server/ CaptureSettingsImpl.cpp \460 src-server/ CaptureScreenSettingsImpl.cpp \459 src-server/RecordSettingsImpl.cpp \ 460 src-server/RecordScreenSettingsImpl.cpp \ 461 461 src-server/ClientWatcher.cpp \ 462 462 src-server/ClientToken.cpp \ -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r75326 r75341 4690 4690 4691 4691 <enum 4692 name=" CaptureDestination"4693 uuid=" E54603A9-6751-4255-93F8-C69E61693391"4692 name="RecordDestination" 4693 uuid="F52E217E-CA05-41BA-8851-0FA38B3BA38B" 4694 4694 > 4695 4695 <desc> 4696 Capturing destination enumeration.4696 Recording destination enumeration. 4697 4697 </desc> 4698 4698 … … 4706 4706 4707 4707 <enum 4708 name=" CaptureFeature"4709 uuid=" F606CDDB-91B2-4E41-9DFE-4713D4DBA96F"4708 name="RecordFeature" 4709 uuid="52AEC901-4EF5-4E04-8CA3-EF1478BB0930" 4710 4710 > 4711 4711 <desc> 4712 Capturing features enumeration.4712 Recording features enumeration. 4713 4713 </desc> 4714 4714 … … 4717 4717 </const> 4718 4718 <const name="Video" value="1"> 4719 <desc>Video capturing.</desc>4719 <desc>Video recording.</desc> 4720 4720 </const> 4721 4721 <const name="Audio" value="2"> 4722 <desc>Audio capturing.</desc>4722 <desc>Audio recording.</desc> 4723 4723 </const> 4724 4724 </enum> 4725 4725 4726 4726 <enum 4727 name=" CaptureAudioCodec"4728 uuid=" 9B80C37F-7984-412C-A755-C18FE5859554"4727 name="RecordAudioCodec" 4728 uuid="B72DD288-0D3F-4652-AE66-D6F621D2F275" 4729 4729 > 4730 4730 <desc> 4731 Capturing audio codec enumeration.4731 Recording audio codec enumeration. 4732 4732 </desc> 4733 4733 … … 4745 4745 4746 4746 <enum 4747 name=" CaptureVideoCodec"4748 uuid=" 98BBC021-E119-497D-8C66-4336D539A8D6"4747 name="RecordVideoCodec" 4748 uuid="823F3AD4-151F-4BDB-AFF9-F7C998E46105" 4749 4749 > 4750 4750 <desc> 4751 Capturing video codec enumeration.4751 Recording video codec enumeration. 4752 4752 </desc> 4753 4753 … … 4767 4767 4768 4768 <enum 4769 name=" CaptureVideoScalingMethod"4770 uuid="8 315399B-4F31-416E-970E-D7480BDA1ACF"4769 name="RecordVideoScalingMethod" 4770 uuid="8D656085-BAE6-4F63-86F9-616776EB3773" 4771 4771 > 4772 4772 <desc> 4773 Capturing video scaling method enumeration.4773 Recording video scaling method enumeration. 4774 4774 </desc> 4775 4775 … … 4792 4792 4793 4793 <enum 4794 name=" CaptureVideoRateControlMode"4795 uuid=" 5D392E29-04EC-4FD7-989C-82452F54414C"4794 name="RecordVideoRateControlMode" 4795 uuid="11F99274-835F-4F2C-86A5-F8DF8999C21A" 4796 4796 > 4797 4797 <desc> 4798 Capturing video rate control mode enumeration.4798 Recording video rate control mode enumeration. 4799 4799 </desc> 4800 4800 … … 4808 4808 4809 4809 <interface 4810 name="I CaptureScreenSettings" extends="$unknown"4811 uuid=" B19FFA8A-686C-4221-AB29-3C1FA33946CA"4810 name="IRecordScreenSettings" extends="$unknown" 4811 uuid="7811A5C6-11DB-4F9A-8FAE-1CE238AB4B73" 4812 4812 wsmap="managed" 4813 4813 > 4814 4814 4815 4815 <desc> 4816 The I CaptureScreenSettings interface represents capturing settings of a4817 single virtual screen. This is used only in the <link to="I CaptureSettings" />4816 The IRecordScreenSettings interface represents recording settings of a 4817 single virtual screen. This is used only in the <link to="IRecordSettings" /> 4818 4818 interface. 4819 4819 </desc> 4820 4820 4821 4821 <method name="isFeatureEnabled"> 4822 <desc>Returns whether a particular capturing feature is enabled for this4822 <desc>Returns whether a particular recording feature is enabled for this 4823 4823 screen or not.</desc> 4824 <param name="feature" type=" CaptureFeature" dir="in">4824 <param name="feature" type="RecordFeature" dir="in"> 4825 4825 <desc>Feature to check for.</desc> 4826 4826 </param> … … 4838 4838 <attribute name="enabled" type="boolean" default="false"> 4839 4839 <desc> 4840 This setting determines whether this screen is enabled while capturing.4840 This setting determines whether this screen is enabled while recording. 4841 4841 </desc> 4842 4842 </attribute> 4843 4843 4844 4844 <attribute name="features" type="unsigned long"> 4845 <desc>This setting determines all enabled capturing features for this4845 <desc>This setting determines all enabled recording features for this 4846 4846 screen.</desc> 4847 4847 </attribute> 4848 4848 4849 <attribute name="destination" type=" CaptureDestination">4850 <desc>This setting determines the capturing destination for this4849 <attribute name="destination" type="RecordDestination"> 4850 <desc>This setting determines the recording destination for this 4851 4851 screen.</desc> 4852 4852 </attribute> … … 4856 4856 This setting determines the filename VirtualBox uses to save 4857 4857 the recorded content. This setting cannot be changed while video 4858 capturing is enabled.4858 recording is enabled. 4859 4859 <note> 4860 4860 When setting this attribute, the specified path has to be … … 4868 4868 <desc> 4869 4869 This setting defines the maximum amount of time in milliseconds 4870 to capture. Capturing will stop as soon as the defined time4871 interval has elapsed. If this value is zero, capturing will not be4872 limited by time. This setting cannot be changed while capturing is4870 to record. Recording will stop as soon as the defined time 4871 interval has elapsed. If this value is zero, recording will not be 4872 limited by time. This setting cannot be changed while recording is 4873 4873 enabled. 4874 4874 </desc> … … 4877 4877 <attribute name="maxFileSize" type="unsigned long" default="0"> 4878 4878 <desc> 4879 This setting determines the maximal number of capturedfile4880 size in MB. Capturing will stop as soon as the file size has4881 reached the defined value. If this value is zero, capturing4879 This setting determines the maximal number of recording file 4880 size in MB. Recording will stop as soon as the file size has 4881 reached the defined value. If this value is zero, recording 4882 4882 will not be limited by the file size. This setting cannot be changed 4883 while capturing is enabled.4883 while recording is enabled. 4884 4884 </desc> 4885 4885 </attribute> … … 4887 4887 <attribute name="options" type="wstring"> 4888 4888 <desc> 4889 This setting contains any additional capturing options4889 This setting contains any additional recording options 4890 4890 required in comma-separated key=value format. This setting 4891 cannot be changed while capturing is enabled.4891 cannot be changed while recording is enabled. 4892 4892 4893 4893 The following keys and their corresponding values are available: … … 4906 4906 </attribute> 4907 4907 4908 <attribute name="audioCodec" type=" CaptureAudioCodec">4908 <attribute name="audioCodec" type="RecordAudioCodec"> 4909 4909 <desc> 4910 4910 Determines the audio codec to use for encoding the 4911 recorded audio data. This setting cannot be changed while capturing is4911 recorded audio data. This setting cannot be changed while recording is 4912 4912 enabled. 4913 4913 </desc> … … 4917 4917 <desc> 4918 4918 Determines the Hertz (Hz) rate of the recorded audio data. This setting 4919 cannot be changed while capturing is enabled.4919 cannot be changed while recording is enabled. 4920 4920 </desc> 4921 4921 </attribute> … … 4924 4924 <desc> 4925 4925 Determines the bits per sample of the recorded audio data. This setting 4926 cannot be changed while capturing is enabled.4926 cannot be changed while recording is enabled. 4927 4927 </desc> 4928 4928 </attribute> … … 4933 4933 Specifiy 2 for stereo or 1 for mono. More than stereo (2) channels 4934 4934 are not supported at the moment. This setting cannot be changed while 4935 capturing is enabled.4936 </desc> 4937 </attribute> 4938 4939 <attribute name="videoCodec" type=" CaptureVideoCodec">4935 recording is enabled. 4936 </desc> 4937 </attribute> 4938 4939 <attribute name="videoCodec" type="RecordVideoCodec"> 4940 4940 <desc> 4941 4941 Determines the video codec to use for encoding the recorded video data. 4942 This setting cannot be changed while capturing is enabled.4942 This setting cannot be changed while recording is enabled. 4943 4943 </desc> 4944 4944 </attribute> … … 4947 4947 <desc> 4948 4948 Determines the horizontal resolution of the recorded video data. This 4949 setting cannot be changed while capturing is enabled.4949 setting cannot be changed while recording is enabled. 4950 4950 </desc> 4951 4951 </attribute> … … 4954 4954 <desc> 4955 4955 Determines the vertical resolution of the recorded video data. This 4956 setting cannot be changed while capturing is enabled.4956 setting cannot be changed while recording is enabled. 4957 4957 </desc> 4958 4958 </attribute> … … 4962 4962 Determines the bitrate in kilobits per second. Increasing this value 4963 4963 makes the video look better for the cost of an increased file size or 4964 transfer rate. This setting cannot be changed while capturing is enabled.4965 </desc> 4966 </attribute> 4967 4968 <attribute name="videoRateControlMode" type=" CaptureVideoRateControlMode">4964 transfer rate. This setting cannot be changed while recording is enabled. 4965 </desc> 4966 </attribute> 4967 4968 <attribute name="videoRateControlMode" type="RecordVideoRateControlMode"> 4969 4969 <desc> 4970 4970 Determines the rate control mode. This setting cannot be changed 4971 while capturing is enabled.4971 while recording is enabled. 4972 4972 </desc> 4973 4973 </attribute> … … 4978 4978 a higher frequency will be skipped. Reducing this value increases the 4979 4979 number of skipped frames and reduces the file size or transfer rate. 4980 This setting cannot be changed while capturing is enabled.4981 </desc> 4982 </attribute> 4983 4984 <attribute name="videoScalingMethod" type=" CaptureVideoScalingMethod">4980 This setting cannot be changed while recording is enabled. 4981 </desc> 4982 </attribute> 4983 4984 <attribute name="videoScalingMethod" type="RecordVideoScalingMethod"> 4985 4985 <desc> 4986 4986 Determines the video scaling method to use. 4987 This setting cannot be changed while capturing is enabled.4987 This setting cannot be changed while recording is enabled. 4988 4988 </desc> 4989 4989 </attribute> … … 4992 4992 4993 4993 <interface 4994 name="I CaptureSettings" extends="$unknown"4995 uuid=" F35B5C06-F6F0-475D-908A-F5FECC820043"4994 name="IRecordSettings" extends="$unknown" 4995 uuid="7202BACF-2BFE-46AA-AEF6-69B32FDDE236" 4996 4996 wsmap="managed" 4997 4997 > 4998 4998 4999 4999 <desc> 5000 The I CaptureSettings interface represents capturing settings of the virtual5001 machine. This is used only in the <link to="IMachine:: captureSettings" />5000 The IRecordSettings interface represents recording settings of the virtual 5001 machine. This is used only in the <link to="IMachine::recordSettings" /> 5002 5002 attribute. 5003 5003 </desc> 5004 5004 5005 5005 <method name="getScreenSettings"> 5006 <desc>Returns the capturing settings for a particular screen.</desc>5006 <desc>Returns the recording settings for a particular screen.</desc> 5007 5007 <param name="screenId" type="unsigned long" dir="in"> 5008 <desc>Screen ID to retrieve capturing screen settings for.</desc>5009 </param> 5010 <param name=" captureScreenSettings" type="ICaptureScreenSettings" dir="return">5011 <desc> Capturing screen settings for the requested screen.</desc>5008 <desc>Screen ID to retrieve recording screen settings for.</desc> 5009 </param> 5010 <param name="recordScreenSettings" type="IRecordScreenSettings" dir="return"> 5011 <desc>Recording screen settings for the requested screen.</desc> 5012 5012 </param> 5013 5013 </method> … … 5015 5015 <attribute name="enabled" type="boolean" default="false"> 5016 5016 <desc> 5017 This setting determines whether VirtualBox uses capturing to record a5017 This setting determines whether VirtualBox uses recording to record a 5018 5018 VM session.</desc> 5019 5019 </attribute> 5020 5020 5021 <attribute name="screens" type="I CaptureScreenSettings" readonly="yes" safearray="yes">5022 <desc> 5023 This setting returns an array for capturing settings of all configured5021 <attribute name="screens" type="IRecordScreenSettings" readonly="yes" safearray="yes"> 5022 <desc> 5023 This setting returns an array for recording settings of all configured 5024 5024 virtual screens.</desc> 5025 5025 </attribute> … … 5221 5221 <interface 5222 5222 name="IMachine" extends="$unknown" 5223 uuid=" 316A9802-03A5-44BE-B2A6-51261A021353"5223 uuid="7210DD84-2301-4C3B-8DB3-72DEBD3B91F9" 5224 5224 wsmap="managed" 5225 5225 wrap-hint-server-addinterfaces="IInternalMachineControl" … … 5506 5506 </attribute> 5507 5507 5508 <attribute name=" captureSettings" type="ICaptureSettings" readonly="yes">5509 <desc>Object containing all capturing settings.</desc>5508 <attribute name="recordSettings" type="IRecordSettings" readonly="yes"> 5509 <desc>Object containing all recording settings.</desc> 5510 5510 </attribute> 5511 5511 … … 20652 20652 <interface 20653 20653 name="IInternalSessionControl" extends="$unknown" 20654 uuid=" 96BDA9B7-92E6-402F-AA8C-2E77818DAE6E"20654 uuid="5CEB7885-5DD5-48E4-96C1-EEF4F4FD9FAC" 20655 20655 internal="yes" 20656 20656 wsmap="suppress" … … 20952 20952 </method> 20953 20953 20954 <method name="on CaptureChange">20955 <desc> 20956 Triggered when capturesettings have changed.20954 <method name="onRecordChange"> 20955 <desc> 20956 Triggered when recording settings have changed. 20957 20957 </desc> 20958 20958 </method> … … 23136 23136 </desc> 23137 23137 </const> 23138 <const name="On CaptureChanged" value="91">23139 <desc> 23140 See <link to="I CaptureChangedEvent">ICapturedChangeEvent</link>.23138 <const name="OnRecordChanged" value="91"> 23139 <desc> 23140 See <link to="IRecordChangedEvent">IRecordChangeEvent</link>. 23141 23141 </desc> 23142 23142 </const> … … 24523 24523 24524 24524 <interface 24525 name="I CaptureChangedEvent" extends="IEvent"24526 uuid=" C694687C-F432-4435-B457-F2E55B845C81"24527 wsmap="managed" autogen="VBoxEvent" id="On CaptureChanged"24525 name="IRecordChangedEvent" extends="IEvent" 24526 uuid="DA51AA0C-E642-4AA0-9DDD-B07E2911188B" 24527 wsmap="managed" autogen="VBoxEvent" id="OnRecordChanged" 24528 24528 > 24529 24529 <desc> 24530 Notification when capturesettings have changed.24530 Notification when recording settings have changed. 24531 24531 </desc> 24532 24532 <attribute name="midlDoesNotLikeEmptyInterfaces" readonly="yes" type="boolean"/> -
trunk/src/VBox/Main/include/ConsoleImpl.h
r75287 r75341 145 145 void i_videoRecDestroy(void); 146 146 int i_videoRecEnable(BOOL fEnable, util::AutoWriteLock *pAutoLock); 147 int i_videoRecGetSettings(settings:: CaptureSettings &Settings);147 int i_videoRecGetSettings(settings::RecordSettings &Settings); 148 148 int i_videoRecStart(void); 149 149 int i_videoRecStop(void); … … 179 179 HRESULT i_onDnDModeChange(DnDMode_T aDnDMode); 180 180 HRESULT i_onVRDEServerChange(BOOL aRestart); 181 HRESULT i_on CaptureChange();181 HRESULT i_onRecordChange(); 182 182 HRESULT i_onUSBControllerChange(); 183 183 HRESULT i_onSharedFolderChange(BOOL aGlobal); -
trunk/src/VBox/Main/include/DrvAudioVideoRec.h
r75254 r75341 45 45 public: 46 46 47 int applyConfiguration(const settings:: CaptureSettings &Settings);47 int applyConfiguration(const settings::RecordSettings &Settings); 48 48 49 49 public: … … 61 61 struct DRVAUDIOVIDEOREC *mpDrv; 62 62 /** Capturing configuration used for configuring the driver. */ 63 struct settings:: CaptureSettings mVideoRecCfg;63 struct settings::RecordSettings mVideoRecCfg; 64 64 }; 65 65 -
trunk/src/VBox/Main/include/MachineImpl.h
r75324 r75341 32 32 #include "ParallelPortImpl.h" 33 33 #include "BIOSSettingsImpl.h" 34 #include " CaptureSettingsImpl.h"34 #include "RecordSettingsImpl.h" 35 35 #include "StorageControllerImpl.h" // required for MachineImpl.h to compile on Windows 36 36 #include "USBControllerImpl.h" // required for MachineImpl.h to compile on Windows … … 266 266 GraphicsControllerType_T mGraphicsControllerType; 267 267 ULONG mVRAMSize; 268 settings:: CaptureSettings mCaptureSettings;268 settings::RecordSettings mRecordSettings; 269 269 ULONG mMonitorCount; 270 270 BOOL mHWVirtExEnabled; … … 477 477 IsModified_Snapshots = 0x0800, 478 478 IsModified_BandwidthControl = 0x1000, 479 IsModified_ Capture= 0x2000479 IsModified_Record = 0x2000 480 480 }; 481 481 … … 524 524 virtual HRESULT i_onStorageDeviceChange(IMediumAttachment * /* mediumAttachment */, BOOL /* remove */, 525 525 BOOL /* silent */) { return S_OK; } 526 virtual HRESULT i_on CaptureChange() { return S_OK; }526 virtual HRESULT i_onRecordChange() { return S_OK; } 527 527 528 528 HRESULT i_saveRegistryEntry(settings::MachineRegistryEntry &data); … … 777 777 const ComObjPtr<USBDeviceFilters> mUSBDeviceFilters; 778 778 const ComObjPtr<BIOSSettings> mBIOSSettings; 779 const ComObjPtr< CaptureSettings> mCaptureSettings;779 const ComObjPtr<RecordSettings> mRecordSettings; 780 780 const ComObjPtr<BandwidthControl> mBandwidthControl; 781 781 … … 825 825 826 826 friend class Appliance; 827 friend class CaptureSettings;828 friend class CaptureScreenSettings;827 friend class RecordSettings; 828 friend class RecordScreenSettings; 829 829 friend class SessionMachine; 830 830 friend class SnapshotMachine; … … 880 880 HRESULT setMonitorCount(ULONG aMonitorCount); 881 881 HRESULT getBIOSSettings(ComPtr<IBIOSSettings> &aBIOSSettings); 882 HRESULT get CaptureSettings(ComPtr<ICaptureSettings> &aCaptureSettings);882 HRESULT getRecordSettings(ComPtr<IRecordSettings> &aRecordSettings); 883 883 HRESULT getFirmwareType(FirmwareType_T *aFirmwareType); 884 884 HRESULT setFirmwareType(FirmwareType_T aFirmwareType); … … 1326 1326 HRESULT i_onCPUChange(ULONG aCPU, BOOL aRemove); 1327 1327 HRESULT i_onVRDEServerChange(BOOL aRestart); 1328 HRESULT i_on CaptureChange();1328 HRESULT i_onRecordChange(); 1329 1329 HRESULT i_onUSBControllerChange(); 1330 1330 HRESULT i_onUSBDeviceAttach(IUSBDevice *aDevice, -
trunk/src/VBox/Main/include/RecordScreenSettingsImpl.h
r75340 r75341 18 18 */ 19 19 20 #ifndef ____H_ CAPTURESCREENSETTINGS21 #define ____H_ CAPTURESCREENSETTINGS20 #ifndef ____H_RecordScreenSettings 21 #define ____H_RecordScreenSettings 22 22 23 #include " CaptureScreenSettingsWrap.h"23 #include "RecordScreenSettingsWrap.h" 24 24 25 class CaptureSettings;25 class RecordSettings; 26 26 27 27 namespace settings 28 28 { 29 struct CaptureScreenSettings;29 struct RecordScreenSettings; 30 30 } 31 31 32 class ATL_NO_VTABLE CaptureScreenSettings :33 public CaptureScreenSettingsWrap32 class ATL_NO_VTABLE RecordScreenSettings : 33 public RecordScreenSettingsWrap 34 34 { 35 35 public: 36 36 37 DECLARE_EMPTY_CTOR_DTOR( CaptureScreenSettings)37 DECLARE_EMPTY_CTOR_DTOR(RecordScreenSettings) 38 38 39 39 HRESULT FinalConstruct(); … … 41 41 42 42 // public initializer/uninitializer for internal purposes only 43 HRESULT init( CaptureSettings *aParent, uint32_t uScreenId, const settings::CaptureScreenSettings& data);44 HRESULT init( CaptureSettings *aParent, CaptureScreenSettings *that);45 HRESULT initCopy( CaptureSettings *aParent, CaptureScreenSettings *that);43 HRESULT init(RecordSettings *aParent, uint32_t uScreenId, const settings::RecordScreenSettings& data); 44 HRESULT init(RecordSettings *aParent, RecordScreenSettings *that); 45 HRESULT initCopy(RecordSettings *aParent, RecordScreenSettings *that); 46 46 void uninit(); 47 47 48 48 // public methods only for internal purposes 49 HRESULT i_loadSettings(const settings:: CaptureScreenSettings &data);50 HRESULT i_saveSettings(settings:: CaptureScreenSettings &data);49 HRESULT i_loadSettings(const settings::RecordScreenSettings &data); 50 HRESULT i_saveSettings(settings::RecordScreenSettings &data); 51 51 52 52 void i_rollback(); 53 53 void i_commit(); 54 void i_copyFrom( CaptureScreenSettings *aThat);54 void i_copyFrom(RecordScreenSettings *aThat); 55 55 void i_applyDefaults(); 56 56 57 57 private: 58 58 59 // wrapped I CaptureScreenSettings methods60 HRESULT isFeatureEnabled( CaptureFeature_T aFeature, BOOL *aEnabled);59 // wrapped IRecordScreenSettings methods 60 HRESULT isFeatureEnabled(RecordFeature_T aFeature, BOOL *aEnabled); 61 61 62 // wrapped I CaptureScreenSettings properties62 // wrapped IRecordScreenSettings properties 63 63 HRESULT getId(ULONG *id); 64 64 HRESULT getEnabled(BOOL *enabled); … … 66 66 HRESULT getFeatures(ULONG *aFeatures); 67 67 HRESULT setFeatures(ULONG aFeatures); 68 HRESULT getDestination( CaptureDestination_T *aDestination);69 HRESULT setDestination( CaptureDestination_T aDestination);68 HRESULT getDestination(RecordDestination_T *aDestination); 69 HRESULT setDestination(RecordDestination_T aDestination); 70 70 71 71 HRESULT getFileName(com::Utf8Str &aFileName); … … 78 78 HRESULT setOptions(const com::Utf8Str &aOptions); 79 79 80 HRESULT getAudioCodec( CaptureAudioCodec_T *aCodec);81 HRESULT setAudioCodec( CaptureAudioCodec_T aCodec);80 HRESULT getAudioCodec(RecordAudioCodec_T *aCodec); 81 HRESULT setAudioCodec(RecordAudioCodec_T aCodec); 82 82 HRESULT getAudioHz(ULONG *aHz); 83 83 HRESULT setAudioHz(ULONG aHz); … … 87 87 HRESULT setAudioChannels(ULONG aChannels); 88 88 89 HRESULT getVideoCodec( CaptureVideoCodec_T *aCodec);90 HRESULT setVideoCodec( CaptureVideoCodec_T aCodec);89 HRESULT getVideoCodec(RecordVideoCodec_T *aCodec); 90 HRESULT setVideoCodec(RecordVideoCodec_T aCodec); 91 91 HRESULT getVideoWidth(ULONG *aVideoWidth); 92 92 HRESULT setVideoWidth(ULONG aVideoWidth); … … 95 95 HRESULT getVideoRate(ULONG *aVideoRate); 96 96 HRESULT setVideoRate(ULONG aVideoRate); 97 HRESULT getVideoRateControlMode( CaptureVideoRateControlMode_T *aMode);98 HRESULT setVideoRateControlMode( CaptureVideoRateControlMode_T aMode);97 HRESULT getVideoRateControlMode(RecordVideoRateControlMode_T *aMode); 98 HRESULT setVideoRateControlMode(RecordVideoRateControlMode_T aMode); 99 99 HRESULT getVideoFPS(ULONG *aVideoFPS); 100 100 HRESULT setVideoFPS(ULONG aVideoFPS); 101 HRESULT getVideoScalingMethod( CaptureVideoScalingMethod_T *aMode);102 HRESULT setVideoScalingMethod( CaptureVideoScalingMethod_T aMode);101 HRESULT getVideoScalingMethod(RecordVideoScalingMethod_T *aMode); 102 HRESULT setVideoScalingMethod(RecordVideoScalingMethod_T aMode); 103 103 104 104 private: … … 113 113 }; 114 114 115 #endif // ____H_ CAPTURESCREENSETTINGS115 #endif // ____H_RecordScreenSettings 116 116 -
trunk/src/VBox/Main/include/RecordSettingsImpl.h
r75340 r75341 18 18 */ 19 19 20 #ifndef ____H_ CAPTURESETTINGS21 #define ____H_ CAPTURESETTINGS20 #ifndef ____H_RecordSettings 21 #define ____H_RecordSettings 22 22 23 #include " CaptureSettingsWrap.h"23 #include "RecordSettingsWrap.h" 24 24 25 25 namespace settings 26 26 { 27 struct CaptureSettings;28 struct CaptureScreenSettings;27 struct RecordSettings; 28 struct RecordScreenSettings; 29 29 } 30 30 31 class CaptureScreenSettings;31 class RecordScreenSettings; 32 32 33 class ATL_NO_VTABLE CaptureSettings :34 public CaptureSettingsWrap33 class ATL_NO_VTABLE RecordSettings : 34 public RecordSettingsWrap 35 35 { 36 36 public: 37 37 38 DECLARE_EMPTY_CTOR_DTOR( CaptureSettings)38 DECLARE_EMPTY_CTOR_DTOR(RecordSettings) 39 39 40 40 HRESULT FinalConstruct(); … … 43 43 // public initializer/uninitializer for internal purposes only 44 44 HRESULT init(Machine *parent); 45 HRESULT init(Machine *parent, CaptureSettings *that);46 HRESULT initCopy(Machine *parent, CaptureSettings *that);45 HRESULT init(Machine *parent, RecordSettings *that); 46 HRESULT initCopy(Machine *parent, RecordSettings *that); 47 47 void uninit(); 48 48 49 49 // public methods only for internal purposes 50 HRESULT i_loadSettings(const settings:: CaptureSettings &data);51 HRESULT i_saveSettings(settings:: CaptureSettings &data);50 HRESULT i_loadSettings(const settings::RecordSettings &data); 51 HRESULT i_saveSettings(settings::RecordSettings &data); 52 52 53 53 void i_rollback(); 54 54 void i_commit(); 55 void i_copyFrom( CaptureSettings *aThat);55 void i_copyFrom(RecordSettings *aThat); 56 56 void i_applyDefaults(void); 57 57 … … 63 63 64 64 /** Map of screen settings objects. The key specifies the screen ID. */ 65 typedef std::map <uint32_t, ComObjPtr< CaptureScreenSettings> > CaptureScreenSettingsMap;65 typedef std::map <uint32_t, ComObjPtr<RecordScreenSettings> > RecordScreenSettingsMap; 66 66 67 67 void i_reset(void); 68 68 int i_syncToMachineDisplays(void); 69 int i_createScreenObj( CaptureScreenSettingsMap &screenSettingsMap, uint32_t uScreenId, const settings::CaptureScreenSettings &data);70 int i_destroyScreenObj( CaptureScreenSettingsMap &screenSettingsMap, uint32_t uScreenId);71 int i_destroyAllScreenObj( CaptureScreenSettingsMap &screenSettingsMap);69 int i_createScreenObj(RecordScreenSettingsMap &screenSettingsMap, uint32_t uScreenId, const settings::RecordScreenSettings &data); 70 int i_destroyScreenObj(RecordScreenSettingsMap &screenSettingsMap, uint32_t uScreenId); 71 int i_destroyAllScreenObj(RecordScreenSettingsMap &screenSettingsMap); 72 72 73 73 private: 74 74 75 // wrapped I CaptureSettings properties75 // wrapped IRecordSettings properties 76 76 HRESULT getEnabled(BOOL *enabled); 77 77 HRESULT setEnabled(BOOL enable); 78 HRESULT getScreens(std::vector<ComPtr<I CaptureScreenSettings> > &aCaptureScreenSettings);78 HRESULT getScreens(std::vector<ComPtr<IRecordScreenSettings> > &aRecordScreenSettings); 79 79 80 // wrapped I CaptureSettings methods81 HRESULT getScreenSettings(ULONG uScreenId, ComPtr<I CaptureScreenSettings> &aCaptureScreenSettings);80 // wrapped IRecordSettings methods 81 HRESULT getScreenSettings(ULONG uScreenId, ComPtr<IRecordScreenSettings> &aRecordScreenSettings); 82 82 83 83 private: … … 86 86 Data *m; 87 87 }; 88 #endif // ____H_ CAPTURESETTINGS88 #endif // ____H_RecordSettings 89 89 -
trunk/src/VBox/Main/include/SessionImpl.h
r75251 r75341 102 102 HRESULT onCPUExecutionCapChange(ULONG aExecutionCap); 103 103 HRESULT onVRDEServerChange(BOOL aRestart); 104 HRESULT on CaptureChange();104 HRESULT onRecordChange(); 105 105 HRESULT onUSBControllerChange(); 106 106 HRESULT onSharedFolderChange(BOOL aGlobal); -
trunk/src/VBox/Main/include/VideoRec.h
r75313 r75341 41 41 CaptureContext(Console *pConsole); 42 42 43 CaptureContext(Console *pConsole, const settings:: CaptureSettings &a_Settings);43 CaptureContext(Console *pConsole, const settings::RecordSettings &a_Settings); 44 44 45 45 virtual ~CaptureContext(void); … … 47 47 public: 48 48 49 const settings:: CaptureSettings &GetConfig(void) const;49 const settings::RecordSettings &GetConfig(void) const; 50 50 CaptureStream *GetStream(unsigned uScreen) const; 51 51 size_t GetStreamCount(void) const; 52 52 53 int Create(const settings:: CaptureSettings &a_Settings);53 int Create(const settings::RecordSettings &a_Settings); 54 54 int Destroy(void); 55 55 … … 64 64 public: 65 65 66 bool IsFeatureEnabled( CaptureFeature_T enmFeature) const;66 bool IsFeatureEnabled(RecordFeature_T enmFeature) const; 67 67 bool IsReady(void) const; 68 68 bool IsReady(uint32_t uScreen, uint64_t uTimeStampMs) const; … … 72 72 protected: 73 73 74 int createInternal(const settings:: CaptureSettings &a_Settings);74 int createInternal(const settings::RecordSettings &a_Settings); 75 75 int startInternal(void); 76 76 int stopInternal(void); … … 104 104 Console *pConsole; 105 105 /** Used recording configuration. */ 106 settings:: CaptureSettings Settings;106 settings::RecordSettings Settings; 107 107 /** The current state. */ 108 108 VIDEORECSTS enmState; -
trunk/src/VBox/Main/include/VideoRecStream.h
r75313 r75341 111 111 CaptureStream(CaptureContext *pCtx); 112 112 113 CaptureStream(CaptureContext *pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings);113 CaptureStream(CaptureContext *pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings); 114 114 115 115 virtual ~CaptureStream(void); … … 117 117 public: 118 118 119 int Init(CaptureContext *pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings);119 int Init(CaptureContext *pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings); 120 120 int Uninit(void); 121 121 … … 124 124 uint32_t uSrcWidth, uint32_t uSrcHeight, uint8_t *puSrcData, uint64_t uTimeStampMs); 125 125 126 const settings:: CaptureScreenSettings &GetConfig(void) const;126 const settings::RecordScreenSettings &GetConfig(void) const; 127 127 bool IsLimitReached(uint64_t tsNowMs) const; 128 128 bool IsReady(void) const; … … 130 130 protected: 131 131 132 int open(const settings:: CaptureScreenSettings &Settings);132 int open(const settings::RecordScreenSettings &Settings); 133 133 int close(void); 134 134 135 int initInternal(CaptureContext *pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings);135 int initInternal(CaptureContext *pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings); 136 136 int uninitInternal(void); 137 137 … … 205 205 } Video; 206 206 207 settings:: CaptureScreenSettings ScreenSettings;207 settings::RecordScreenSettings ScreenSettings; 208 208 /** Common set of video recording (data) blocks, needed for 209 209 * multiplexing to all recording streams. */ -
trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
r75313 r75341 5632 5632 # ifdef VBOX_WITH_AUDIO_VIDEOREC 5633 5633 /* Attach the video recording audio driver if required. */ 5634 if ( Capture.mpVideoRecCtx->IsFeatureEnabled( CaptureFeature_Audio)5634 if ( Capture.mpVideoRecCtx->IsFeatureEnabled(RecordFeature_Audio) 5635 5635 && Capture.mAudioVideoRec) 5636 5636 { … … 5667 5667 #endif /* VBOX_WITH_VIDEOREC */ 5668 5668 5669 HRESULT Console::i_on CaptureChange()5669 HRESULT Console::i_onRecordChange() 5670 5670 { 5671 5671 AutoCaller autoCaller(this); … … 5680 5680 if (ptrVM.isOk()) 5681 5681 { 5682 ComPtr<I CaptureSettings> CaptureSettings;5683 rc = mMachine->COMGETTER( CaptureSettings)(CaptureSettings.asOutParam());5682 ComPtr<IRecordSettings> RecordSettings; 5683 rc = mMachine->COMGETTER(RecordSettings)(RecordSettings.asOutParam()); 5684 5684 AssertComRCReturnRC(rc); 5685 5685 5686 5686 BOOL fEnabled; 5687 rc = CaptureSettings->COMGETTER(Enabled)(&fEnabled);5687 rc = RecordSettings->COMGETTER(Enabled)(&fEnabled); 5688 5688 AssertComRCReturnRC(rc); 5689 5689 … … 5692 5692 { 5693 5693 alock.release(); 5694 fire CaptureChangedEvent(mEventSource);5694 fireRecordChangedEvent(mEventSource); 5695 5695 } 5696 5696 … … 6882 6882 6883 6883 if ( Capture.mpVideoRecCtx->IsStarted() 6884 && Capture.mpVideoRecCtx->IsFeatureEnabled( CaptureFeature_Audio))6884 && Capture.mpVideoRecCtx->IsFeatureEnabled(RecordFeature_Audio)) 6885 6885 { 6886 6886 return Capture.mpVideoRecCtx->SendAudioFrame(pvData, cbData, uTimestampMs); … … 6892 6892 6893 6893 #ifdef VBOX_WITH_VIDEOREC 6894 int Console::i_videoRecGetSettings(settings:: CaptureSettings &Settings)6894 int Console::i_videoRecGetSettings(settings::RecordSettings &Settings) 6895 6895 { 6896 6896 Assert(mMachine.isNotNull()); … … 6898 6898 Settings.applyDefaults(); 6899 6899 6900 ComPtr<I CaptureSettings> pCaptureSettings;6901 HRESULT hrc = mMachine->COMGETTER( CaptureSettings)(pCaptureSettings.asOutParam());6900 ComPtr<IRecordSettings> pRecordSettings; 6901 HRESULT hrc = mMachine->COMGETTER(RecordSettings)(pRecordSettings.asOutParam()); 6902 6902 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6903 6903 6904 6904 BOOL fTemp; 6905 hrc = p CaptureSettings->COMGETTER(Enabled)(&fTemp);6905 hrc = pRecordSettings->COMGETTER(Enabled)(&fTemp); 6906 6906 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6907 6907 Settings.fEnabled = RT_BOOL(fTemp); 6908 6908 6909 SafeIfaceArray<I CaptureScreenSettings> paCaptureScreens;6910 hrc = p CaptureSettings->COMGETTER(Screens)(ComSafeArrayAsOutParam(paCaptureScreens));6909 SafeIfaceArray<IRecordScreenSettings> paCaptureScreens; 6910 hrc = pRecordSettings->COMGETTER(Screens)(ComSafeArrayAsOutParam(paCaptureScreens)); 6911 6911 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6912 6912 6913 6913 for (unsigned long i = 0; i < (unsigned long)paCaptureScreens.size(); ++i) 6914 6914 { 6915 settings:: CaptureScreenSettings CaptureScreenSettings;6916 ComPtr<I CaptureScreenSettings> pCaptureScreenSettings = paCaptureScreens[i];6917 6918 hrc = p CaptureScreenSettings->COMGETTER(Enabled)(&fTemp);6915 settings::RecordScreenSettings RecordScreenSettings; 6916 ComPtr<IRecordScreenSettings> pRecordScreenSettings = paCaptureScreens[i]; 6917 6918 hrc = pRecordScreenSettings->COMGETTER(Enabled)(&fTemp); 6919 6919 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6920 CaptureScreenSettings.fEnabled = RT_BOOL(fTemp);6921 hrc = p CaptureScreenSettings->COMGETTER(MaxTime)((ULONG *)&CaptureScreenSettings.ulMaxTimeS);6920 RecordScreenSettings.fEnabled = RT_BOOL(fTemp); 6921 hrc = pRecordScreenSettings->COMGETTER(MaxTime)((ULONG *)&RecordScreenSettings.ulMaxTimeS); 6922 6922 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6923 hrc = p CaptureScreenSettings->COMGETTER(MaxFileSize)((ULONG *)&CaptureScreenSettings.File.ulMaxSizeMB);6923 hrc = pRecordScreenSettings->COMGETTER(MaxFileSize)((ULONG *)&RecordScreenSettings.File.ulMaxSizeMB); 6924 6924 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6925 6925 Bstr bstrTemp; 6926 hrc = p CaptureScreenSettings->COMGETTER(FileName)(bstrTemp.asOutParam());6926 hrc = pRecordScreenSettings->COMGETTER(FileName)(bstrTemp.asOutParam()); 6927 6927 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6928 CaptureScreenSettings.File.strName = bstrTemp;6929 hrc = p CaptureScreenSettings->COMGETTER(Options)(bstrTemp.asOutParam());6928 RecordScreenSettings.File.strName = bstrTemp; 6929 hrc = pRecordScreenSettings->COMGETTER(Options)(bstrTemp.asOutParam()); 6930 6930 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6931 CaptureScreenSettings.strOptions = bstrTemp;6932 hrc = p CaptureScreenSettings->COMGETTER(VideoWidth)((ULONG *)&CaptureScreenSettings.Video.ulWidth);6931 RecordScreenSettings.strOptions = bstrTemp; 6932 hrc = pRecordScreenSettings->COMGETTER(VideoWidth)((ULONG *)&RecordScreenSettings.Video.ulWidth); 6933 6933 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6934 hrc = p CaptureScreenSettings->COMGETTER(VideoHeight)((ULONG *)&CaptureScreenSettings.Video.ulHeight);6934 hrc = pRecordScreenSettings->COMGETTER(VideoHeight)((ULONG *)&RecordScreenSettings.Video.ulHeight); 6935 6935 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6936 hrc = p CaptureScreenSettings->COMGETTER(VideoRate)((ULONG *)&CaptureScreenSettings.Video.ulRate);6936 hrc = pRecordScreenSettings->COMGETTER(VideoRate)((ULONG *)&RecordScreenSettings.Video.ulRate); 6937 6937 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6938 hrc = p CaptureScreenSettings->COMGETTER(VideoFPS)((ULONG *)&CaptureScreenSettings.Video.ulFPS);6938 hrc = pRecordScreenSettings->COMGETTER(VideoFPS)((ULONG *)&RecordScreenSettings.Video.ulFPS); 6939 6939 AssertComRCReturn(hrc, VERR_INVALID_PARAMETER); 6940 6940 6941 Settings.mapScreens[i] = CaptureScreenSettings;6941 Settings.mapScreens[i] = RecordScreenSettings; 6942 6942 } 6943 6943 … … 6971 6971 } 6972 6972 6973 settings:: CaptureSettings Settings;6973 settings::RecordSettings Settings; 6974 6974 rc = i_videoRecGetSettings(Settings); 6975 6975 if (RT_SUCCESS(rc)) … … 7043 7043 mDisplay->i_videoRecScreenChanged(uScreen); 7044 7044 7045 ComPtr<I CaptureSettings> pCaptureSettings;7046 HRESULT hrc = mMachine->COMGETTER( CaptureSettings)(pCaptureSettings.asOutParam());7045 ComPtr<IRecordSettings> pRecordSettings; 7046 HRESULT hrc = mMachine->COMGETTER(RecordSettings)(pRecordSettings.asOutParam()); 7047 7047 ComAssertComRC(hrc); 7048 hrc = p CaptureSettings->COMSETTER(Enabled)(false);7048 hrc = pRecordSettings->COMSETTER(Enabled)(false); 7049 7049 ComAssertComRC(hrc); 7050 7050 … … 10146 10146 10147 10147 #ifdef VBOX_WITH_VIDEOREC 10148 ComPtr<I CaptureSettings> CaptureSettings;10149 rc = pConsole->mMachine->COMGETTER( CaptureSettings)(CaptureSettings.asOutParam());10148 ComPtr<IRecordSettings> RecordSettings; 10149 rc = pConsole->mMachine->COMGETTER(RecordSettings)(RecordSettings.asOutParam()); 10150 10150 AssertComRCReturnVoid(rc); 10151 10151 10152 10152 BOOL fCaptureEnabled; 10153 rc = CaptureSettings->COMGETTER(Enabled)(&fCaptureEnabled);10153 rc = RecordSettings->COMGETTER(Enabled)(&fCaptureEnabled); 10154 10154 AssertComRCReturnVoid(rc); 10155 10155 … … 10159 10159 if (RT_SUCCESS(vrc2)) 10160 10160 { 10161 fire CaptureChangedEvent(pConsole->mEventSource);10161 fireRecordChangedEvent(pConsole->mEventSource); 10162 10162 } 10163 10163 else -
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r75251 r75341 3393 3393 if ( pCtx 3394 3394 && pCtx->IsStarted() 3395 && pCtx->IsFeatureEnabled( CaptureFeature_Video))3395 && pCtx->IsFeatureEnabled(RecordFeature_Video)) 3396 3396 { 3397 3397 do { … … 3859 3859 if ( pCtx 3860 3860 && pCtx->IsStarted() 3861 && pCtx->IsFeatureEnabled( CaptureFeature_Video))3861 && pCtx->IsFeatureEnabled(RecordFeature_Video)) 3862 3862 { 3863 3863 int rc2 = pCtx->SendVideoFrame(uScreen, x, y, -
trunk/src/VBox/Main/src-client/DrvAudioVideoRec.cpp
r75254 r75341 1088 1088 * @param Settings Capturing configuration to apply. 1089 1089 */ 1090 int AudioVideoRec::applyConfiguration(const settings:: CaptureSettings &Settings)1090 int AudioVideoRec::applyConfiguration(const settings::RecordSettings &Settings) 1091 1091 { 1092 1092 /** @todo Do some validation here. */ … … 1108 1108 /** @todo For now we're using the configuration of the first screen here audio-wise. */ 1109 1109 Assert(mVideoRecCfg.mapScreens.size() >= 1); 1110 const settings:: CaptureScreenSettings &Screen0Settings = mVideoRecCfg.mapScreens[0];1110 const settings::RecordScreenSettings &Screen0Settings = mVideoRecCfg.mapScreens[0]; 1111 1111 1112 1112 rc = CFGMR3InsertInteger(pLunCfg, "ContainerType", (uint64_t)Screen0Settings.enmDest); 1113 1113 AssertRCReturn(rc, rc); 1114 if (Screen0Settings.enmDest == CaptureDestination_File)1114 if (Screen0Settings.enmDest == RecordDestination_File) 1115 1115 { 1116 1116 rc = CFGMR3InsertString(pLunCfg, "ContainerFileName", Utf8Str(Screen0Settings.File.strName).c_str()); -
trunk/src/VBox/Main/src-client/SessionImpl.cpp
r75251 r75341 725 725 } 726 726 727 HRESULT Session::on CaptureChange()728 { 729 LogFlowThisFunc(("\n")); 730 731 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 732 AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE); 733 AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE); 734 #ifndef VBOX_COM_INPROC_API_CLIENT 735 AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE); 736 737 return mConsole->i_on CaptureChange();727 HRESULT Session::onRecordChange() 728 { 729 LogFlowThisFunc(("\n")); 730 731 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 732 AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE); 733 AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE); 734 #ifndef VBOX_COM_INPROC_API_CLIENT 735 AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE); 736 737 return mConsole->i_onRecordChange(); 738 738 #else 739 739 return S_OK; -
trunk/src/VBox/Main/src-client/VideoRec.cpp
r75313 r75341 94 94 , enmState(VIDEORECSTS_UNINITIALIZED) { } 95 95 96 CaptureContext::CaptureContext(Console *a_pConsole, const settings:: CaptureSettings &a_Settings)96 CaptureContext::CaptureContext(Console *a_pConsole, const settings::RecordSettings &a_Settings) 97 97 : pConsole(a_pConsole) 98 98 , enmState(VIDEORECSTS_UNINITIALIZED) … … 177 177 * @param a_Settings Capture settings to use for context creation. 178 178 */ 179 int CaptureContext::createInternal(const settings:: CaptureSettings &a_Settings)179 int CaptureContext::createInternal(const settings::RecordSettings &a_Settings) 180 180 { 181 181 int rc = RTCritSectInit(&this->CritSect); … … 183 183 return rc; 184 184 185 settings:: CaptureScreenMap::const_iterator itScreen = a_Settings.mapScreens.begin();185 settings::RecordScreenMap::const_iterator itScreen = a_Settings.mapScreens.begin(); 186 186 while (itScreen != a_Settings.mapScreens.end()) 187 187 { … … 318 318 } 319 319 320 const settings:: CaptureSettings &CaptureContext::GetConfig(void) const320 const settings::RecordSettings &CaptureContext::GetConfig(void) const 321 321 { 322 322 return this->Settings; … … 355 355 } 356 356 357 int CaptureContext::Create(const settings:: CaptureSettings &a_Settings)357 int CaptureContext::Create(const settings::RecordSettings &a_Settings) 358 358 { 359 359 return createInternal(a_Settings); … … 375 375 } 376 376 377 bool CaptureContext::IsFeatureEnabled( CaptureFeature_T enmFeature) const377 bool CaptureContext::IsFeatureEnabled(RecordFeature_T enmFeature) const 378 378 { 379 379 VideoRecStreams::const_iterator itStream = this->vecStreams.begin(); -
trunk/src/VBox/Main/src-client/VideoRecStream.cpp
r75313 r75341 51 51 } 52 52 53 CaptureStream::CaptureStream(CaptureContext *a_pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings)53 CaptureStream::CaptureStream(CaptureContext *a_pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings) 54 54 : enmState(RECORDINGSTREAMSTATE_UNINITIALIZED) 55 55 , tsStartMs(0) … … 74 74 * @returns IPRT status code. 75 75 */ 76 int CaptureStream::open(const settings:: CaptureScreenSettings &Settings)76 int CaptureStream::open(const settings::RecordScreenSettings &Settings) 77 77 { 78 78 /* Sanity. */ 79 Assert(Settings.enmDest != CaptureDestination_None);79 Assert(Settings.enmDest != RecordDestination_None); 80 80 81 81 int rc; … … 83 83 switch (Settings.enmDest) 84 84 { 85 case CaptureDestination_File:85 case RecordDestination_File: 86 86 { 87 87 Assert(Settings.File.strName.isNotEmpty()); … … 209 209 if (value.compare("false", Utf8Str::CaseInsensitive) == 0) 210 210 { 211 this->ScreenSettings.featureMap[ CaptureFeature_Video] = false;211 this->ScreenSettings.featureMap[RecordFeature_Video] = false; 212 212 #ifdef VBOX_WITH_AUDIO_VIDEOREC 213 213 LogRel(("VideoRec: Only audio will be recorded\n")); … … 220 220 if (value.compare("true", Utf8Str::CaseInsensitive) == 0) 221 221 { 222 this->ScreenSettings.featureMap[ CaptureFeature_Audio] = true;222 this->ScreenSettings.featureMap[RecordFeature_Audio] = true; 223 223 } 224 224 else … … 255 255 } 256 256 257 const settings:: CaptureScreenSettings &CaptureStream::GetConfig(void) const257 const settings::RecordScreenSettings &CaptureStream::GetConfig(void) const 258 258 { 259 259 return this->ScreenSettings; … … 277 277 } 278 278 279 if (this->ScreenSettings.enmDest == CaptureDestination_File)279 if (this->ScreenSettings.enmDest == RecordDestination_File) 280 280 { 281 281 … … 661 661 * @param Settings Capturing configuration to use for initialization. 662 662 */ 663 int CaptureStream::Init(CaptureContext *a_pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings)663 int CaptureStream::Init(CaptureContext *a_pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings) 664 664 { 665 665 return initInternal(a_pCtx, uScreen, Settings); … … 674 674 * @param Settings Capturing configuration to use for initialization. 675 675 */ 676 int CaptureStream::initInternal(CaptureContext *a_pCtx, uint32_t uScreen, const settings:: CaptureScreenSettings &Settings)676 int CaptureStream::initInternal(CaptureContext *a_pCtx, uint32_t uScreen, const settings::RecordScreenSettings &Settings) 677 677 { 678 678 int rc = parseOptionsString(Settings.strOptions); … … 688 688 return rc; 689 689 690 const bool fVideoEnabled = Settings.isFeatureEnabled( CaptureFeature_Video);691 const bool fAudioEnabled = Settings.isFeatureEnabled( CaptureFeature_Audio);690 const bool fVideoEnabled = Settings.isFeatureEnabled(RecordFeature_Video); 691 const bool fAudioEnabled = Settings.isFeatureEnabled(RecordFeature_Audio); 692 692 693 693 if (fVideoEnabled) … … 699 699 switch (this->ScreenSettings.enmDest) 700 700 { 701 case CaptureDestination_File:701 case RecordDestination_File: 702 702 { 703 703 const char *pszFile = this->ScreenSettings.File.strName.c_str(); … … 706 706 rc = File.pWEBM->OpenEx(pszFile, &this->File.hFile, 707 707 #ifdef VBOX_WITH_AUDIO_VIDEOREC 708 Settings.isFeatureEnabled( CaptureFeature_Audio)708 Settings.isFeatureEnabled(RecordFeature_Audio) 709 709 ? WebMWriter::AudioCodec_Opus : WebMWriter::AudioCodec_None, 710 710 #else 711 711 WebMWriter::AudioCodec_None, 712 712 #endif 713 Settings.isFeatureEnabled( CaptureFeature_Video)713 Settings.isFeatureEnabled(RecordFeature_Video) 714 714 ? WebMWriter::VideoCodec_VP8 : WebMWriter::VideoCodec_None); 715 715 if (RT_FAILURE(rc)) … … 814 814 switch (this->ScreenSettings.enmDest) 815 815 { 816 case CaptureDestination_File:816 case RecordDestination_File: 817 817 { 818 818 if (this->File.pWEBM) … … 839 839 switch (this->ScreenSettings.enmDest) 840 840 { 841 case CaptureDestination_File:841 case RecordDestination_File: 842 842 { 843 843 if (RTFileIsValid(this->File.hFile)) … … 891 891 return rc; 892 892 893 if (this->ScreenSettings.isFeatureEnabled( CaptureFeature_Video))893 if (this->ScreenSettings.isFeatureEnabled(RecordFeature_Video)) 894 894 { 895 895 int rc2 = unitVideo(); … … 1025 1025 { 1026 1026 #ifdef VBOX_WITH_AUDIO_VIDEOREC 1027 if (this->ScreenSettings.isFeatureEnabled( CaptureFeature_Audio))1027 if (this->ScreenSettings.isFeatureEnabled(RecordFeature_Audio)) 1028 1028 { 1029 1029 /* Sanity. */ -
trunk/src/VBox/Main/src-server/MachineImpl.cpp
r75251 r75341 358 358 mBIOSSettings->i_applyDefaults(aOsType); 359 359 360 /* Apply capturedefaults. */361 m CaptureSettings->i_applyDefaults();360 /* Apply record defaults. */ 361 mRecordSettings->i_applyDefaults(); 362 362 363 363 /* Apply network adapters defaults */ … … 1940 1940 } 1941 1941 1942 HRESULT Machine::get CaptureSettings(ComPtr<ICaptureSettings> &aCaptureSettings)1943 { 1944 /* m CaptureSettings is constant during life time, no need to lock */1945 a CaptureSettings = mCaptureSettings;1942 HRESULT Machine::getRecordSettings(ComPtr<IRecordSettings> &aRecordSettings) 1943 { 1944 /* mRecordSettings is constant during life time, no need to lock */ 1945 aRecordSettings = mRecordSettings; 1946 1946 1947 1947 return S_OK; … … 8259 8259 mBIOSSettings->init(this); 8260 8260 8261 /* create associated capturesettings object */8262 unconst(m CaptureSettings).createObject();8263 m CaptureSettings->init(this);8261 /* create associated record settings object */ 8262 unconst(mRecordSettings).createObject(); 8263 mRecordSettings->init(this); 8264 8264 8265 8265 /* create an associated VRDE object (default is disabled) */ … … 8378 8378 } 8379 8379 8380 if (m CaptureSettings)8381 { 8382 m CaptureSettings->uninit();8383 unconst(m CaptureSettings).setNull();8380 if (mRecordSettings) 8381 { 8382 mRecordSettings->uninit(); 8383 unconst(mRecordSettings).setNull(); 8384 8384 } 8385 8385 … … 8898 8898 if (FAILED(rc)) return rc; 8899 8899 8900 /* Capturesettings */8901 rc = m CaptureSettings->i_loadSettings(data.captureSettings);8900 /* Record settings */ 8901 rc = mRecordSettings->i_loadSettings(data.recordSettings); 8902 8902 if (FAILED(rc)) return rc; 8903 8903 … … 10217 10217 if (FAILED(rc)) throw rc; 10218 10218 10219 /* Capturesettings (required) */10220 rc = m CaptureSettings->i_saveSettings(data.captureSettings);10219 /* Record settings (required) */ 10220 rc = mRecordSettings->i_saveSettings(data.recordSettings); 10221 10221 if (FAILED(rc)) throw rc; 10222 10222 … … 11723 11723 mBIOSSettings->i_rollback(); 11724 11724 11725 if (m CaptureSettings && (mData->flModifications & IsModified_Capture))11726 m CaptureSettings->i_rollback();11725 if (mRecordSettings && (mData->flModifications & IsModified_Record)) 11726 mRecordSettings->i_rollback(); 11727 11727 11728 11728 if (mVRDEServer && (mData->flModifications & IsModified_VRDEServer)) … … 11836 11836 11837 11837 mBIOSSettings->i_commit(); 11838 m CaptureSettings->i_commit();11838 mRecordSettings->i_commit(); 11839 11839 mVRDEServer->i_commit(); 11840 11840 mAudioAdapter->i_commit(); … … 12089 12089 12090 12090 mBIOSSettings->i_copyFrom(aThat->mBIOSSettings); 12091 m CaptureSettings->i_copyFrom(aThat->mCaptureSettings);12091 mRecordSettings->i_copyFrom(aThat->mRecordSettings); 12092 12092 mVRDEServer->i_copyFrom(aThat->mVRDEServer); 12093 12093 mAudioAdapter->i_copyFrom(aThat->mAudioAdapter); … … 12463 12463 unconst(mBIOSSettings).createObject(); 12464 12464 mBIOSSettings->init(this, aMachine->mBIOSSettings); 12465 unconst(m CaptureSettings).createObject();12466 m CaptureSettings->init(this, aMachine->mCaptureSettings);12465 unconst(mRecordSettings).createObject(); 12466 mRecordSettings->init(this, aMachine->mRecordSettings); 12467 12467 /* create another VRDEServer object that will be mutable */ 12468 12468 unconst(mVRDEServer).createObject(); … … 14098 14098 * @note Locks this object for reading. 14099 14099 */ 14100 HRESULT SessionMachine::i_on CaptureChange()14100 HRESULT SessionMachine::i_onRecordChange() 14101 14101 { 14102 14102 LogFlowThisFunc(("\n")); … … 14116 14116 return S_OK; 14117 14117 14118 return directControl->On CaptureChange();14118 return directControl->OnRecordChange(); 14119 14119 } 14120 14120 … … 15050 15050 mBIOSSettings->i_applyDefaults(osType); 15051 15051 15052 /* Initialize default capturesettings. */15053 m CaptureSettings->i_applyDefaults();15052 /* Initialize default record settings. */ 15053 mRecordSettings->i_applyDefaults(); 15054 15054 15055 15055 /* Initialize default BIOS settings here */ -
trunk/src/VBox/Main/src-server/RecordScreenSettingsImpl.cpp
r75340 r75341 17 17 */ 18 18 19 #define LOG_GROUP LOG_GROUP_MAIN_ CAPTURESCREENSETTINGS19 #define LOG_GROUP LOG_GROUP_MAIN_RECORDSCREENSETTINGS 20 20 #include "LoggingNew.h" 21 21 22 #include " CaptureScreenSettingsImpl.h"23 #include " CaptureSettingsImpl.h"22 #include "RecordScreenSettingsImpl.h" 23 #include "RecordSettingsImpl.h" 24 24 #include "MachineImpl.h" 25 25 … … 34 34 //////////////////////////////////////////////////////////////////////////////// 35 35 // 36 // CaptureScreenSettings private data definition36 // RecordScreenSettings private data definition 37 37 // 38 38 //////////////////////////////////////////////////////////////////////////////// 39 39 40 struct CaptureScreenSettings::Data40 struct RecordScreenSettings::Data 41 41 { 42 42 Data() … … 44 44 { } 45 45 46 CaptureSettings * const pParent;47 ComObjPtr< CaptureScreenSettings> pPeer;46 RecordSettings * const pParent; 47 ComObjPtr<RecordScreenSettings> pPeer; 48 48 uint32_t uScreenId; 49 49 50 50 // use the XML settings structure in the members for simplicity 51 Backupable<settings:: CaptureScreenSettings> bd;51 Backupable<settings::RecordScreenSettings> bd; 52 52 }; 53 53 … … 55 55 ///////////////////////////////////////////////////////////////////////////// 56 56 57 DEFINE_EMPTY_CTOR_DTOR( CaptureScreenSettings)58 59 HRESULT CaptureScreenSettings::FinalConstruct()57 DEFINE_EMPTY_CTOR_DTOR(RecordScreenSettings) 58 59 HRESULT RecordScreenSettings::FinalConstruct() 60 60 { 61 61 return BaseFinalConstruct(); 62 62 } 63 63 64 void CaptureScreenSettings::FinalRelease()64 void RecordScreenSettings::FinalRelease() 65 65 { 66 66 uninit(); … … 76 76 * @returns COM result indicator 77 77 */ 78 HRESULT CaptureScreenSettings::init(CaptureSettings *aParent, uint32_t uScreenId, const settings::CaptureScreenSettings& data)78 HRESULT RecordScreenSettings::init(RecordSettings *aParent, uint32_t uScreenId, const settings::RecordScreenSettings& data) 79 79 { 80 80 LogFlowThisFuncEnter(); … … 123 123 * it shares data with is destroyed. 124 124 */ 125 HRESULT CaptureScreenSettings::init(CaptureSettings *aParent, CaptureScreenSettings *that)125 HRESULT RecordScreenSettings::init(RecordSettings *aParent, RecordScreenSettings *that) 126 126 { 127 127 LogFlowThisFuncEnter(); … … 166 166 * of the original object passed as an argument. 167 167 */ 168 HRESULT CaptureScreenSettings::initCopy(CaptureSettings *aParent, CaptureScreenSettings *that)168 HRESULT RecordScreenSettings::initCopy(RecordSettings *aParent, RecordScreenSettings *that) 169 169 { 170 170 LogFlowThisFuncEnter(); … … 208 208 * Called either from FinalRelease() or by the parent when it gets destroyed. 209 209 */ 210 void CaptureScreenSettings::uninit()210 void RecordScreenSettings::uninit() 211 211 { 212 212 LogFlowThisFuncEnter(); … … 228 228 } 229 229 230 HRESULT CaptureScreenSettings::isFeatureEnabled(CaptureFeature_T aFeature, BOOL *aEnabled)231 { 232 AutoCaller autoCaller(this); 233 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 234 235 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 236 237 settings:: CaptureFeatureMap::const_iterator itFeature = m->bd->featureMap.find(aFeature);230 HRESULT RecordScreenSettings::isFeatureEnabled(RecordFeature_T aFeature, BOOL *aEnabled) 231 { 232 AutoCaller autoCaller(this); 233 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 234 235 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 236 237 settings::RecordFeatureMap::const_iterator itFeature = m->bd->featureMap.find(aFeature); 238 238 239 239 *aEnabled = ( itFeature != m->bd->featureMap.end() … … 243 243 } 244 244 245 HRESULT CaptureScreenSettings::getId(ULONG *id)245 HRESULT RecordScreenSettings::getId(ULONG *id) 246 246 { 247 247 AutoCaller autoCaller(this); … … 255 255 } 256 256 257 HRESULT CaptureScreenSettings::getEnabled(BOOL *enabled)257 HRESULT RecordScreenSettings::getEnabled(BOOL *enabled) 258 258 { 259 259 AutoCaller autoCaller(this); … … 267 267 } 268 268 269 HRESULT CaptureScreenSettings::setEnabled(BOOL enabled)269 HRESULT RecordScreenSettings::setEnabled(BOOL enabled) 270 270 { 271 271 AutoCaller autoCaller(this); … … 292 292 } 293 293 294 HRESULT CaptureScreenSettings::getFeatures(ULONG *aFeatures)294 HRESULT RecordScreenSettings::getFeatures(ULONG *aFeatures) 295 295 { 296 296 AutoCaller autoCaller(this); … … 301 301 *aFeatures = 0; 302 302 303 settings:: CaptureFeatureMap::const_iterator itFeature = m->bd->featureMap.begin();303 settings::RecordFeatureMap::const_iterator itFeature = m->bd->featureMap.begin(); 304 304 while (itFeature != m->bd->featureMap.end()) 305 305 { … … 313 313 } 314 314 315 HRESULT CaptureScreenSettings::setFeatures(ULONG aFeatures)315 HRESULT RecordScreenSettings::setFeatures(ULONG aFeatures) 316 316 { 317 317 AutoCaller autoCaller(this); … … 326 326 m->bd->featureMap.clear(); 327 327 328 if (aFeatures & CaptureFeature_Audio)329 m->bd->featureMap[ CaptureFeature_Audio] = true;330 if (aFeatures & CaptureFeature_Video)331 m->bd->featureMap[ CaptureFeature_Video] = true;328 if (aFeatures & RecordFeature_Audio) 329 m->bd->featureMap[RecordFeature_Audio] = true; 330 if (aFeatures & RecordFeature_Video) 331 m->bd->featureMap[RecordFeature_Video] = true; 332 332 333 333 alock.release(); … … 336 336 } 337 337 338 HRESULT CaptureScreenSettings::getDestination(CaptureDestination_T *aDestination)338 HRESULT RecordScreenSettings::getDestination(RecordDestination_T *aDestination) 339 339 { 340 340 AutoCaller autoCaller(this); … … 348 348 } 349 349 350 HRESULT CaptureScreenSettings::setDestination(CaptureDestination_T aDestination)350 HRESULT RecordScreenSettings::setDestination(RecordDestination_T aDestination) 351 351 { 352 352 AutoCaller autoCaller(this); … … 364 364 } 365 365 366 HRESULT CaptureScreenSettings::getFileName(com::Utf8Str &aFileName)366 HRESULT RecordScreenSettings::getFileName(com::Utf8Str &aFileName) 367 367 { 368 368 AutoCaller autoCaller(this); … … 376 376 } 377 377 378 HRESULT CaptureScreenSettings::setFileName(const com::Utf8Str &aFileName)378 HRESULT RecordScreenSettings::setFileName(const com::Utf8Str &aFileName) 379 379 { 380 380 AutoCaller autoCaller(this); … … 397 397 } 398 398 399 HRESULT CaptureScreenSettings::getMaxTime(ULONG *aMaxTimeS)399 HRESULT RecordScreenSettings::getMaxTime(ULONG *aMaxTimeS) 400 400 { 401 401 AutoCaller autoCaller(this); … … 409 409 } 410 410 411 HRESULT CaptureScreenSettings::setMaxTime(ULONG aMaxTimeS)411 HRESULT RecordScreenSettings::setMaxTime(ULONG aMaxTimeS) 412 412 { 413 413 AutoCaller autoCaller(this); … … 425 425 } 426 426 427 HRESULT CaptureScreenSettings::getMaxFileSize(ULONG *aMaxFileSizeMB)427 HRESULT RecordScreenSettings::getMaxFileSize(ULONG *aMaxFileSizeMB) 428 428 { 429 429 AutoCaller autoCaller(this); … … 437 437 } 438 438 439 HRESULT CaptureScreenSettings::setMaxFileSize(ULONG aMaxFileSize)439 HRESULT RecordScreenSettings::setMaxFileSize(ULONG aMaxFileSize) 440 440 { 441 441 AutoCaller autoCaller(this); … … 453 453 } 454 454 455 HRESULT CaptureScreenSettings::getOptions(com::Utf8Str &aOptions)455 HRESULT RecordScreenSettings::getOptions(com::Utf8Str &aOptions) 456 456 { 457 457 AutoCaller autoCaller(this); … … 465 465 } 466 466 467 HRESULT CaptureScreenSettings::setOptions(const com::Utf8Str &aOptions)467 HRESULT RecordScreenSettings::setOptions(const com::Utf8Str &aOptions) 468 468 { 469 469 AutoCaller autoCaller(this); … … 481 481 } 482 482 483 HRESULT CaptureScreenSettings::getAudioCodec(CaptureAudioCodec_T *aCodec)483 HRESULT RecordScreenSettings::getAudioCodec(RecordAudioCodec_T *aCodec) 484 484 { 485 485 AutoCaller autoCaller(this); … … 493 493 } 494 494 495 HRESULT CaptureScreenSettings::setAudioCodec(CaptureAudioCodec_T aCodec)495 HRESULT RecordScreenSettings::setAudioCodec(RecordAudioCodec_T aCodec) 496 496 { 497 497 AutoCaller autoCaller(this); … … 509 509 } 510 510 511 HRESULT CaptureScreenSettings::getAudioHz(ULONG *aHz)511 HRESULT RecordScreenSettings::getAudioHz(ULONG *aHz) 512 512 { 513 513 AutoCaller autoCaller(this); … … 521 521 } 522 522 523 HRESULT CaptureScreenSettings::setAudioHz(ULONG aHz)523 HRESULT RecordScreenSettings::setAudioHz(ULONG aHz) 524 524 { 525 525 AutoCaller autoCaller(this); … … 537 537 } 538 538 539 HRESULT CaptureScreenSettings::getAudioBits(ULONG *aBits)539 HRESULT RecordScreenSettings::getAudioBits(ULONG *aBits) 540 540 { 541 541 AutoCaller autoCaller(this); … … 549 549 } 550 550 551 HRESULT CaptureScreenSettings::setAudioBits(ULONG aBits)551 HRESULT RecordScreenSettings::setAudioBits(ULONG aBits) 552 552 { 553 553 AutoCaller autoCaller(this); … … 565 565 } 566 566 567 HRESULT CaptureScreenSettings::getAudioChannels(ULONG *aChannels)567 HRESULT RecordScreenSettings::getAudioChannels(ULONG *aChannels) 568 568 { 569 569 AutoCaller autoCaller(this); … … 577 577 } 578 578 579 HRESULT CaptureScreenSettings::setAudioChannels(ULONG aChannels)579 HRESULT RecordScreenSettings::setAudioChannels(ULONG aChannels) 580 580 { 581 581 AutoCaller autoCaller(this); … … 593 593 } 594 594 595 HRESULT CaptureScreenSettings::getVideoCodec(CaptureVideoCodec_T *aCodec)595 HRESULT RecordScreenSettings::getVideoCodec(RecordVideoCodec_T *aCodec) 596 596 { 597 597 AutoCaller autoCaller(this); … … 605 605 } 606 606 607 HRESULT CaptureScreenSettings::setVideoCodec(CaptureVideoCodec_T aCodec)607 HRESULT RecordScreenSettings::setVideoCodec(RecordVideoCodec_T aCodec) 608 608 { 609 609 AutoCaller autoCaller(this); … … 621 621 } 622 622 623 HRESULT CaptureScreenSettings::getVideoWidth(ULONG *aVideoWidth)623 HRESULT RecordScreenSettings::getVideoWidth(ULONG *aVideoWidth) 624 624 { 625 625 AutoCaller autoCaller(this); … … 633 633 } 634 634 635 HRESULT CaptureScreenSettings::setVideoWidth(ULONG aVideoWidth)635 HRESULT RecordScreenSettings::setVideoWidth(ULONG aVideoWidth) 636 636 { 637 637 AutoCaller autoCaller(this); … … 649 649 } 650 650 651 HRESULT CaptureScreenSettings::getVideoHeight(ULONG *aVideoHeight)651 HRESULT RecordScreenSettings::getVideoHeight(ULONG *aVideoHeight) 652 652 { 653 653 AutoCaller autoCaller(this); … … 661 661 } 662 662 663 HRESULT CaptureScreenSettings::setVideoHeight(ULONG aVideoHeight)663 HRESULT RecordScreenSettings::setVideoHeight(ULONG aVideoHeight) 664 664 { 665 665 AutoCaller autoCaller(this); … … 677 677 } 678 678 679 HRESULT CaptureScreenSettings::getVideoRate(ULONG *aVideoRate)679 HRESULT RecordScreenSettings::getVideoRate(ULONG *aVideoRate) 680 680 { 681 681 AutoCaller autoCaller(this); … … 689 689 } 690 690 691 HRESULT CaptureScreenSettings::setVideoRate(ULONG aVideoRate)691 HRESULT RecordScreenSettings::setVideoRate(ULONG aVideoRate) 692 692 { 693 693 AutoCaller autoCaller(this); … … 705 705 } 706 706 707 HRESULT CaptureScreenSettings::getVideoRateControlMode(CaptureVideoRateControlMode_T *aMode)708 { 709 AutoCaller autoCaller(this); 710 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 711 712 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 713 714 *aMode = CaptureVideoRateControlMode_CBR; /** @todo Implement VBR. */715 716 return S_OK; 717 } 718 719 HRESULT CaptureScreenSettings::setVideoRateControlMode(CaptureVideoRateControlMode_T aMode)707 HRESULT RecordScreenSettings::getVideoRateControlMode(RecordVideoRateControlMode_T *aMode) 708 { 709 AutoCaller autoCaller(this); 710 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 711 712 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 713 714 *aMode = RecordVideoRateControlMode_CBR; /** @todo Implement VBR. */ 715 716 return S_OK; 717 } 718 719 HRESULT RecordScreenSettings::setVideoRateControlMode(RecordVideoRateControlMode_T aMode) 720 720 { 721 721 AutoCaller autoCaller(this); … … 733 733 } 734 734 735 HRESULT CaptureScreenSettings::getVideoFPS(ULONG *aVideoFPS)735 HRESULT RecordScreenSettings::getVideoFPS(ULONG *aVideoFPS) 736 736 { 737 737 AutoCaller autoCaller(this); … … 745 745 } 746 746 747 HRESULT CaptureScreenSettings::setVideoFPS(ULONG aVideoFPS)747 HRESULT RecordScreenSettings::setVideoFPS(ULONG aVideoFPS) 748 748 { 749 749 AutoCaller autoCaller(this); … … 761 761 } 762 762 763 HRESULT CaptureScreenSettings::getVideoScalingMethod(CaptureVideoScalingMethod_T *aMode)764 { 765 AutoCaller autoCaller(this); 766 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 767 768 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 769 770 *aMode = CaptureVideoScalingMethod_None; /** @todo Implement this. */771 772 return S_OK; 773 } 774 775 HRESULT CaptureScreenSettings::setVideoScalingMethod(CaptureVideoScalingMethod_T aMode)763 HRESULT RecordScreenSettings::getVideoScalingMethod(RecordVideoScalingMethod_T *aMode) 764 { 765 AutoCaller autoCaller(this); 766 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 767 768 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 769 770 *aMode = RecordVideoScalingMethod_None; /** @todo Implement this. */ 771 772 return S_OK; 773 } 774 775 HRESULT RecordScreenSettings::setVideoScalingMethod(RecordVideoScalingMethod_T aMode) 776 776 { 777 777 AutoCaller autoCaller(this); … … 794 794 * @returns IPRT status code. 795 795 */ 796 int CaptureScreenSettings::i_initInternal(void)796 int RecordScreenSettings::i_initInternal(void) 797 797 { 798 798 Assert(m); … … 802 802 switch (m->bd->enmDest) 803 803 { 804 case CaptureDestination_File:804 case RecordDestination_File: 805 805 { 806 806 if (m->bd->File.strName.isEmpty()) -
trunk/src/VBox/Main/src-server/RecordSettingsImpl.cpp
r75340 r75341 17 17 */ 18 18 19 #define LOG_GROUP LOG_GROUP_MAIN_ CAPTURESETTINGS19 #define LOG_GROUP LOG_GROUP_MAIN_RECORDSETTINGS 20 20 #include "LoggingNew.h" 21 21 22 #include " CaptureSettingsImpl.h"23 #include " CaptureScreenSettingsImpl.h"22 #include "RecordSettingsImpl.h" 23 #include "RecordScreenSettingsImpl.h" 24 24 #include "MachineImpl.h" 25 25 … … 33 33 //////////////////////////////////////////////////////////////////////////////// 34 34 // 35 // CaptureSettings private data definition35 // RecordSettings private data definition 36 36 // 37 37 //////////////////////////////////////////////////////////////////////////////// 38 38 39 struct CaptureSettings::Data39 struct RecordSettings::Data 40 40 { 41 41 Data() … … 43 43 { } 44 44 45 Machine * const 46 ComObjPtr< CaptureSettings>pPeer;47 CaptureScreenSettingsMapmapScreenObj;48 bool 45 Machine * const pMachine; 46 ComObjPtr<RecordSettings> pPeer; 47 RecordScreenSettingsMap mapScreenObj; 48 bool fHasMachineLock; 49 49 50 50 // use the XML settings structure in the members for simplicity 51 Backupable<settings:: CaptureSettings> bd;51 Backupable<settings::RecordSettings> bd; 52 52 }; 53 53 54 DEFINE_EMPTY_CTOR_DTOR( CaptureSettings)55 56 HRESULT CaptureSettings::FinalConstruct()54 DEFINE_EMPTY_CTOR_DTOR(RecordSettings) 55 56 HRESULT RecordSettings::FinalConstruct() 57 57 { 58 58 return BaseFinalConstruct(); 59 59 } 60 60 61 void CaptureSettings::FinalRelease()61 void RecordSettings::FinalRelease() 62 62 { 63 63 uninit(); … … 70 70 * @returns COM result indicator 71 71 */ 72 HRESULT CaptureSettings::init(Machine *aParent)72 HRESULT RecordSettings::init(Machine *aParent) 73 73 { 74 74 LogFlowThisFuncEnter(); … … 103 103 * it shares data with is destroyed. 104 104 */ 105 HRESULT CaptureSettings::init(Machine *aParent, CaptureSettings *that)105 HRESULT RecordSettings::init(Machine *aParent, RecordSettings *that) 106 106 { 107 107 LogFlowThisFuncEnter(); … … 136 136 * of the original object passed as an argument. 137 137 */ 138 HRESULT CaptureSettings::initCopy(Machine *aParent, CaptureSettings *that)138 HRESULT RecordSettings::initCopy(Machine *aParent, RecordSettings *that) 139 139 { 140 140 LogFlowThisFuncEnter(); … … 168 168 * Called either from FinalRelease() or by the parent when it gets destroyed. 169 169 */ 170 void CaptureSettings::uninit()170 void RecordSettings::uninit() 171 171 { 172 172 LogFlowThisFuncEnter(); … … 191 191 } 192 192 193 // I CaptureSettings properties193 // IRecordSettings properties 194 194 ///////////////////////////////////////////////////////////////////////////// 195 195 196 HRESULT CaptureSettings::getEnabled(BOOL *enabled)196 HRESULT RecordSettings::getEnabled(BOOL *enabled) 197 197 { 198 198 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); … … 203 203 } 204 204 205 HRESULT CaptureSettings::setEnabled(BOOL enable)205 HRESULT RecordSettings::setEnabled(BOOL enable) 206 206 { 207 207 LogFlowThisFuncEnter(); … … 219 219 220 220 alock.release(); 221 rc = m->pMachine->i_on CaptureChange();221 rc = m->pMachine->i_onRecordChange(); 222 222 if (FAILED(rc)) 223 223 { 224 224 /* 225 225 * Normally we would do the actual change _after_ i_onCaptureChange() succeeded. 226 * We cannot do this because that function uses CaptureSettings::GetEnabled to226 * We cannot do this because that function uses RecordSettings::GetEnabled to 227 227 * determine if it should start or stop capturing. Therefore we need to manually 228 228 * undo change. … … 234 234 { 235 235 AutoWriteLock mlock(m->pMachine COMMA_LOCKVAL_SRC_POS); // mParent is const, needs no locking 236 m->pMachine->i_setModified(Machine::IsModified_ Capture);236 m->pMachine->i_setModified(Machine::IsModified_Record); 237 237 238 238 /* We need to indicate here that we just took the machine lock, as Machine::i_saveSettings() will … … 251 251 } 252 252 253 HRESULT CaptureSettings::getScreens(std::vector<ComPtr<ICaptureScreenSettings> > &aCaptureScreenSettings)253 HRESULT RecordSettings::getScreens(std::vector<ComPtr<IRecordScreenSettings> > &aRecordScreenSettings) 254 254 { 255 255 LogFlowThisFuncEnter(); … … 259 259 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 260 260 261 a CaptureScreenSettings.clear();262 a CaptureScreenSettings.resize(m->mapScreenObj.size());263 264 CaptureScreenSettingsMap::const_iterator itScreenSettings = m->mapScreenObj.begin();261 aRecordScreenSettings.clear(); 262 aRecordScreenSettings.resize(m->mapScreenObj.size()); 263 264 RecordScreenSettingsMap::const_iterator itScreenSettings = m->mapScreenObj.begin(); 265 265 size_t i = 0; 266 266 while (itScreenSettings != m->mapScreenObj.end()) 267 267 { 268 itScreenSettings->second.queryInterfaceTo(a CaptureScreenSettings[i].asOutParam());269 Assert(a CaptureScreenSettings[i].isNotNull());268 itScreenSettings->second.queryInterfaceTo(aRecordScreenSettings[i].asOutParam()); 269 Assert(aRecordScreenSettings[i].isNotNull()); 270 270 ++i; 271 271 ++itScreenSettings; 272 272 } 273 273 274 Assert(a CaptureScreenSettings.size() == m->mapScreenObj.size());274 Assert(aRecordScreenSettings.size() == m->mapScreenObj.size()); 275 275 276 276 return S_OK; 277 277 } 278 278 279 HRESULT CaptureSettings::getScreenSettings(ULONG uScreenId, ComPtr<ICaptureScreenSettings> &aCaptureScreenSettings)279 HRESULT RecordSettings::getScreenSettings(ULONG uScreenId, ComPtr<IRecordScreenSettings> &aRecordScreenSettings) 280 280 { 281 281 LogFlowThisFuncEnter(); … … 288 288 return setError(E_INVALIDARG, tr("Invalid screen ID specified")); 289 289 290 CaptureScreenSettingsMap::const_iterator itScreenSettings = m->mapScreenObj.find(uScreenId);290 RecordScreenSettingsMap::const_iterator itScreenSettings = m->mapScreenObj.find(uScreenId); 291 291 if (itScreenSettings != m->mapScreenObj.end()) 292 292 { 293 itScreenSettings->second.queryInterfaceTo(a CaptureScreenSettings.asOutParam());293 itScreenSettings->second.queryInterfaceTo(aRecordScreenSettings.asOutParam()); 294 294 return S_OK; 295 295 } … … 298 298 } 299 299 300 // I CaptureSettings methods300 // IRecordSettings methods 301 301 ///////////////////////////////////////////////////////////////////////////// 302 302 … … 312 312 * @param data Recording screen settings to use for that screen. 313 313 */ 314 int CaptureSettings::i_createScreenObj(CaptureScreenSettingsMap &screenSettingsMap,315 uint32_t uScreenId, const settings:: CaptureScreenSettings &data)314 int RecordSettings::i_createScreenObj(RecordScreenSettingsMap &screenSettingsMap, 315 uint32_t uScreenId, const settings::RecordScreenSettings &data) 316 316 { 317 317 LogFlowThisFunc(("Screen %RU32\n", uScreenId)); … … 325 325 int vrc = VINF_SUCCESS; 326 326 327 ComObjPtr< CaptureScreenSettings> captureScreenSettings;328 HRESULT rc = captureScreenSettings.createObject();327 ComObjPtr<RecordScreenSettings> RecordScreenSettings; 328 HRESULT rc = RecordScreenSettings.createObject(); 329 329 if (SUCCEEDED(rc)) 330 330 { 331 rc = captureScreenSettings->init(this, uScreenId, data);331 rc = RecordScreenSettings->init(this, uScreenId, data); 332 332 if (SUCCEEDED(rc)) 333 333 { 334 334 try 335 335 { 336 screenSettingsMap[uScreenId] = captureScreenSettings;336 screenSettingsMap[uScreenId] = RecordScreenSettings; 337 337 } 338 338 catch (std::bad_alloc &) … … 353 353 * @param uScreenId ID of screen to remove. 354 354 */ 355 int CaptureSettings::i_destroyScreenObj(CaptureScreenSettingsMap &screenSettingsMap, uint32_t uScreenId)355 int RecordSettings::i_destroyScreenObj(RecordScreenSettingsMap &screenSettingsMap, uint32_t uScreenId) 356 356 { 357 357 LogFlowThisFunc(("Screen %RU32\n", uScreenId)); … … 359 359 AssertReturn(uScreenId > 0, VERR_INVALID_PARAMETER); /* Removing screen 0 isn't a good idea. */ 360 360 361 CaptureScreenSettingsMap::iterator itScreen = screenSettingsMap.find(uScreenId);361 RecordScreenSettingsMap::iterator itScreen = screenSettingsMap.find(uScreenId); 362 362 if (itScreen == screenSettingsMap.end()) 363 363 { … … 368 368 /* Make sure to consume the pointer before the one of the 369 369 * iterator gets released. */ 370 ComObjPtr< CaptureScreenSettings> pScreenSettings = itScreen->second;370 ComObjPtr<RecordScreenSettings> pScreenSettings = itScreen->second; 371 371 372 372 screenSettingsMap.erase(itScreen); … … 383 383 * @param screenSettingsMap Map to destroy screen settings objects for. 384 384 */ 385 int CaptureSettings::i_destroyAllScreenObj(CaptureScreenSettingsMap &screenSettingsMap)386 { 387 LogFlowThisFuncEnter(); 388 389 CaptureScreenSettingsMap::iterator itScreen = screenSettingsMap.begin();385 int RecordSettings::i_destroyAllScreenObj(RecordScreenSettingsMap &screenSettingsMap) 386 { 387 LogFlowThisFuncEnter(); 388 389 RecordScreenSettingsMap::iterator itScreen = screenSettingsMap.begin(); 390 390 if (itScreen != screenSettingsMap.end()) 391 391 { 392 392 /* Make sure to consume the pointer before the one of the 393 393 * iterator gets released. */ 394 ComObjPtr< CaptureScreenSettings> pScreenSettings = itScreen->second;394 ComObjPtr<RecordScreenSettings> pScreenSettings = itScreen->second; 395 395 396 396 screenSettingsMap.erase(itScreen); … … 412 412 * @note Locks this object for writing. 413 413 */ 414 HRESULT CaptureSettings::i_loadSettings(const settings::CaptureSettings &data)414 HRESULT RecordSettings::i_loadSettings(const settings::RecordSettings &data) 415 415 { 416 416 LogFlowThisFuncEnter(); … … 427 427 LogFlowThisFunc(("Data has %zu screens\n", data.mapScreens.size())); 428 428 429 settings:: CaptureScreenMap::const_iterator itScreen = data.mapScreens.begin();429 settings::RecordScreenMap::const_iterator itScreen = data.mapScreens.begin(); 430 430 while (itScreen != data.mapScreens.end()) 431 431 { … … 457 457 * Resets the internal object state by destroying all screen settings objects. 458 458 */ 459 void CaptureSettings::i_reset(void)459 void RecordSettings::i_reset(void) 460 460 { 461 461 LogFlowThisFuncEnter(); … … 472 472 * @note Locks this object for reading. 473 473 */ 474 HRESULT CaptureSettings::i_saveSettings(settings::CaptureSettings &data)474 HRESULT RecordSettings::i_saveSettings(settings::RecordSettings &data) 475 475 { 476 476 LogFlowThisFuncEnter(); … … 486 486 data = *m->bd.data(); 487 487 488 settings:: CaptureScreenMap::iterator itScreen = data.mapScreens.begin();488 settings::RecordScreenMap::iterator itScreen = data.mapScreens.begin(); 489 489 while (itScreen != data.mapScreens.end()) 490 490 { … … 499 499 } 500 500 501 void CaptureSettings::i_rollback()501 void RecordSettings::i_rollback() 502 502 { 503 503 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); … … 505 505 } 506 506 507 void CaptureSettings::i_commit()507 void RecordSettings::i_commit() 508 508 { 509 509 /* sanity */ … … 531 531 } 532 532 533 void CaptureSettings::i_copyFrom(CaptureSettings *aThat)533 void RecordSettings::i_copyFrom(RecordSettings *aThat) 534 534 { 535 535 AssertReturnVoid(aThat != NULL); … … 552 552 } 553 553 554 void CaptureSettings::i_applyDefaults(void)554 void RecordSettings::i_applyDefaults(void) 555 555 { 556 556 /* sanity */ … … 566 566 * Returns the full path to the default video capture file. 567 567 */ 568 int CaptureSettings::i_getDefaultFileName(Utf8Str &strFile)568 int RecordSettings::i_getDefaultFileName(Utf8Str &strFile) 569 569 { 570 570 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); … … 582 582 * @returns \c true if the settings can be changed, \c false if not. 583 583 */ 584 bool CaptureSettings::i_canChangeSettings(void)584 bool RecordSettings::i_canChangeSettings(void) 585 585 { 586 586 AutoAnyStateDependency adep(m->pMachine); … … 598 598 * have been changed. 599 599 */ 600 void CaptureSettings::i_onSettingsChanged(void)600 void RecordSettings::i_onSettingsChanged(void) 601 601 { 602 602 LogFlowThisFuncEnter(); 603 603 604 604 AutoWriteLock mlock(m->pMachine COMMA_LOCKVAL_SRC_POS); 605 m->pMachine->i_setModified(Machine::IsModified_ Capture);605 m->pMachine->i_setModified(Machine::IsModified_Record); 606 606 mlock.release(); 607 607 … … 613 613 * to the number of the machine's configured displays. 614 614 */ 615 int CaptureSettings::i_syncToMachineDisplays(void)615 int RecordSettings::i_syncToMachineDisplays(void) 616 616 { 617 617 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); … … 632 632 if (m->mapScreenObj.find(i) == m->mapScreenObj.end()) 633 633 { 634 settings:: CaptureScreenMap::const_iterator itScreen = m->bd->mapScreens.find(i);634 settings::RecordScreenMap::const_iterator itScreen = m->bd->mapScreens.find(i); 635 635 if (itScreen == m->bd->mapScreens.end()) 636 636 { 637 settings:: CaptureScreenSettings defaultScreenSettings; /* Apply default settings. */637 settings::RecordScreenSettings defaultScreenSettings; /* Apply default settings. */ 638 638 m->bd->mapScreens[i] = defaultScreenSettings; 639 639 } -
trunk/src/VBox/Main/src-server/SnapshotImpl.cpp
r75278 r75341 1082 1082 if (FAILED(rc)) return rc; 1083 1083 1084 unconst(m CaptureSettings).createObject();1085 rc = m CaptureSettings->initCopy(this, pMachine->mCaptureSettings);1084 unconst(mRecordSettings).createObject(); 1085 rc = mRecordSettings->initCopy(this, pMachine->mRecordSettings); 1086 1086 if (FAILED(rc)) return rc; 1087 1087 … … 1208 1208 mBIOSSettings->init(this); 1209 1209 1210 unconst(m CaptureSettings).createObject();1211 m CaptureSettings->init(this);1210 unconst(mRecordSettings).createObject(); 1211 mRecordSettings->init(this); 1212 1212 1213 1213 unconst(mVRDEServer).createObject(); -
trunk/src/VBox/Main/xml/Settings.cpp
r75324 r75341 2371 2371 } 2372 2372 2373 CaptureScreenSettings::CaptureScreenSettings(void)2373 RecordScreenSettings::RecordScreenSettings(void) 2374 2374 { 2375 2375 applyDefaults(); 2376 2376 } 2377 2377 2378 CaptureScreenSettings::~CaptureScreenSettings()2379 { 2380 2381 } 2382 2383 void CaptureScreenSettings::applyDefaults(void)2378 RecordScreenSettings::~RecordScreenSettings() 2379 { 2380 2381 } 2382 2383 void RecordScreenSettings::applyDefaults(void) 2384 2384 { 2385 2385 /* … … 2388 2388 2389 2389 fEnabled = false; 2390 enmDest = CaptureDestination_File;2390 enmDest = RecordDestination_File; 2391 2391 ulMaxTimeS = 0; 2392 2392 strOptions = ""; 2393 2393 File.ulMaxSizeMB = 0; 2394 2394 File.strName = ""; 2395 Video.enmCodec = CaptureVideoCodec_VP8;2395 Video.enmCodec = RecordVideoCodec_VP8; 2396 2396 Video.ulWidth = 1024; 2397 2397 Video.ulHeight = 768; 2398 2398 Video.ulRate = 512; 2399 2399 Video.ulFPS = 25; 2400 Audio.enmAudioCodec = CaptureAudioCodec_Opus;2400 Audio.enmAudioCodec = RecordAudioCodec_Opus; 2401 2401 Audio.cBits = 16; 2402 2402 Audio.cChannels = 2; 2403 2403 Audio.uHz = 22050; 2404 2404 2405 featureMap[ CaptureFeature_Video] = true;2406 featureMap[ CaptureFeature_Audio] = false;2405 featureMap[RecordFeature_Video] = true; 2406 featureMap[RecordFeature_Audio] = false; 2407 2407 } 2408 2408 … … 2410 2410 * Check if all settings have default values. 2411 2411 */ 2412 bool CaptureScreenSettings::areDefaultSettings(void) const2412 bool RecordScreenSettings::areDefaultSettings(void) const 2413 2413 { 2414 2414 return fEnabled == false 2415 && enmDest == CaptureDestination_File2415 && enmDest == RecordDestination_File 2416 2416 && ulMaxTimeS == 0 2417 2417 && strOptions == "" 2418 2418 && File.ulMaxSizeMB == 0 2419 2419 && File.strName == "" 2420 && Video.enmCodec == CaptureVideoCodec_VP82420 && Video.enmCodec == RecordVideoCodec_VP8 2421 2421 && Video.ulWidth == 1024 2422 2422 && Video.ulHeight == 768 2423 2423 && Video.ulRate == 512 2424 2424 && Video.ulFPS == 25 2425 && Audio.enmAudioCodec == CaptureAudioCodec_Opus2425 && Audio.enmAudioCodec == RecordAudioCodec_Opus 2426 2426 && Audio.cBits == 16 2427 2427 && Audio.cChannels == 2 … … 2429 2429 } 2430 2430 2431 bool CaptureScreenSettings::isFeatureEnabled(CaptureFeature_T enmFeature) const2432 { 2433 CaptureFeatureMap::const_iterator itFeature = featureMap.find(enmFeature);2431 bool RecordScreenSettings::isFeatureEnabled(RecordFeature_T enmFeature) const 2432 { 2433 RecordFeatureMap::const_iterator itFeature = featureMap.find(enmFeature); 2434 2434 if (itFeature != featureMap.end()) 2435 2435 return itFeature->second; … … 2443 2443 * machine settings have really changed and thus need to be written out to disk. 2444 2444 */ 2445 bool CaptureScreenSettings::operator==(const CaptureScreenSettings &d) const2445 bool RecordScreenSettings::operator==(const RecordScreenSettings &d) const 2446 2446 { 2447 2447 return fEnabled == d.fEnabled … … 2465 2465 * Constructor. Needs to set sane defaults which stand the test of time. 2466 2466 */ 2467 CaptureSettings::CaptureSettings()2467 RecordSettings::RecordSettings() 2468 2468 { 2469 2469 applyDefaults(); … … 2473 2473 * Applies the default settings. 2474 2474 */ 2475 void CaptureSettings::applyDefaults(void)2475 void RecordSettings::applyDefaults(void) 2476 2476 { 2477 2477 fEnabled = false; … … 2482 2482 { 2483 2483 /* Always add screen 0 to the default configuration. */ 2484 CaptureScreenSettings screenSettings; /* Apply default settings for screen 0. */2484 RecordScreenSettings screenSettings; /* Apply default settings for screen 0. */ 2485 2485 screenSettings.fEnabled = true; /* Enabled by default. */ 2486 2486 mapScreens[0] = screenSettings; … … 2495 2495 * Check if all settings have default values. 2496 2496 */ 2497 bool CaptureSettings::areDefaultSettings() const2497 bool RecordSettings::areDefaultSettings() const 2498 2498 { 2499 2499 const bool fDefault = fEnabled == false … … 2502 2502 return false; 2503 2503 2504 CaptureScreenMap::const_iterator itScreen = mapScreens.begin();2504 RecordScreenMap::const_iterator itScreen = mapScreens.begin(); 2505 2505 return itScreen->first == 0 2506 2506 && itScreen->second.areDefaultSettings(); … … 2512 2512 * machine settings have really changed and thus need to be written out to disk. 2513 2513 */ 2514 bool CaptureSettings::operator==(const CaptureSettings &d) const2514 bool RecordSettings::operator==(const RecordSettings &d) const 2515 2515 { 2516 2516 if (this == &d) … … 2521 2521 return false; 2522 2522 2523 CaptureScreenMap::const_iterator itScreen = mapScreens.begin();2523 RecordScreenMap::const_iterator itScreen = mapScreens.begin(); 2524 2524 uint32_t i = 0; 2525 2525 while (itScreen != mapScreens.end()) 2526 2526 { 2527 CaptureScreenMap::const_iterator itScreenThat = d.mapScreens.find(i);2527 RecordScreenMap::const_iterator itScreenThat = d.mapScreens.find(i); 2528 2528 if (itScreen->second == itScreenThat->second) 2529 2529 { … … 4409 4409 else if (pelmHwChild->nameEquals("VideoCapture")) 4410 4410 { 4411 pelmHwChild->getAttributeValue("enabled", hw. captureSettings.fEnabled);4411 pelmHwChild->getAttributeValue("enabled", hw.recordSettings.fEnabled); 4412 4412 4413 4413 /* Right now I don't want to bump the settings version, so just convert the enabled … … 4418 4418 /* At the moment we only support one capturing configuration, that is, all screens 4419 4419 * have the same configuration. So load/save to/from screen 0. */ 4420 Assert(hw. captureSettings.mapScreens.size()); /* At least screen must be present. */4421 CaptureScreenSettings &screen0Settings = hw.captureSettings.mapScreens[0];4420 Assert(hw.recordSettings.mapScreens.size()); /* At least screen must be present. */ 4421 RecordScreenSettings &screen0Settings = hw.recordSettings.mapScreens[0]; 4422 4422 4423 4423 pelmHwChild->getAttributeValue("maxTime", screen0Settings.ulMaxTimeS); … … 4433 4433 { 4434 4434 /* Add screen i to config in any case. */ 4435 hw. captureSettings.mapScreens[i] = screen0Settings;4435 hw.recordSettings.mapScreens[i] = screen0Settings; 4436 4436 4437 4437 if (u64VideoCaptureScreens & RT_BIT_64(i)) /* Screen i enabled? */ 4438 hw. captureSettings.mapScreens[i].fEnabled = true;4438 hw.recordSettings.mapScreens[i].fEnabled = true; 4439 4439 } 4440 4440 } … … 5820 5820 } 5821 5821 5822 if (m->sv >= SettingsVersion_v1_14 && !hw. captureSettings.areDefaultSettings())5822 if (m->sv >= SettingsVersion_v1_14 && !hw.recordSettings.areDefaultSettings()) 5823 5823 { 5824 5824 xml::ElementNode *pelmVideoCapture = pelmHardware->createChild("VideoCapture"); 5825 5825 5826 if (hw. captureSettings.fEnabled)5827 pelmVideoCapture->setAttribute("enabled", hw. captureSettings.fEnabled);5826 if (hw.recordSettings.fEnabled) 5827 pelmVideoCapture->setAttribute("enabled", hw.recordSettings.fEnabled); 5828 5828 5829 5829 /* Right now I don't want to bump the settings version, so just convert the enabled 5830 5830 * screens to the former uint64t_t bit array and vice versa. */ 5831 5831 uint64_t u64VideoCaptureScreens = 0; 5832 CaptureScreenMap::const_iterator itScreen = hw.captureSettings.mapScreens.begin();5833 while (itScreen != hw. captureSettings.mapScreens.end())5832 RecordScreenMap::const_iterator itScreen = hw.recordSettings.mapScreens.begin(); 5833 while (itScreen != hw.recordSettings.mapScreens.end()) 5834 5834 { 5835 5835 if (itScreen->second.fEnabled) … … 5843 5843 /* At the moment we only support one capturing configuration, that is, all screens 5844 5844 * have the same configuration. So load/save to/from screen 0. */ 5845 Assert(hw. captureSettings.mapScreens.size());5846 const CaptureScreenMap::const_iterator itScreen0Settings = hw.captureSettings.mapScreens.find(0);5847 Assert(itScreen0Settings != hw. captureSettings.mapScreens.end());5845 Assert(hw.recordSettings.mapScreens.size()); 5846 const RecordScreenMap::const_iterator itScreen0Settings = hw.recordSettings.mapScreens.find(0); 5847 Assert(itScreen0Settings != hw.recordSettings.mapScreens.end()); 5848 5848 5849 5849 if (itScreen0Settings->second.ulMaxTimeS) … … 7442 7442 || hardwareMachine.enmLongMode != Hardware::LongMode_Legacy 7443 7443 || machineUserData.ovIcon.size() > 0 7444 || hardwareMachine. captureSettings.fEnabled)7444 || hardwareMachine.recordSettings.fEnabled) 7445 7445 { 7446 7446 m->sv = SettingsVersion_v1_14;
Note:
See TracChangeset
for help on using the changeset viewer.