From 000ca15c06bebb1bf6d1edf872162621573c7382 Mon Sep 17 00:00:00 2001 From: Odizinne Date: Fri, 8 Nov 2024 19:32:26 +0100 Subject: [PATCH] added skip bigpicture intro --- BigPictureTV/BigPictureTV.cpp | 4 ++++ BigPictureTV/BigPictureTV.h | 3 +-- Configurator/Configurator.cpp | 4 ++-- Configurator/Configurator.ui | 43 +++++++++++++++++++++++++++-------- Utils/Utils.cpp | 27 ++++++++++++++++++++++ Utils/Utils.h | 1 + 6 files changed, 68 insertions(+), 14 deletions(-) diff --git a/BigPictureTV/BigPictureTV.cpp b/BigPictureTV/BigPictureTV.cpp index 1f034e5..3e9c71b 100644 --- a/BigPictureTV/BigPictureTV.cpp +++ b/BigPictureTV/BigPictureTV.cpp @@ -81,6 +81,9 @@ void BigPictureTV::checkWindowTitle() gamemodeActive = true; handleActions(false); handleMonitorChanges(false, disable_monitor_switch); + if (skip_intro) { + Utils::skipBigPictureIntro(); + } handleAudioChanges(false, disable_audio_switch); settings.setValue("gamemode", gamemodeActive); } else if (!isRunning && gamemodeActive) { @@ -201,6 +204,7 @@ void BigPictureTV::loadSettings() disable_nightlight_action = settings.value("disable_nightlight_action").toBool(); target_window_mode = settings.value("target_window_mode").toInt(); custom_window_title = settings.value("custom_window_title").toString(); + skip_intro = settings.value("skip_intro").toBool(); } void BigPictureTV::showSettings() diff --git a/BigPictureTV/BigPictureTV.h b/BigPictureTV/BigPictureTV.h index 56cec9e..2eaac4b 100644 --- a/BigPictureTV/BigPictureTV.h +++ b/BigPictureTV/BigPictureTV.h @@ -58,8 +58,7 @@ private slots: bool disable_monitor_switch; bool disable_nightlight_action; bool target_window_mode; - bool autodetect_HDMI; - bool autodetect_desktop; + bool skip_intro; QSettings settings; bool gamemodeActive; }; diff --git a/Configurator/Configurator.cpp b/Configurator/Configurator.cpp index f01ba2d..83f1275 100644 --- a/Configurator/Configurator.cpp +++ b/Configurator/Configurator.cpp @@ -103,8 +103,6 @@ void Configurator::onTargetWindowComboBoxIndexChanged(int index) } } - - void Configurator::createDefaultSettings() { ui->checkrateSpinBox->setValue(1000); @@ -135,6 +133,7 @@ void Configurator::loadSettings() ui->disableMonitorCheckBox->setChecked(settings.value("disable_monitor_switch", false).toBool()); ui->customWindowLineEdit->setText(settings.value("custom_window_title", "").toString()); ui->targetWindowComboBox->setCurrentIndex(settings.value("target_window_mode", 0).toInt()); + ui->skipIntroCheckBox->setChecked(settings.value("skip_intro", false).toBool()); toggleAudioSettings(!ui->disableAudioCheckBox->isChecked()); toggleMonitorSettings(!ui->disableMonitorCheckBox->isChecked()); @@ -161,6 +160,7 @@ void Configurator::saveSettings() settings.setValue("disable_nightlight_action", ui->disableNightLightCheckBox->isChecked()); settings.setValue("target_window_mode", ui->targetWindowComboBox->currentIndex()); settings.setValue("custom_window_title", ui->customWindowLineEdit->text()); + settings.setValue("skip_intro", ui->skipIntroCheckBox->isChecked()); } void Configurator::toggleAudioSettings(bool state) diff --git a/Configurator/Configurator.ui b/Configurator/Configurator.ui index 1328a87..8062cef 100644 --- a/Configurator/Configurator.ui +++ b/Configurator/Configurator.ui @@ -374,8 +374,21 @@ 6 + + + + + 0 + 25 + + + + Run at startup + + + - + 0 @@ -383,11 +396,11 @@ - Disable monitor switching + Disable audio switching - + @@ -419,7 +432,7 @@ - + @@ -435,8 +448,8 @@ - - + + 0 @@ -444,12 +457,12 @@ - Disable audio switching + Disable monitor switching - - + + 0 @@ -457,7 +470,17 @@ - Run at startup + Skip Big Picture intro + + + + + + + Qt::LayoutDirection::RightToLeft + + + diff --git a/Utils/Utils.cpp b/Utils/Utils.cpp index 03ddf17..4e6b81f 100644 --- a/Utils/Utils.cpp +++ b/Utils/Utils.cpp @@ -1,4 +1,5 @@ #include "Utils.h" +#include "Windows.h" #include #include #include @@ -169,3 +170,29 @@ void Utils::sendMediaKey(WORD keyCode) { ip.ki.dwFlags = KEYEVENTF_KEYUP; SendInput(1, &ip, sizeof(INPUT)); } + +void Utils::skipBigPictureIntro() { + // Define the input event for mouse button down and up + INPUT input[2] = {}; + + // Mouse button down (left click) + input[0].type = INPUT_MOUSE; + input[0].mi.dx = 0; // X coordinate + input[0].mi.dy = 0; // Y coordinate + input[0].mi.mouseData = 0; + input[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; + input[0].mi.time = 0; + input[0].mi.dwExtraInfo = 0; + + // Mouse button up (release left click) + input[1].type = INPUT_MOUSE; + input[1].mi.dx = 0; // X coordinate + input[1].mi.dy = 0; // Y coordinate + input[1].mi.mouseData = 0; + input[1].mi.dwFlags = MOUSEEVENTF_LEFTUP; + input[1].mi.time = 0; + input[1].mi.dwExtraInfo = 0; + + // Send the input events (left down and then left up) + SendInput(2, input, sizeof(INPUT)); +} diff --git a/Utils/Utils.h b/Utils/Utils.h index a70efd2..10fca8a 100644 --- a/Utils/Utils.h +++ b/Utils/Utils.h @@ -17,6 +17,7 @@ namespace Utils { void startDiscord(); void sendMediaKey(WORD keyCode); void setFrameColorBasedOnWindow(QWidget *window, QFrame *frame); + void skipBigPictureIntro(); } #endif // UTILS_H