MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / EmulationSettingsWidget

Method EmulationSettingsWidget

pcsx2-qt/Settings/EmulationSettingsWidget.cpp:20–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18static constexpr u32 DEFAULT_FRAME_LATENCY = 2;
19
20EmulationSettingsWidget::EmulationSettingsWidget(SettingsWindow* settings_dialog, QWidget* parent)
21 : SettingsWidget(settings_dialog, parent)
22{
23 SettingsInterface* sif = dialog()->getSettingsInterface();
24
25 setupTab(m_ui);
26
27 initializeSpeedCombo(m_ui.normalSpeed, "Framerate", "NominalScalar", 1.0f);
28 initializeSpeedCombo(m_ui.fastForwardSpeed, "Framerate", "TurboScalar", 2.0f);
29 initializeSpeedCombo(m_ui.slowMotionSpeed, "Framerate", "SlomoScalar", 0.5f);
30
31 SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.maxFrameLatency, "EmuCore/GS", "VsyncQueueSize", DEFAULT_FRAME_LATENCY);
32 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.vsync, "EmuCore/GS", "VsyncEnable", false);
33 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.syncToHostRefreshRate, "EmuCore/GS", "SyncToHostRefreshRate", false);
34 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.useVSyncForTiming, "EmuCore/GS", "UseVSyncForTiming", false);
35 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.skipPresentingDuplicateFrames, "EmuCore/GS", "SkipDuplicateFrames", true);
36 connect(m_ui.optimalFramePacing, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onOptimalFramePacingChanged);
37 connect(m_ui.vsync, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::updateUseVSyncForTimingEnabled);
38 connect(m_ui.syncToHostRefreshRate, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::updateUseVSyncForTimingEnabled);
39 m_ui.optimalFramePacing->setTristate(dialog()->isPerGameSettings());
40
41 SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.eeCycleSkipping, "EmuCore/Speedhacks", "EECycleSkip", DEFAULT_EE_CYCLE_SKIP);
42
43 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.MTVU, "EmuCore/Speedhacks", "vuThread", false);
44 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.threadPinning, "EmuCore", "EnableThreadPinning", false);
45 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.fastCDVD, "EmuCore/Speedhacks", "fastCDVD", false);
46 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.precacheCDVD, "EmuCore", "CdvdPrecache", false);
47
48 if (dialog()->isPerGameSettings())
49 {
50 SettingWidgetBinder::DateTimeKeys rtc_keys;
51 rtc_keys.year = "RtcYear";
52 rtc_keys.month = "RtcMonth";
53 rtc_keys.day = "RtcDay";
54 rtc_keys.hour = "RtcHour";
55 rtc_keys.minute = "RtcMinute";
56 rtc_keys.second = "RtcSecond";
57
58 SettingWidgetBinder::BindWidgetToDateTimeSetting(sif, m_ui.rtcDateTime, "EmuCore", rtc_keys);
59 m_ui.rtcDateTime->setDateRange(QDate(2000, 1, 1), QDate(2099, 12, 31));
60 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.manuallySetRealTimeClock, "EmuCore", "ManuallySetRealTimeClock", false);
61 connect(m_ui.manuallySetRealTimeClock, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onManuallySetRealTimeClockChanged);
62 SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.rtcUseSystemLocaleFormat, "EmuCore", "UseSystemLocaleFormat", false);
63 connect(m_ui.rtcUseSystemLocaleFormat, &QCheckBox::checkStateChanged, this, &EmulationSettingsWidget::onUseSystemLocaleFormatChanged);
64 EmulationSettingsWidget::onManuallySetRealTimeClockChanged();
65 EmulationSettingsWidget::onUseSystemLocaleFormatChanged();
66
67 m_ui.eeCycleRate->insertItem(0,
68 tr("Use Global Setting [%1]")
69 .arg(m_ui.eeCycleRate->itemText(
70 std::clamp(Host::GetBaseIntSettingValue("EmuCore/Speedhacks", "EECycleRate", DEFAULT_EE_CYCLE_RATE) - MINIMUM_EE_CYCLE_RATE,
71 0, MAXIMUM_EE_CYCLE_RATE - MINIMUM_EE_CYCLE_RATE))));
72
73 // Disable cheats, use the cheats panel instead
74 m_ui.systemSettingsLayout->removeWidget(m_ui.cheats);
75 m_ui.cheats->hide();
76 }
77 else

Callers

nothing calls this directly

Calls 11

BindWidgetToIntSettingFunction · 0.85
BindWidgetToBoolSettingFunction · 0.85
getSettingsInterfaceMethod · 0.80
isPerGameSettingsMethod · 0.80
argMethod · 0.80
setIntSettingValueMethod · 0.80
registerWidgetHelpMethod · 0.80
clampFunction · 0.50
getIntValueMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected