duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

audiosettingswidget.h (1248B)


      1 // SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <stenzek@gmail.com>
      2 // SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
      3 
      4 #pragma once
      5 
      6 #include "ui_audiosettingswidget.h"
      7 
      8 #include "common/types.h"
      9 
     10 #include <QtWidgets/QWidget>
     11 
     12 enum class AudioBackend : u8;
     13 enum class AudioExpansionMode : u8;
     14 
     15 class SettingsWindow;
     16 
     17 class AudioSettingsWidget : public QWidget
     18 {
     19   Q_OBJECT
     20 
     21 public:
     22   AudioSettingsWidget(SettingsWindow* dialog, QWidget* parent);
     23   ~AudioSettingsWidget();
     24 
     25 private Q_SLOTS:
     26   void onExpansionModeChanged();
     27   void onStretchModeChanged();
     28 
     29   void updateDriverNames();
     30   void updateDeviceNames();
     31   void updateLatencyLabel();
     32   void updateVolumeLabel();
     33   void onMinimalOutputLatencyChecked(Qt::CheckState state);
     34   void onOutputVolumeChanged(int new_value);
     35   void onFastForwardVolumeChanged(int new_value);
     36   void onOutputMutedChanged(int new_state);
     37 
     38   void onExpansionSettingsClicked();
     39   void onStretchSettingsClicked();
     40 
     41 private:
     42   AudioBackend getEffectiveBackend() const;
     43   AudioExpansionMode getEffectiveExpansionMode() const;
     44   u32 getEffectiveExpansionBlockSize() const;
     45   void resetVolume(bool fast_forward);
     46 
     47   Ui::AudioSettingsWidget m_ui;
     48   SettingsWindow* m_dialog;
     49   u32 m_output_device_latency = 0;
     50 };