Skip to content

Commit

Permalink
Merge pull request #5652 from spycrab/qt_audio
Browse files Browse the repository at this point in the history
Qt/Settings: Implement Audio tab
  • Loading branch information
shuffle2 committed Jun 27, 2017
2 parents 9e1977e + ba3df3d commit f1425a0
Show file tree
Hide file tree
Showing 10 changed files with 365 additions and 4 deletions.
1 change: 1 addition & 0 deletions Source/Core/DolphinQt2/CMakeLists.txt
Expand Up @@ -51,6 +51,7 @@ set(SRCS
QtUtils/DoubleClickEventFilter.cpp
QtUtils/ElidedButton.cpp
QtUtils/WindowActivationEventFilter.cpp
Settings/AudioPane.cpp
Settings/GeneralPane.cpp
Settings/InterfacePane.cpp
Settings/PathPane.cpp
Expand Down
11 changes: 11 additions & 0 deletions Source/Core/DolphinQt2/Config/SettingsWindow.cpp
Expand Up @@ -11,8 +11,10 @@
#include <QVBoxLayout>

#include "DolphinQt2/Config/SettingsWindow.h"
#include "DolphinQt2/MainWindow.h"
#include "DolphinQt2/Resources.h"
#include "DolphinQt2/Settings.h"
#include "DolphinQt2/Settings/AudioPane.h"
#include "DolphinQt2/Settings/GeneralPane.h"
#include "DolphinQt2/Settings/InterfacePane.h"
#include "DolphinQt2/Settings/PathPane.h"
Expand Down Expand Up @@ -57,6 +59,14 @@ void SettingsWindow::SetupSettingsWidget()
// Panes initalised here
m_settings_outer->addWidget(new GeneralPane);
m_settings_outer->addWidget(new InterfacePane);

auto* audio_pane = new AudioPane;
connect(this, &SettingsWindow::EmulationStarted,
[audio_pane] { audio_pane->OnEmulationStateChanged(true); });
connect(this, &SettingsWindow::EmulationStopped,
[audio_pane] { audio_pane->OnEmulationStateChanged(false); });
m_settings_outer->addWidget(audio_pane);

m_settings_outer->addWidget(new PathPane);
}

Expand Down Expand Up @@ -85,6 +95,7 @@ void SettingsWindow::MakeCategoryList()

AddCategoryToList(tr("General"), "config");
AddCategoryToList(tr("Interface"), "browse");
AddCategoryToList(tr("Audio"), "play");
AddCategoryToList(tr("Paths"), "browse");
connect(m_categories, &QListWidget::currentItemChanged, this, &SettingsWindow::changePage);
}
Expand Down
4 changes: 4 additions & 0 deletions Source/Core/DolphinQt2/Config/SettingsWindow.h
Expand Up @@ -8,6 +8,7 @@

#include <QDialog>

class MainWindow;
class QGroupBox;
class QListWidget;
class QListWidgetItem;
Expand All @@ -18,6 +19,9 @@ class SettingsWindow final : public QDialog
Q_OBJECT
public:
explicit SettingsWindow(QWidget* parent = nullptr);
signals:
void EmulationStarted();
void EmulationStopped();

public slots:
void changePage(QListWidgetItem* current, QListWidgetItem* previous);
Expand Down
3 changes: 3 additions & 0 deletions Source/Core/DolphinQt2/DolphinQt2.vcxproj
Expand Up @@ -78,6 +78,7 @@
<QtMoc Include="HotkeyScheduler.h" />
<QtMoc Include="InDevelopmentWarning.h" />
<QtMoc Include="Settings\InterfacePane.h" />
<QtMoc Include="Settings\AudioPane.h" />
<QtMoc Include="MainWindow.h" />
<QtMoc Include="MenuBar.h" />
<QtMoc Include="QtUtils\DoubleClickEventFilter.h" />
Expand All @@ -90,6 +91,7 @@
<!--TODO figure out how to get QtMoc to add outputs to ClCompile's inputs...-->
<ItemGroup>
<ClCompile Include="$(QtMocOutPrefix)AboutDialog.cpp" />
<ClCompile Include="$(QtMocOutPrefix)AudioPane.cpp" />
<ClCompile Include="$(QtMocOutPrefix)ControllersWindow.cpp" />
<ClCompile Include="$(QtMocOutPrefix)FilesystemWidget.cpp" />
<ClCompile Include="$(QtMocOutPrefix)WindowActivationEventFilter.cpp" />
Expand Down Expand Up @@ -157,6 +159,7 @@
<ClCompile Include="RenderWidget.cpp" />
<ClCompile Include="Resources.cpp" />
<ClCompile Include="Settings.cpp" />
<ClCompile Include="Settings\AudioPane.cpp" />
<ClCompile Include="Settings\GeneralPane.cpp" />
<ClCompile Include="Settings\InterfacePane.cpp" />
<ClCompile Include="Settings\PathPane.cpp" />
Expand Down
8 changes: 4 additions & 4 deletions Source/Core/DolphinQt2/HotkeyScheduler.cpp
Expand Up @@ -159,18 +159,18 @@ void HotkeyScheduler::Run()
if (IsHotkey(HK_EXIT))
emit ExitHotkey();

