configure_audio.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <functional>
  5. #include <memory>
  6. #include <vector>
  7. #include <QWidget>
  8. #include "yuzu/configuration/configuration_shared.h"
  9. class QComboBox;
  10. namespace Core {
  11. class System;
  12. }
  13. namespace Ui {
  14. class ConfigureAudio;
  15. }
  16. namespace ConfigurationShared {
  17. class Builder;
  18. }
  19. class ConfigureAudio : public ConfigurationShared::Tab {
  20. public:
  21. explicit ConfigureAudio(const Core::System& system_,
  22. std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group,
  23. const ConfigurationShared::Builder& builder, QWidget* parent = nullptr);
  24. ~ConfigureAudio() override;
  25. void ApplyConfiguration() override;
  26. void SetConfiguration() override;
  27. private:
  28. void changeEvent(QEvent* event) override;
  29. void InitializeAudioSinkComboBox();
  30. void RetranslateUI();
  31. void UpdateAudioDevices(int sink_index);
  32. void SetOutputSinkFromSinkID();
  33. void SetAudioDevicesFromDeviceID();
  34. void Setup(const ConfigurationShared::Builder& builder);
  35. std::unique_ptr<Ui::ConfigureAudio> ui;
  36. const Core::System& system;
  37. std::vector<std::function<void(bool)>> apply_funcs{};
  38. QComboBox* sink_combo_box;
  39. QComboBox* output_device_combo_box;
  40. QComboBox* input_device_combo_box;
  41. };