// SPDX-FileCopyrightText: 2002-2024 PCSX2 Dev Team // SPDX-License-Identifier: GPL-3.0+ #pragma once #include "ui_AudioSettingsWidget.h" #include "common/Pcsx2Defs.h" #include enum class AudioBackend : u8; enum class AudioExpansionMode : u8; class SettingsWindow; class AudioSettingsWidget : public QWidget { Q_OBJECT public: AudioSettingsWidget(SettingsWindow* dialog, QWidget* parent); ~AudioSettingsWidget(); private Q_SLOTS: void onExpansionModeChanged(); void onSyncModeChanged(); void updateDriverNames(); void updateDeviceNames(); void updateLatencyLabel(); void updateVolumeLabel(); void onMinimalOutputLatencyChanged(); void onOutputVolumeChanged(int new_value); void onFastForwardVolumeChanged(int new_value); void onOutputMutedChanged(int new_state); void onExpansionSettingsClicked(); void onStretchSettingsClicked(); private: AudioBackend getEffectiveBackend() const; AudioExpansionMode getEffectiveExpansionMode() const; u32 getEffectiveExpansionBlockSize() const; void resetVolume(bool fast_forward); Ui::AudioSettingsWidget m_ui; SettingsWindow* m_dialog; u32 m_output_device_latency = 0; };