Add SMBus Sleep Mode settings page

master
Adam Honse 3 weeks ago
parent 0691f40588
commit 056b383536

@ -239,24 +239,28 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) :
ui->TextDetectionDelay->setValue(0); ui->TextDetectionDelay->setValue(0);
} }
#if defined(_MACOSX_X86_X64)
/*---------------------------------------------------------*\ /*---------------------------------------------------------*\
| Load drivers settings (Windows only or Mac) | | Load drivers settings (MacOS only) |
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
#if defined(WIN32) || defined(_MACOSX_X86_X64)
json drivers_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("Drivers"); json drivers_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("Drivers");
ui->CheckboxSharedSMBusAccess->hide();
ui->LabelSMBusSleepMode->hide();
ui->ComboBoxSMBusSleepMode->hide();
if(drivers_settings.contains("amd_smbus_reduce_cpu")) if(drivers_settings.contains("amd_smbus_reduce_cpu"))
{ {
ui->CheckboxAMDSMBusReduceCPU->setChecked(drivers_settings["amd_smbus_reduce_cpu"]); ui->CheckboxAMDSMBusReduceCPU->setChecked(drivers_settings["amd_smbus_reduce_cpu"]);
} }
#else #elif defined(_WIN32)
ui->DriversSettingsLabel->hide();
ui->CheckboxAMDSMBusReduceCPU->hide();
#endif
/*---------------------------------------------------------*\ /*---------------------------------------------------------*\
| Load drivers settings (Windows only) | | Load drivers settings (Windows only) |
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
#ifdef _WIN32 json drivers_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("Drivers");
ui->CheckboxAMDSMBusReduceCPU->hide();
if(drivers_settings.contains("shared_smbus_access")) if(drivers_settings.contains("shared_smbus_access"))
{ {
ui->CheckboxSharedSMBusAccess->setChecked(drivers_settings["shared_smbus_access"]); ui->CheckboxSharedSMBusAccess->setChecked(drivers_settings["shared_smbus_access"]);
@ -265,10 +269,29 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) :
{ {
ui->CheckboxSharedSMBusAccess->setChecked(true); ui->CheckboxSharedSMBusAccess->setChecked(true);
} }
ui->ComboBoxSMBusSleepMode->addItem("Always Busy");
ui->ComboBoxSMBusSleepMode->addItem("Short Busy");
ui->ComboBoxSMBusSleepMode->addItem("Always Sleep");
if(drivers_settings.contains("smbus_sleep_mode") && (drivers_settings["smbus_sleep_mode"] <= 2))
{
ui->ComboBoxSMBusSleepMode->setCurrentIndex(drivers_settings["smbus_sleep_mode"]);
}
else
{
ui->ComboBoxSMBusSleepMode->setCurrentIndex(2);
}
#else #else
/*---------------------------------------------------------*\
| Hide all drivers settings otherwise |
\*---------------------------------------------------------*/
ui->DriversSettingsLabel->hide();
ui->CheckboxAMDSMBusReduceCPU->hide();
ui->CheckboxSharedSMBusAccess->hide(); ui->CheckboxSharedSMBusAccess->hide();
ui->LabelSMBusSleepMode->hide();
ui->ComboBoxSMBusSleepMode->hide();
#endif #endif
UpdateProfiles(); UpdateProfiles();
/*---------------------------------------------------------*\ /*---------------------------------------------------------*\
@ -1072,6 +1095,14 @@ void OpenRGBSettingsPage::on_CheckboxSharedSMBusAccess_clicked()
SaveSettings(); SaveSettings();
} }
void OpenRGBSettingsPage::on_ComboBoxSMBusSleepMode_currentIndexChanged(int index)
{
json drivers_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("Drivers");
drivers_settings["smbus_sleep_mode"] = index;
ResourceManager::get()->GetSettingsManager()->SetSettings("Drivers", drivers_settings);
SaveSettings();
}
void OpenRGBSettingsPage::on_CheckboxDisableKeyExpansion_clicked() void OpenRGBSettingsPage::on_CheckboxDisableKeyExpansion_clicked()
{ {
json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface");

@ -82,6 +82,7 @@ private slots:
void on_TextDetectionDelay_valueChanged(int); void on_TextDetectionDelay_valueChanged(int);
void on_CheckboxAMDSMBusReduceCPU_clicked(); void on_CheckboxAMDSMBusReduceCPU_clicked();
void on_CheckboxSharedSMBusAccess_clicked(); void on_CheckboxSharedSMBusAccess_clicked();
void on_ComboBoxSMBusSleepMode_currentIndexChanged(int index);
void on_CheckboxSetOnExit_clicked(bool checked); void on_CheckboxSetOnExit_clicked(bool checked);
void on_ComboBoxExitProfile_currentTextChanged(const QString exit_profile_name); void on_ComboBoxExitProfile_currentTextChanged(const QString exit_profile_name);

@ -30,47 +30,60 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>-328</y> <y>-321</y>
<width>508</width> <width>508</width>
<height>1105</height> <height>1137</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="15" column="0"> <item row="16" column="0">
<widget class="QCheckBox" name="CheckboxLogConsole"> <widget class="QLabel" name="DetectionSettingsLabel">
<property name="text"> <property name="text">
<string>Enable Log Console (restart required)</string> <string>Detection Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="36" column="0"> <item row="33" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartProfile"> <widget class="QCheckBox" name="CheckboxAutoStartSetServerHost">
<property name="text"> <property name="text">
<string>Load Profile</string> <string>Set Server Host</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="0"> <item row="34" column="1">
<widget class="QCheckBox" name="CheckboxDisableKeyExpansion"> <widget class="QSpinBox" name="TextServerPort">
<property name="text"> <property name="minimum">
<string>Disable Key Expansion in Device View</string> <number>1</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>6742</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="21" column="0"> <item row="2" column="0">
<widget class="QCheckBox" name="CheckboxSharedSMBusAccess"> <widget class="QLabel" name="UserInterfaceSettingsLabel">
<property name="text"> <property name="text">
<string>Shared SMBus Access (restart required)</string> <string>User Interface Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="40" column="1">
<widget class="QComboBox" name="ComboBoxLanguage"/> <widget class="QComboBox" name="ComboBoxExitProfile"/>
</item> </item>
<item row="40" column="0"> <item row="4" column="0">
<widget class="QLabel" name="AutoStartStatusLabel"> <widget class="QLabel" name="ThemeLabel">
<property name="text"> <property name="text">
<string>Start at Login Status</string> <string>Theme (restart required)</string>
</property>
</widget>
</item>
<item row="38" column="0">
<widget class="QCheckBox" name="CheckboxSetOnSuspend">
<property name="text">
<string>Set Profile on Suspend</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -81,133 +94,154 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="12" column="0"> <item row="3" column="1">
<widget class="QLabel" name="HexFormatLabel"> <widget class="QComboBox" name="ComboBoxLanguage"/>
</item>
<item row="23" column="0">
<widget class="QLabel" name="ServerSettingsLabel">
<property name="text"> <property name="text">
<string>Hex Format</string> <string>Server Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="11" column="0"> <item row="14" column="0">
<widget class="QCheckBox" name="CheckboxShowLEDView"> <widget class="QCheckBox" name="CheckboxLogFile">
<property name="text"> <property name="text">
<string>Show LED View by Default</string> <string>Enable Log File (restart required)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="24" column="0"> <item row="19" column="0">
<widget class="QCheckBox" name="CheckboxLegacyWorkaround"> <widget class="QLabel" name="DriversSettingsLabel">
<property name="text"> <property name="text">
<string>Legacy Workaround</string> <string>Drivers Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="38" column="1"> <item row="3" column="0">
<widget class="QComboBox" name="ComboBoxResumeProfile"/> <widget class="QLabel" name="LabelLanguage">
<property name="text">
<string>Language</string>
</property>
</widget>
</item> </item>
<item row="4" column="0"> <item row="25" column="0">
<widget class="QLabel" name="ThemeLabel"> <widget class="QCheckBox" name="CheckboxLegacyWorkaround">
<property name="text"> <property name="text">
<string>Theme (restart required)</string> <string>Legacy Workaround</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="12" column="1"> <item row="18" column="1">
<widget class="QComboBox" name="ComboBoxHexFormat"/> <widget class="QSpinBox" name="TextDetectionDelay">
<property name="maximum">
<number>2147483647</number>
</property>
</widget>
</item> </item>
<item row="16" column="0"> <item row="41" column="0">
<widget class="QLabel" name="DetectionSettingsLabel"> <widget class="QLabel" name="AutoStartStatusLabel">
<property name="text"> <property name="text">
<string>Detection Settings:</string> <string>Start at Login Status</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="23" column="0"> <item row="5" column="0">
<widget class="QCheckBox" name="CheckboxAllDevices"> <widget class="QCheckBox" name="CheckboxMinimizeOnClose">
<property name="text"> <property name="text">
<string>Serve All Devices (Including those from client connections)</string> <string>Minimize on Close</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="32" column="1"> <item row="35" column="1">
<widget class="QLineEdit" name="TextServerHost"/> <widget class="QLineEdit" name="TextClientHost"/>
</item> </item>
<item row="20" column="0"> <item row="21" column="0">
<widget class="QCheckBox" name="CheckboxAMDSMBusReduceCPU"> <widget class="QCheckBox" name="CheckboxSharedSMBusAccess">
<property name="text"> <property name="text">
<string>AMD SMBus: Reduce CPU Usage (restart required)</string> <string>Shared SMBus Access (restart required)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="37" column="1"> <item row="6" column="0">
<widget class="QComboBox" name="ComboBoxSuspendProfile"/> <widget class="QCheckBox" name="CheckboxTrayIconGreyscale">
</item>
<item row="25" column="0">
<widget class="QLabel" name="AutoStartLabel">
<property name="text"> <property name="text">
<string>Start at Login Settings:</string> <string>Greyscale Tray Icon</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="32" column="0"> <item row="15" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartSetServerHost"> <widget class="QCheckBox" name="CheckboxLogConsole">
<property name="text"> <property name="text">
<string>Set Server Host</string> <string>Enable Log Console (restart required)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="34" column="0">
<widget class="QCheckBox" name="CheckboxTrayIconGreyscale"> <widget class="QCheckBox" name="CheckboxAutoStartSetServerPort">
<property name="text"> <property name="text">
<string>Greyscale Tray Icon</string> <string>Set Server Port</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="39" column="1">
<widget class="QComboBox" name="ComboBoxTheme"/> <widget class="QComboBox" name="ComboBoxResumeProfile"/>
</item> </item>
<item row="30" column="0"> <item row="26" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartMinimized"> <widget class="QLabel" name="AutoStartLabel">
<property name="text"> <property name="text">
<string>Start Minimized</string> <string>Start at Login Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="36" column="1"> <item row="35" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartClient">
<property name="text">
<string>Start Client</string>
</property>
</widget>
</item>
<item row="37" column="1">
<widget class="QComboBox" name="ComboBoxAutoStartProfile"/> <widget class="QComboBox" name="ComboBoxAutoStartProfile"/>
</item> </item>
<item row="26" column="0"> <item row="37" column="0">
<widget class="QCheckBox" name="CheckboxAutoStart"> <widget class="QCheckBox" name="CheckboxAutoStartProfile">
<property name="text"> <property name="text">
<string>Start at Login</string> <string>Load Profile</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="39" column="1"> <item row="33" column="1">
<widget class="QComboBox" name="ComboBoxExitProfile"/> <widget class="QLineEdit" name="TextServerHost"/>
</item> </item>
<item row="17" column="0"> <item row="40" column="0">
<widget class="QCheckBox" name="CheckboxHIDSafeMode"> <widget class="QCheckBox" name="CheckboxSetOnExit">
<property name="text"> <property name="text">
<string>HID Safe Mode</string> <string>Set Profile on Exit</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="34" column="0"> <item row="12" column="1">
<widget class="QCheckBox" name="CheckboxAutoStartClient"> <widget class="QComboBox" name="ComboBoxHexFormat"/>
</item>
<item row="12" column="0">
<widget class="QLabel" name="HexFormatLabel">
<property name="text"> <property name="text">
<string>Start Client</string> <string>Hex Format</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="27" column="0">
<widget class="QLabel" name="UserInterfaceSettingsLabel"> <widget class="QCheckBox" name="CheckboxAutoStart">
<property name="text"> <property name="text">
<string>User Interface Settings:</string> <string>Start at Login</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="41" column="0"> <item row="36" column="1">
<widget class="QLineEdit" name="TextCustomArgs"/>
</item>
<item row="42" column="0">
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Orientation::Vertical</enum> <enum>Qt::Orientation::Vertical</enum>
@ -223,136 +257,112 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="35" column="1"> <item row="8" column="0">
<widget class="QLineEdit" name="TextCustomArgs"/> <widget class="QCheckBox" name="CheckboxSaveGeometry">
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="CheckboxMinimizeOnClose">
<property name="text">
<string>Minimize on Close</string>
</property>
</widget>
</item>
<item row="22" column="0">
<widget class="QLabel" name="ServerSettingsLabel">
<property name="text"> <property name="text">
<string>Server Settings:</string> <string>Save Geometry on Close</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="0"> <item row="20" column="0">
<widget class="QCheckBox" name="CheckboxSaveGeometry"> <widget class="QCheckBox" name="CheckboxAMDSMBusReduceCPU">
<property name="text"> <property name="text">
<string>Save Geometry on Close</string> <string>AMD SMBus: Reduce CPU Usage (restart required)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="31" column="0"> <item row="32" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartServer"> <widget class="QCheckBox" name="CheckboxAutoStartServer">
<property name="text"> <property name="text">
<string>Start Server</string> <string>Start Server</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="33" column="0"> <item row="17" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartSetServerPort"> <widget class="QCheckBox" name="CheckboxHIDSafeMode">
<property name="text"> <property name="text">
<string>Set Server Port</string> <string>HID Safe Mode</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="37" column="0"> <item row="18" column="0">
<widget class="QCheckBox" name="CheckboxSetOnSuspend"> <widget class="QLabel" name="DetectionDelayLabel">
<property name="text"> <property name="text">
<string>Set Profile on Suspend</string> <string>Initial Detection Delay (milliseconds, 0 to disable)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="0"> <item row="10" column="0">
<widget class="QCheckBox" name="CheckboxRunZoneChecks"> <widget class="QCheckBox" name="CheckboxDisableKeyExpansion">
<property name="text"> <property name="text">
<string>Run Zone Checks on Rescan</string> <string>Disable Key Expansion in Device View</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="13" column="0"> <item row="24" column="0">
<widget class="QLabel" name="LogManagerSettingsLabel"> <widget class="QCheckBox" name="CheckboxAllDevices">
<property name="text"> <property name="text">
<string>Log Manager Settings:</string> <string>Serve All Devices (Including those from client connections)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="14" column="0"> <item row="4" column="1">
<widget class="QCheckBox" name="CheckboxLogFile"> <widget class="QComboBox" name="ComboBoxTheme"/>
</item>
<item row="31" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartMinimized">
<property name="text"> <property name="text">
<string>Enable Log File (restart required)</string> <string>Start Minimized</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="33" column="1"> <item row="11" column="0">
<widget class="QSpinBox" name="TextServerPort"> <widget class="QCheckBox" name="CheckboxShowLEDView">
<property name="minimum"> <property name="text">
<number>1</number> <string>Show LED View by Default</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>6742</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="38" column="0"> <item row="38" column="1">
<widget class="QCheckBox" name="CheckboxSetOnResume"> <widget class="QComboBox" name="ComboBoxSuspendProfile"/>
</item>
<item row="13" column="0">
<widget class="QLabel" name="LogManagerSettingsLabel">
<property name="text"> <property name="text">
<string>Set Profile on Resume</string> <string>Log Manager Settings:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="39" column="0">
<widget class="QLabel" name="LabelLanguage"> <widget class="QCheckBox" name="CheckboxSetOnResume">
<property name="text"> <property name="text">
<string>Language</string> <string>Set Profile on Resume</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="19" column="0"> <item row="9" column="0">
<widget class="QLabel" name="DriversSettingsLabel"> <widget class="QCheckBox" name="CheckboxRunZoneChecks">
<property name="text"> <property name="text">
<string>Drivers Settings:</string> <string>Run Zone Checks on Rescan</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="35" column="0"> <item row="36" column="0">
<widget class="QCheckBox" name="CheckboxAutoStartCustom"> <widget class="QCheckBox" name="CheckboxAutoStartCustom">
<property name="text"> <property name="text">
<string>Custom Arguments</string> <string>Custom Arguments</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="34" column="1"> <item row="22" column="0">
<widget class="QLineEdit" name="TextClientHost"/> <widget class="QLabel" name="LabelSMBusSleepMode">
</item>
<item row="39" column="0">
<widget class="QCheckBox" name="CheckboxSetOnExit">
<property name="text">
<string>Set Profile on Exit</string>
</property>
</widget>
</item>
<item row="18" column="0">
<widget class="QLabel" name="DetectionDelayLabel">
<property name="text"> <property name="text">
<string>Initial Detection Delay (milliseconds, 0 to disable)</string> <string>SMBus Sleep Mode (restart required)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="18" column="1"> <item row="22" column="1">
<widget class="QSpinBox" name="TextDetectionDelay"> <widget class="QComboBox" name="ComboBoxSMBusSleepMode"/>
<property name="maximum">
<number>2147483647</number>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>

Loading…
Cancel
Save