auto& settings = Settings::Instance();

// Volume
if (IsHotkey(HK_VOLUME_DOWN))
AudioCommon::DecreaseVolume(3);
settings.DecreaseVolume(3);

if (IsHotkey(HK_VOLUME_UP))
AudioCommon::IncreaseVolume(3);
settings.IncreaseVolume(3);

if (IsHotkey(HK_VOLUME_TOGGLE_MUTE))
AudioCommon::ToggleMuteVolume();

auto& settings = Settings::Instance();

// Wiimote
if (settings.IsBluetoothPassthroughEnabled())
{
Expand Down
5 changes: 5 additions & 0 deletions Source/Core/DolphinQt2/MainWindow.cpp
Expand Up @@ -126,6 +126,11 @@ void MainWindow::CreateComponents()
m_settings_window = new SettingsWindow(this);
m_hotkey_window = new MappingWindow(this, 0);

connect(this, &MainWindow::EmulationStarted, m_settings_window,
&SettingsWindow::EmulationStarted);
connect(this, &MainWindow::EmulationStopped, m_settings_window,
&SettingsWindow::EmulationStopped);

InstallHotkeyFilter(m_hotkey_window);
InstallHotkeyFilter(m_controllers_window);
InstallHotkeyFilter(m_settings_window);
Expand Down
27 changes: 27 additions & 0 deletions Source/Core/DolphinQt2/Settings.cpp
Expand Up @@ -5,6 +5,7 @@
#include <QDir>
#include <QSize>

#include "AudioCommon/AudioCommon.h"
#include "Common/FileSearch.h"
#include "Common/FileUtil.h"
#include "Common/StringUtil.h"
Expand Down Expand Up @@ -230,6 +231,32 @@ bool Settings::GetHideCursor() const
return SConfig::GetInstance().bHideCursor;
}

int Settings::GetVolume() const
{
return SConfig::GetInstance().m_Volume;
}

void Settings::SetVolume(int volume)
{
if (GetVolume() != volume)
{
SConfig::GetInstance().m_Volume = volume;
emit VolumeChanged(volume);
}
}

void Settings::IncreaseVolume(int volume)
{
AudioCommon::IncreaseVolume(volume);
emit VolumeChanged(GetVolume());
}

void Settings::DecreaseVolume(int volume)
{
AudioCommon::DecreaseVolume(volume);
emit VolumeChanged(GetVolume());
}

bool& Settings::BannerVisible() const
{
return SConfig::GetInstance().m_showBannerColumn;
Expand Down
7 changes: 7 additions & 0 deletions Source/Core/DolphinQt2/Settings.h
Expand Up @@ -75,6 +75,12 @@ class Settings final : public QSettings, NonCopyable
void SetHideCursor(bool hide_cursor);
bool GetHideCursor() const;

// Audio
int GetVolume() const;
void SetVolume(int volume);
void IncreaseVolume(int volume);
void DecreaseVolume(int volume);

// Columns
bool& BannerVisible() const;
bool& CountryVisible() const;
Expand Down Expand Up @@ -116,6 +122,7 @@ class Settings final : public QSettings, NonCopyable
void PathAdded(const QString&);
void PathRemoved(const QString&);
void HideCursorChanged();
void VolumeChanged(int volume);

private:
Settings();
Expand Down

0 comments on commit f1425a0

Please sign in to comment.