summaryrefslogtreecommitdiff
path: root/src/yuzu/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/main.h')
-rw-r--r--src/yuzu/main.h51
1 files changed, 41 insertions, 10 deletions
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 0f61abc7a..2cfb96257 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -37,6 +37,8 @@ class QLabel;
class MultiplayerState;
class QPushButton;
class QProgressDialog;
+class QSlider;
+class QHBoxLayout;
class WaitTreeWidget;
enum class GameListOpenTarget;
enum class GameListRemoveTarget;
@@ -45,7 +47,11 @@ enum class DumpRomFSTarget;
enum class InstalledEntryType;
class GameListPlaceholder;
+class QtAmiiboSettingsDialog;
+class QtControllerSelectorDialog;
+class QtProfileSelectionDialog;
class QtSoftwareKeyboardDialog;
+class QtNXWebEngineView;
enum class StartGameType {
Normal, // Can use custom configuration
@@ -63,6 +69,7 @@ struct ControllerParameters;
struct InlineAppearParameters;
struct InlineTextParameters;
struct KeyboardInitializeParameters;
+struct ProfileSelectParameters;
} // namespace Core::Frontend
namespace DiscordRPC {
@@ -86,9 +93,9 @@ enum class SwkbdReplyType : u32;
enum class WebExitReason : u32;
} // namespace Service::AM::Applets
-namespace Service::NFP {
-class NfpDevice;
-} // namespace Service::NFP
+namespace Service::NFC {
+class NfcDevice;
+} // namespace Service::NFC
namespace Ui {
class MainWindow;
@@ -111,6 +118,10 @@ enum class ReinitializeKeyBehavior {
Warning,
};
+namespace VkDeviceInfo {
+class Record;
+}
+
class GMainWindow : public QMainWindow {
Q_OBJECT
@@ -159,7 +170,7 @@ signals:
void AmiiboSettingsFinished(bool is_success, const std::string& name);
- void ControllerSelectorReconfigureFinished();
+ void ControllerSelectorReconfigureFinished(bool is_success);
void ErrorDisplayFinished();
@@ -181,9 +192,11 @@ public slots:
void OnExit();
void OnSaveConfig();
void AmiiboSettingsShowDialog(const Core::Frontend::CabinetParameters& parameters,
- std::shared_ptr<Service::NFP::NfpDevice> nfp_device);
+ std::shared_ptr<Service::NFC::NfcDevice> nfp_device);
+ void AmiiboSettingsRequestExit();
void ControllerSelectorReconfigureControllers(
const Core::Frontend::ControllerParameters& parameters);
+ void ControllerSelectorRequestExit();
void SoftwareKeyboardInitialize(
bool is_inline, Core::Frontend::KeyboardInitializeParameters initialize_parameters);
void SoftwareKeyboardShowNormal();
@@ -194,15 +207,19 @@ public slots:
void SoftwareKeyboardInlineTextChanged(Core::Frontend::InlineTextParameters text_parameters);
void SoftwareKeyboardExit();
void ErrorDisplayDisplayError(QString error_code, QString error_text);
- void ProfileSelectorSelectProfile();
+ void ErrorDisplayRequestExit();
+ void ProfileSelectorSelectProfile(const Core::Frontend::ProfileSelectParameters& parameters);
+ void ProfileSelectorRequestExit();
void WebBrowserOpenWebPage(const std::string& main_url, const std::string& additional_args,
bool is_local);
+ void WebBrowserRequestExit();
void OnAppFocusStateChanged(Qt::ApplicationState state);
void OnTasStateChanged();
private:
/// Updates an action's shortcut and text to reflect an updated hotkey from the hotkey registry.
- void LinkActionShortcut(QAction* action, const QString& action_name);
+ void LinkActionShortcut(QAction* action, const QString& action_name,
+ const bool tas_allowed = false);
void RegisterMetaTypes();
@@ -231,7 +248,7 @@ private:
void SetDiscordEnabled(bool state);
void LoadAmiibo(const QString& filename);
- bool SelectAndSetCurrentUser();
+ bool SelectAndSetCurrentUser(const Core::Frontend::ProfileSelectParameters& parameters);
/**
* Stores the filename in the recently loaded files list.
@@ -312,6 +329,9 @@ private slots:
void OnMenuRecentFile();
void OnConfigure();
void OnConfigureTas();
+ void OnDecreaseVolume();
+ void OnIncreaseVolume();
+ void OnMute();
void OnTasStartStop();
void OnTasRecord();
void OnTasReset();
@@ -354,6 +374,7 @@ private:
void RemoveVulkanDriverPipelineCache(u64 program_id);
void RemoveAllTransferableShaderCaches(u64 program_id);
void RemoveCustomConfiguration(u64 program_id, const std::string& game_path);
+ void RemoveCacheStorage(u64 program_id);
std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id);
InstallResult InstallNSPXCI(const QString& filename);
InstallResult InstallNCA(const QString& filename);
@@ -364,6 +385,7 @@ private:
void UpdateAPIText();
void UpdateFilterText();
void UpdateAAText();
+ void UpdateVolumeUI();
void UpdateStatusBar();
void UpdateGPUAccuracyButton();
void UpdateStatusButtons();
@@ -376,6 +398,7 @@ private:
void LoadTranslation();
void OpenPerGameConfiguration(u64 title_id, const std::string& file_name);
bool CheckDarkMode();
+ bool CheckSystemArchiveDecryption();
QString GetTasStateDescription() const;
bool CreateShortcut(const std::string& shortcut_path, const std::string& title,
@@ -399,6 +422,8 @@ private:
GameListPlaceholder* game_list_placeholder;
+ std::vector<VkDeviceInfo::Record> vk_device_records;
+
// Status bar elements
QLabel* message_label = nullptr;
QLabel* shader_building_label = nullptr;
@@ -412,6 +437,9 @@ private:
QPushButton* dock_status_button = nullptr;
QPushButton* filter_status_button = nullptr;
QPushButton* aa_status_button = nullptr;
+ QPushButton* volume_button = nullptr;
+ QWidget* volume_popup = nullptr;
+ QSlider* volume_slider = nullptr;
QTimer status_bar_update_timer;
std::unique_ptr<Config> config;
@@ -457,7 +485,12 @@ private:
QString last_filename_booted;
// Applets
+ QtAmiiboSettingsDialog* cabinet_applet = nullptr;
+ QtControllerSelectorDialog* controller_applet = nullptr;
+ QtProfileSelectionDialog* profile_select_applet = nullptr;
+ QDialog* error_applet = nullptr;
QtSoftwareKeyboardDialog* software_keyboard = nullptr;
+ QtNXWebEngineView* web_applet = nullptr;
// True if amiibo file select is visible
bool is_amiibo_file_select_active{};
@@ -471,8 +504,6 @@ private:
#ifdef __unix__
QSocketNotifier* sig_interrupt_notifier;
static std::array<int, 3> sig_interrupt_fds;
-
- QDBusObjectPath wake_lock{};
#endif
protected: