Changeset 66435 in vbox
- Timestamp:
- Apr 5, 2017 1:07:06 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114405
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
r66345 r66435 220 220 m_pCache->clear(); 221 221 222 /* Prepare display data: */223 UIDataSettingsMachineDisplay displayData;224 225 /* Cache Screendata: */226 displayData.m_iCurrentVRAM = m_machine.GetVRAMSize();227 displayData.m_cGuestScreenCount = m_machine.GetMonitorCount();228 displayData.m_dScaleFactor = gEDataManager->scaleFactor(m_machine.GetId());222 /* Prepare old display data: */ 223 UIDataSettingsMachineDisplay oldDisplayData; 224 225 /* Gather old 'Screen' data: */ 226 oldDisplayData.m_iCurrentVRAM = m_machine.GetVRAMSize(); 227 oldDisplayData.m_cGuestScreenCount = m_machine.GetMonitorCount(); 228 oldDisplayData.m_dScaleFactor = gEDataManager->scaleFactor(m_machine.GetId()); 229 229 #ifdef VBOX_WS_MAC 230 displayData.m_fUseUnscaledHiDPIOutput = gEDataManager->useUnscaledHiDPIOutput(m_machine.GetId());231 #endif /* VBOX_WS_MAC */232 displayData.m_f3dAccelerationEnabled = m_machine.GetAccelerate3DEnabled();233 #ifdef VBOX_WITH_VIDEOHWACCEL 234 displayData.m_f2dAccelerationEnabled = m_machine.GetAccelerate2DVideoEnabled();235 #endif /* VBOX_WITH_VIDEOHWACCEL */236 237 /* Check if Remote Display server is valid: */238 CVRDEServer remoteDisplayServer = m_machine.GetVRDEServer();239 displayData.m_fRemoteDisplayServerSupported = !remoteDisplayServer.isNull();240 if (! remoteDisplayServer.isNull())230 oldDisplayData.m_fUseUnscaledHiDPIOutput = gEDataManager->useUnscaledHiDPIOutput(m_machine.GetId()); 231 #endif 232 oldDisplayData.m_f3dAccelerationEnabled = m_machine.GetAccelerate3DEnabled(); 233 #ifdef VBOX_WITH_VIDEOHWACCEL 234 oldDisplayData.m_f2dAccelerationEnabled = m_machine.GetAccelerate2DVideoEnabled(); 235 #endif 236 237 /* Check whether remote display server is valid: */ 238 const CVRDEServer &comServer = m_machine.GetVRDEServer(); 239 oldDisplayData.m_fRemoteDisplayServerSupported = !comServer.isNull(); 240 if (!comServer.isNull()) 241 241 { 242 /* Cache Remote Displaydata: */243 displayData.m_fRemoteDisplayServerEnabled = remoteDisplayServer.GetEnabled();244 displayData.m_strRemoteDisplayPort = remoteDisplayServer.GetVRDEProperty("TCP/Ports");245 displayData.m_remoteDisplayAuthType = remoteDisplayServer.GetAuthType();246 displayData.m_uRemoteDisplayTimeout = remoteDisplayServer.GetAuthTimeout();247 displayData.m_fRemoteDisplayMultiConnAllowed = remoteDisplayServer.GetAllowMultiConnection();242 /* Gather old 'Remote Display' data: */ 243 oldDisplayData.m_fRemoteDisplayServerEnabled = comServer.GetEnabled(); 244 oldDisplayData.m_strRemoteDisplayPort = comServer.GetVRDEProperty("TCP/Ports"); 245 oldDisplayData.m_remoteDisplayAuthType = comServer.GetAuthType(); 246 oldDisplayData.m_uRemoteDisplayTimeout = comServer.GetAuthTimeout(); 247 oldDisplayData.m_fRemoteDisplayMultiConnAllowed = comServer.GetAllowMultiConnection(); 248 248 } 249 249 250 /* Cache Video Capturedata: */251 displayData.m_fVideoCaptureEnabled = m_machine.GetVideoCaptureEnabled();252 displayData.m_strVideoCaptureFolder = QFileInfo(m_machine.GetSettingsFilePath()).absolutePath();253 displayData.m_strVideoCaptureFilePath = m_machine.GetVideoCaptureFile();254 displayData.m_iVideoCaptureFrameWidth = m_machine.GetVideoCaptureWidth();255 displayData.m_iVideoCaptureFrameHeight = m_machine.GetVideoCaptureHeight();256 displayData.m_iVideoCaptureFrameRate = m_machine.GetVideoCaptureFPS();257 displayData.m_iVideoCaptureBitRate = m_machine.GetVideoCaptureRate();258 displayData.m_screens = m_machine.GetVideoCaptureScreens();259 260 /* Initialize other variables: */261 m_iInitialVRAM = RT_MIN( displayData.m_iCurrentVRAM, m_iMaxVRAM);262 263 /* Cache display data: */264 m_pCache->cacheInitialData( displayData);250 /* Gather old 'Video Capture' data: */ 251 oldDisplayData.m_fVideoCaptureEnabled = m_machine.GetVideoCaptureEnabled(); 252 oldDisplayData.m_strVideoCaptureFolder = QFileInfo(m_machine.GetSettingsFilePath()).absolutePath(); 253 oldDisplayData.m_strVideoCaptureFilePath = m_machine.GetVideoCaptureFile(); 254 oldDisplayData.m_iVideoCaptureFrameWidth = m_machine.GetVideoCaptureWidth(); 255 oldDisplayData.m_iVideoCaptureFrameHeight = m_machine.GetVideoCaptureHeight(); 256 oldDisplayData.m_iVideoCaptureFrameRate = m_machine.GetVideoCaptureFPS(); 257 oldDisplayData.m_iVideoCaptureBitRate = m_machine.GetVideoCaptureRate(); 258 oldDisplayData.m_screens = m_machine.GetVideoCaptureScreens(); 259 260 /* Gather other old display data: */ 261 m_iInitialVRAM = RT_MIN(oldDisplayData.m_iCurrentVRAM, m_iMaxVRAM); 262 263 /* Cache old display data: */ 264 m_pCache->cacheInitialData(oldDisplayData); 265 265 266 266 /* Upload machine to data: */ … … 270 270 void UIMachineSettingsDisplay::getFromCache() 271 271 { 272 /* Get display data fromcache: */273 const UIDataSettingsMachineDisplay & displayData = m_pCache->base();274 275 /* Load Screen data topage: */276 m_pEditorVideoScreenCount->setValue( displayData.m_cGuestScreenCount);277 m_pEditorGuestScreenScale->setValue((int)( displayData.m_dScaleFactor * 100));272 /* Get old display data from the cache: */ 273 const UIDataSettingsMachineDisplay &oldDisplayData = m_pCache->base(); 274 275 /* Load old 'Screen' data to the page: */ 276 m_pEditorVideoScreenCount->setValue(oldDisplayData.m_cGuestScreenCount); 277 m_pEditorGuestScreenScale->setValue((int)(oldDisplayData.m_dScaleFactor * 100)); 278 278 #ifdef VBOX_WS_MAC 279 m_pCheckBoxUnscaledHiDPIOutput->setChecked( displayData.m_fUseUnscaledHiDPIOutput);280 #endif /* VBOX_WS_MAC */281 m_pCheckbox3D->setChecked( displayData.m_f3dAccelerationEnabled);282 #ifdef VBOX_WITH_VIDEOHWACCEL 283 m_pCheckbox2DVideo->setChecked( displayData.m_f2dAccelerationEnabled);284 #endif /* VBOX_WITH_VIDEOHWACCEL */285 / * Should be the last one from this tab: */286 m_pEditorVideoMemorySize->setValue( displayData.m_iCurrentVRAM);287 288 /* If Remote Display server is supported: */289 if ( displayData.m_fRemoteDisplayServerSupported)279 m_pCheckBoxUnscaledHiDPIOutput->setChecked(oldDisplayData.m_fUseUnscaledHiDPIOutput); 280 #endif 281 m_pCheckbox3D->setChecked(oldDisplayData.m_f3dAccelerationEnabled); 282 #ifdef VBOX_WITH_VIDEOHWACCEL 283 m_pCheckbox2DVideo->setChecked(oldDisplayData.m_f2dAccelerationEnabled); 284 #endif 285 // Should be the last one for this tab: 286 m_pEditorVideoMemorySize->setValue(oldDisplayData.m_iCurrentVRAM); 287 288 /* If remote display server is supported: */ 289 if (oldDisplayData.m_fRemoteDisplayServerSupported) 290 290 { 291 /* Load Remote Display data topage: */292 m_pCheckboxRemoteDisplay->setChecked( displayData.m_fRemoteDisplayServerEnabled);293 m_pEditorRemoteDisplayPort->setText( displayData.m_strRemoteDisplayPort);294 m_pComboRemoteDisplayAuthMethod->setCurrentIndex(m_pComboRemoteDisplayAuthMethod->findText(gpConverter->toString( displayData.m_remoteDisplayAuthType)));295 m_pEditorRemoteDisplayTimeout->setText(QString::number( displayData.m_uRemoteDisplayTimeout));296 m_pCheckboxMultipleConn->setChecked( displayData.m_fRemoteDisplayMultiConnAllowed);291 /* Load old 'Remote Display' data to the page: */ 292 m_pCheckboxRemoteDisplay->setChecked(oldDisplayData.m_fRemoteDisplayServerEnabled); 293 m_pEditorRemoteDisplayPort->setText(oldDisplayData.m_strRemoteDisplayPort); 294 m_pComboRemoteDisplayAuthMethod->setCurrentIndex(m_pComboRemoteDisplayAuthMethod->findText(gpConverter->toString(oldDisplayData.m_remoteDisplayAuthType))); 295 m_pEditorRemoteDisplayTimeout->setText(QString::number(oldDisplayData.m_uRemoteDisplayTimeout)); 296 m_pCheckboxMultipleConn->setChecked(oldDisplayData.m_fRemoteDisplayMultiConnAllowed); 297 297 } 298 298 299 /* Load Video Capture data topage: */300 m_pCheckboxVideoCapture->setChecked( displayData.m_fVideoCaptureEnabled);301 m_pEditorVideoCapturePath->setHomeDir( displayData.m_strVideoCaptureFolder);302 m_pEditorVideoCapturePath->setPath( displayData.m_strVideoCaptureFilePath);303 m_pEditorVideoCaptureWidth->setValue( displayData.m_iVideoCaptureFrameWidth);304 m_pEditorVideoCaptureHeight->setValue( displayData.m_iVideoCaptureFrameHeight);305 m_pEditorVideoCaptureFrameRate->setValue( displayData.m_iVideoCaptureFrameRate);306 m_pEditorVideoCaptureBitRate->setValue( displayData.m_iVideoCaptureBitRate);307 m_pScrollerVideoCaptureScreens->setValue( displayData.m_screens);299 /* Load old 'Video Capture' data to the page: */ 300 m_pCheckboxVideoCapture->setChecked(oldDisplayData.m_fVideoCaptureEnabled); 301 m_pEditorVideoCapturePath->setHomeDir(oldDisplayData.m_strVideoCaptureFolder); 302 m_pEditorVideoCapturePath->setPath(oldDisplayData.m_strVideoCaptureFilePath); 303 m_pEditorVideoCaptureWidth->setValue(oldDisplayData.m_iVideoCaptureFrameWidth); 304 m_pEditorVideoCaptureHeight->setValue(oldDisplayData.m_iVideoCaptureFrameHeight); 305 m_pEditorVideoCaptureFrameRate->setValue(oldDisplayData.m_iVideoCaptureFrameRate); 306 m_pEditorVideoCaptureBitRate->setValue(oldDisplayData.m_iVideoCaptureBitRate); 307 m_pScrollerVideoCaptureScreens->setValue(oldDisplayData.m_screens); 308 308 309 309 /* Polish page finally: */ … … 316 316 void UIMachineSettingsDisplay::putToCache() 317 317 { 318 /* Prepare display data: */319 UIDataSettingsMachineDisplay displayData = m_pCache->base();320 321 /* Gather Screendata from page: */322 displayData.m_iCurrentVRAM = m_pEditorVideoMemorySize->value();323 displayData.m_cGuestScreenCount = m_pEditorVideoScreenCount->value();324 displayData.m_dScaleFactor = (double)m_pEditorGuestScreenScale->value() / 100;318 /* Prepare new display data: */ 319 UIDataSettingsMachineDisplay newDisplayData; 320 321 /* Gather new 'Screen' data from page: */ 322 newDisplayData.m_iCurrentVRAM = m_pEditorVideoMemorySize->value(); 323 newDisplayData.m_cGuestScreenCount = m_pEditorVideoScreenCount->value(); 324 newDisplayData.m_dScaleFactor = (double)m_pEditorGuestScreenScale->value() / 100; 325 325 #ifdef VBOX_WS_MAC 326 displayData.m_fUseUnscaledHiDPIOutput = m_pCheckBoxUnscaledHiDPIOutput->isChecked(); 327 #endif /* VBOX_WS_MAC */ 328 displayData.m_f3dAccelerationEnabled = m_pCheckbox3D->isChecked(); 329 #ifdef VBOX_WITH_VIDEOHWACCEL 330 displayData.m_f2dAccelerationEnabled = m_pCheckbox2DVideo->isChecked(); 331 #endif /* VBOX_WITH_VIDEOHWACCEL */ 332 333 /* If Remote Display server is supported: */ 334 if (displayData.m_fRemoteDisplayServerSupported) 326 newDisplayData.m_fUseUnscaledHiDPIOutput = m_pCheckBoxUnscaledHiDPIOutput->isChecked(); 327 #endif 328 newDisplayData.m_f3dAccelerationEnabled = m_pCheckbox3D->isChecked(); 329 #ifdef VBOX_WITH_VIDEOHWACCEL 330 newDisplayData.m_f2dAccelerationEnabled = m_pCheckbox2DVideo->isChecked(); 331 #endif 332 333 /* If remote display server is supported: */ 334 newDisplayData.m_fRemoteDisplayServerSupported = m_pCache->base().m_fRemoteDisplayServerSupported; 335 if (newDisplayData.m_fRemoteDisplayServerSupported) 335 336 { 336 /* Gather Remote Displaydata from page: */337 displayData.m_fRemoteDisplayServerEnabled = m_pCheckboxRemoteDisplay->isChecked();338 displayData.m_strRemoteDisplayPort = m_pEditorRemoteDisplayPort->text();339 displayData.m_remoteDisplayAuthType = gpConverter->fromString<KAuthType>(m_pComboRemoteDisplayAuthMethod->currentText());340 displayData.m_uRemoteDisplayTimeout = m_pEditorRemoteDisplayTimeout->text().toULong();341 displayData.m_fRemoteDisplayMultiConnAllowed = m_pCheckboxMultipleConn->isChecked();337 /* Gather new 'Remote Display' data from page: */ 338 newDisplayData.m_fRemoteDisplayServerEnabled = m_pCheckboxRemoteDisplay->isChecked(); 339 newDisplayData.m_strRemoteDisplayPort = m_pEditorRemoteDisplayPort->text(); 340 newDisplayData.m_remoteDisplayAuthType = gpConverter->fromString<KAuthType>(m_pComboRemoteDisplayAuthMethod->currentText()); 341 newDisplayData.m_uRemoteDisplayTimeout = m_pEditorRemoteDisplayTimeout->text().toULong(); 342 newDisplayData.m_fRemoteDisplayMultiConnAllowed = m_pCheckboxMultipleConn->isChecked(); 342 343 } 343 344 344 /* Gather Video Capture data from page: */ 345 displayData.m_fVideoCaptureEnabled = m_pCheckboxVideoCapture->isChecked(); 346 displayData.m_strVideoCaptureFilePath = m_pEditorVideoCapturePath->path(); 347 displayData.m_iVideoCaptureFrameWidth = m_pEditorVideoCaptureWidth->value(); 348 displayData.m_iVideoCaptureFrameHeight = m_pEditorVideoCaptureHeight->value(); 349 displayData.m_iVideoCaptureFrameRate = m_pEditorVideoCaptureFrameRate->value(); 350 displayData.m_iVideoCaptureBitRate = m_pEditorVideoCaptureBitRate->value(); 351 displayData.m_screens = m_pScrollerVideoCaptureScreens->value(); 352 353 /* Cache display data: */ 354 m_pCache->cacheCurrentData(displayData); 345 /* Gather new 'Video Capture' data from page: */ 346 newDisplayData.m_fVideoCaptureEnabled = m_pCheckboxVideoCapture->isChecked(); 347 newDisplayData.m_strVideoCaptureFolder = m_pCache->base().m_strVideoCaptureFolder; 348 newDisplayData.m_strVideoCaptureFilePath = m_pEditorVideoCapturePath->path(); 349 newDisplayData.m_iVideoCaptureFrameWidth = m_pEditorVideoCaptureWidth->value(); 350 newDisplayData.m_iVideoCaptureFrameHeight = m_pEditorVideoCaptureHeight->value(); 351 newDisplayData.m_iVideoCaptureFrameRate = m_pEditorVideoCaptureFrameRate->value(); 352 newDisplayData.m_iVideoCaptureBitRate = m_pEditorVideoCaptureBitRate->value(); 353 newDisplayData.m_screens = m_pScrollerVideoCaptureScreens->value(); 354 355 /* Cache new display data: */ 356 m_pCache->cacheCurrentData(newDisplayData); 355 357 } 356 358 … … 363 365 if (isMachineInValidMode() && m_pCache->wasChanged()) 364 366 { 365 /* Get display data from cache: */ 366 const UIDataSettingsMachineDisplay &displayData = m_pCache->data(); 367 368 /* Store Screen data: */ 369 if (isMachineOffline()) 370 { 371 m_machine.SetVRAMSize(displayData.m_iCurrentVRAM); 372 m_machine.SetMonitorCount(displayData.m_cGuestScreenCount); 373 m_machine.SetAccelerate3DEnabled(displayData.m_f3dAccelerationEnabled); 374 #ifdef VBOX_WITH_VIDEOHWACCEL 375 m_machine.SetAccelerate2DVideoEnabled(displayData.m_f2dAccelerationEnabled); 376 #endif /* VBOX_WITH_VIDEOHWACCEL */ 377 } 378 if (isMachineInValidMode()) 379 { 380 gEDataManager->setScaleFactor(displayData.m_dScaleFactor, m_machine.GetId()); 367 /* Get old display data from the cache: */ 368 const UIDataSettingsMachineDisplay &oldDisplayData = m_pCache->base(); 369 /* Get new display data from the cache: */ 370 const UIDataSettingsMachineDisplay &newDisplayData = m_pCache->data(); 371 372 /* Store video RAM size: */ 373 if (isMachineOffline() && newDisplayData.m_iCurrentVRAM != oldDisplayData.m_iCurrentVRAM) 374 m_machine.SetVRAMSize(newDisplayData.m_iCurrentVRAM); 375 /* Store guest screen count: */ 376 if (isMachineOffline() && newDisplayData.m_cGuestScreenCount != oldDisplayData.m_cGuestScreenCount) 377 m_machine.SetMonitorCount(newDisplayData.m_cGuestScreenCount); 378 /* Store whether 3D acceleration is enabled: */ 379 if (isMachineOffline() && newDisplayData.m_f3dAccelerationEnabled != oldDisplayData.m_f3dAccelerationEnabled) 380 m_machine.SetAccelerate3DEnabled(newDisplayData.m_f3dAccelerationEnabled); 381 #ifdef VBOX_WITH_VIDEOHWACCEL 382 /* Store whether 2D video acceleration is enabled: */ 383 if (isMachineOffline() && newDisplayData.m_f2dAccelerationEnabled != oldDisplayData.m_f2dAccelerationEnabled) 384 m_machine.SetAccelerate2DVideoEnabled(newDisplayData.m_f2dAccelerationEnabled); 385 #endif 386 /* Store guest-screen scale-factor: */ 387 if (newDisplayData.m_dScaleFactor != oldDisplayData.m_dScaleFactor) 388 gEDataManager->setScaleFactor(newDisplayData.m_dScaleFactor, m_machine.GetId()); 381 389 #ifdef VBOX_WS_MAC 382 gEDataManager->setUseUnscaledHiDPIOutput(displayData.m_fUseUnscaledHiDPIOutput, m_machine.GetId()); 383 #endif /* VBOX_WS_MAC */ 384 } 385 386 /* Check if Remote Display server still valid: */ 387 CVRDEServer remoteDisplayServer = m_machine.GetVRDEServer(); 388 if (!remoteDisplayServer.isNull()) 389 { 390 /* Store Remote Display data: */ 391 remoteDisplayServer.SetEnabled(displayData.m_fRemoteDisplayServerEnabled); 392 remoteDisplayServer.SetVRDEProperty("TCP/Ports", displayData.m_strRemoteDisplayPort); 393 remoteDisplayServer.SetAuthType(displayData.m_remoteDisplayAuthType); 394 remoteDisplayServer.SetAuthTimeout(displayData.m_uRemoteDisplayTimeout); 395 /* Make sure machine is 'offline' or 'saved': */ 396 if (isMachineOffline() || isMachineSaved()) 397 remoteDisplayServer.SetAllowMultiConnection(displayData.m_fRemoteDisplayMultiConnAllowed); 398 } 399 400 /* Store Video Capture data: */ 390 /* Store whether Unscaled HiDPI Output is enabled: : */ 391 if (newDisplayData.m_fUseUnscaledHiDPIOutput != oldDisplayData.m_fUseUnscaledHiDPIOutput) 392 gEDataManager->setUseUnscaledHiDPIOutput(newDisplayData.m_fUseUnscaledHiDPIOutput, m_machine.GetId()); 393 #endif 394 395 /* Check whether remote display server still valid: */ 396 CVRDEServer server = m_machine.GetVRDEServer(); 397 if (!server.isNull()) 398 { 399 /* Store whether remote display server is enabled: */ 400 if (newDisplayData.m_fRemoteDisplayServerEnabled != oldDisplayData.m_fRemoteDisplayServerEnabled) 401 server.SetEnabled(newDisplayData.m_fRemoteDisplayServerEnabled); 402 /* Store remote display server port: */ 403 if (newDisplayData.m_strRemoteDisplayPort != oldDisplayData.m_strRemoteDisplayPort) 404 server.SetVRDEProperty("TCP/Ports", newDisplayData.m_strRemoteDisplayPort); 405 /* Store remote display server auth type: */ 406 if (newDisplayData.m_remoteDisplayAuthType != oldDisplayData.m_remoteDisplayAuthType) 407 server.SetAuthType(newDisplayData.m_remoteDisplayAuthType); 408 /* Store remote display server timeout: */ 409 if (newDisplayData.m_uRemoteDisplayTimeout != oldDisplayData.m_uRemoteDisplayTimeout) 410 server.SetAuthTimeout(newDisplayData.m_uRemoteDisplayTimeout); 411 /* Store whether remote display server allows multiple connections: */ 412 if ( (isMachineOffline() || isMachineSaved()) 413 && (newDisplayData.m_fRemoteDisplayMultiConnAllowed != oldDisplayData.m_fRemoteDisplayMultiConnAllowed)) 414 server.SetAllowMultiConnection(newDisplayData.m_fRemoteDisplayMultiConnAllowed); 415 } 416 417 /* Store new 'Video Capture' data for online case: */ 401 418 if (isMachineOnline()) 402 419 { 403 /* If Video Capture is *enabled* now: */404 if ( m_pCache->base().m_fVideoCaptureEnabled)420 /* If 'Video Capture' was *enabled*: */ 421 if (oldDisplayData.m_fVideoCaptureEnabled) 405 422 { 406 /* We can still save the *screens* option: */ 407 m_machine.SetVideoCaptureScreens(displayData.m_screens); 408 /* Finally we should *disable* Video Capture if necessary: */ 409 if (!displayData.m_fVideoCaptureEnabled) 410 m_machine.SetVideoCaptureEnabled(displayData.m_fVideoCaptureEnabled); 423 // We can still save the *screens* option. 424 // And finally we should *disable* 'Video Capture' if necessary. 425 /* Store video capture recording screens: */ 426 if (newDisplayData.m_screens != oldDisplayData.m_screens) 427 m_machine.SetVideoCaptureScreens(newDisplayData.m_screens); 428 /* Store whether video capture is enabled: */ 429 if (newDisplayData.m_fVideoCaptureEnabled != oldDisplayData.m_fVideoCaptureEnabled) 430 m_machine.SetVideoCaptureEnabled(newDisplayData.m_fVideoCaptureEnabled); 411 431 } 412 /* If Video Capture is *disabled* now: */432 /* If 'Video Capture' was *disabled*: */ 413 433 else 414 434 { 415 /* We should save all the options *before* Video Capture activation: */ 416 m_machine.SetVideoCaptureFile(displayData.m_strVideoCaptureFilePath); 417 m_machine.SetVideoCaptureWidth(displayData.m_iVideoCaptureFrameWidth); 418 m_machine.SetVideoCaptureHeight(displayData.m_iVideoCaptureFrameHeight); 419 m_machine.SetVideoCaptureFPS(displayData.m_iVideoCaptureFrameRate); 420 m_machine.SetVideoCaptureRate(displayData.m_iVideoCaptureBitRate); 421 m_machine.SetVideoCaptureScreens(displayData.m_screens); 422 /* Finally we should *enable* Video Capture if necessary: */ 423 if (displayData.m_fVideoCaptureEnabled) 424 m_machine.SetVideoCaptureEnabled(displayData.m_fVideoCaptureEnabled); 435 // We should save all the options *before* 'Video Capture' activation. 436 // And finally we should *enable* Video Capture if necessary. 437 /* Store video capture file path: */ 438 if (newDisplayData.m_strVideoCaptureFilePath != oldDisplayData.m_strVideoCaptureFilePath) 439 m_machine.SetVideoCaptureFile(newDisplayData.m_strVideoCaptureFilePath); 440 /* Store video capture frame width: */ 441 if (newDisplayData.m_iVideoCaptureFrameWidth != oldDisplayData.m_iVideoCaptureFrameWidth) 442 m_machine.SetVideoCaptureWidth(newDisplayData.m_iVideoCaptureFrameWidth); 443 /* Store video capture frame height: */ 444 if (newDisplayData.m_iVideoCaptureFrameHeight != oldDisplayData.m_iVideoCaptureFrameHeight) 445 m_machine.SetVideoCaptureHeight(newDisplayData.m_iVideoCaptureFrameHeight); 446 /* Store video capture frame rate: */ 447 if (newDisplayData.m_iVideoCaptureFrameRate != oldDisplayData.m_iVideoCaptureFrameRate) 448 m_machine.SetVideoCaptureFPS(newDisplayData.m_iVideoCaptureFrameRate); 449 /* Store video capture frame bit rate: */ 450 if (newDisplayData.m_iVideoCaptureBitRate != oldDisplayData.m_iVideoCaptureBitRate) 451 m_machine.SetVideoCaptureRate(newDisplayData.m_iVideoCaptureBitRate); 452 /* Store video capture recording screens: */ 453 if (newDisplayData.m_screens != oldDisplayData.m_screens) 454 m_machine.SetVideoCaptureScreens(newDisplayData.m_screens); 455 /* Store whether video capture is enabled: */ 456 if (newDisplayData.m_fVideoCaptureEnabled != oldDisplayData.m_fVideoCaptureEnabled) 457 m_machine.SetVideoCaptureEnabled(newDisplayData.m_fVideoCaptureEnabled); 425 458 } 426 459 } 460 /* Store new 'Video Capture' data for offline case: */ 427 461 else 428 462 { 429 /* For 'offline' and 'saved' states the order is irrelevant: */ 430 m_machine.SetVideoCaptureEnabled(displayData.m_fVideoCaptureEnabled); 431 m_machine.SetVideoCaptureFile(displayData.m_strVideoCaptureFilePath); 432 m_machine.SetVideoCaptureWidth(displayData.m_iVideoCaptureFrameWidth); 433 m_machine.SetVideoCaptureHeight(displayData.m_iVideoCaptureFrameHeight); 434 m_machine.SetVideoCaptureFPS(displayData.m_iVideoCaptureFrameRate); 435 m_machine.SetVideoCaptureRate(displayData.m_iVideoCaptureBitRate); 436 m_machine.SetVideoCaptureScreens(displayData.m_screens); 463 // For 'offline', 'powered off' and 'saved' states the order is irrelevant. 464 /* Store whether video capture is enabled: */ 465 if (newDisplayData.m_fVideoCaptureEnabled != oldDisplayData.m_fVideoCaptureEnabled) 466 m_machine.SetVideoCaptureEnabled(newDisplayData.m_fVideoCaptureEnabled); 467 /* Store video capture file path: */ 468 if (newDisplayData.m_strVideoCaptureFilePath != oldDisplayData.m_strVideoCaptureFilePath) 469 m_machine.SetVideoCaptureFile(newDisplayData.m_strVideoCaptureFilePath); 470 /* Store video capture frame width: */ 471 if (newDisplayData.m_iVideoCaptureFrameWidth != oldDisplayData.m_iVideoCaptureFrameWidth) 472 m_machine.SetVideoCaptureWidth(newDisplayData.m_iVideoCaptureFrameWidth); 473 /* Store video capture frame height: */ 474 if (newDisplayData.m_iVideoCaptureFrameHeight != oldDisplayData.m_iVideoCaptureFrameHeight) 475 m_machine.SetVideoCaptureHeight(newDisplayData.m_iVideoCaptureFrameHeight); 476 /* Store video capture frame rate: */ 477 if (newDisplayData.m_iVideoCaptureFrameRate != oldDisplayData.m_iVideoCaptureFrameRate) 478 m_machine.SetVideoCaptureFPS(newDisplayData.m_iVideoCaptureFrameRate); 479 /* Store video capture frame bit rate: */ 480 if (newDisplayData.m_iVideoCaptureBitRate != oldDisplayData.m_iVideoCaptureBitRate) 481 m_machine.SetVideoCaptureRate(newDisplayData.m_iVideoCaptureBitRate); 482 /* Store video capture recording screens: */ 483 if (newDisplayData.m_screens != oldDisplayData.m_screens) 484 m_machine.SetVideoCaptureScreens(newDisplayData.m_screens); 437 485 } 438 486 } … … 633 681 void UIMachineSettingsDisplay::polishPage() 634 682 { 635 /* Get system data from cache: */683 /* Get system data from the cache: */ 636 684 const UIDataSettingsMachineDisplay &displayData = m_pCache->base(); 637 685
Note:
See TracChangeset
for help on using the changeset viewer.