Audio volume component style

This commit is contained in:
Klaus Basan
2019-02-23 03:10:32 +01:00
committed by Mat Sutcliffe
parent 2c35415b7f
commit 076d06feb7
2 changed files with 40 additions and 42 deletions

View File

@@ -20,6 +20,7 @@
#include <QString> #include <QString>
#include <QtGlobal> #include <QtGlobal>
using namespace BlackMisc;
using namespace BlackCore; using namespace BlackCore;
using namespace BlackCore::Context; using namespace BlackCore::Context;
@@ -32,23 +33,23 @@ namespace BlackGui
ui(new Ui::CAudioVolumeComponent) ui(new Ui::CAudioVolumeComponent)
{ {
ui->setupUi(this); ui->setupUi(this);
bool c = connect(ui->pb_ShowWinMixer, &QPushButton::pressed, this, &CAudioVolumeComponent::ps_onWindowsMixerRequested); bool c = connect(ui->pb_ShowWinMixer, &QPushButton::pressed, this, &CAudioVolumeComponent::onWindowsMixerRequested);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
c = connect(ui->hs_Volume, &QSlider::valueChanged, this, &CAudioVolumeComponent::ps_changeOutputVolumeFromSlider); c = connect(ui->hs_Volume, &QSlider::valueChanged, this, &CAudioVolumeComponent::changeOutputVolumeFromSlider);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
c = connect(ui->sb_Volume, qOverload<int>(&QSpinBox::valueChanged), this, &CAudioVolumeComponent::ps_changeOutputVolumeFromSpinBox); c = connect(ui->sb_Volume, qOverload<int>(&QSpinBox::valueChanged), this, &CAudioVolumeComponent::changeOutputVolumeFromSpinBox);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
c = connect(ui->pb_Volume100, &QPushButton::clicked, this, &CAudioVolumeComponent::ps_setVolume100); c = connect(ui->pb_Volume100, &QPushButton::clicked, this, &CAudioVolumeComponent::setVolume100);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
c = connect(sGui->getIContextAudio(), &IContextAudio::changedMute, this, &CAudioVolumeComponent::ps_onMuteChanged); c = connect(sGui->getIContextAudio(), &IContextAudio::changedMute, this, &CAudioVolumeComponent::onMuteChanged);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
connect(sGui->getIContextAudio(), &IContextAudio::changedAudioVolume, this, &CAudioVolumeComponent::ps_onOutputVolumeChanged); connect(sGui->getIContextAudio(), &IContextAudio::changedAudioVolume, this, &CAudioVolumeComponent::onOutputVolumeChanged);
Q_ASSERT(c); Q_ASSERT(c);
Q_UNUSED(c); Q_UNUSED(c);
@@ -67,24 +68,24 @@ namespace BlackGui
} }
// init volume // init volume
this->ps_changeOutputVolumeFromSlider(sGui->getIContextAudio()->getVoiceOutputVolume()); // init volume this->changeOutputVolumeFromSlider(sGui->getIContextAudio()->getVoiceOutputVolume()); // init volume
} }
CAudioVolumeComponent::~CAudioVolumeComponent() CAudioVolumeComponent::~CAudioVolumeComponent()
{ } { }
void CAudioVolumeComponent::ps_onMuteChanged(bool muted) void CAudioVolumeComponent::onMuteChanged(bool muted)
{ {
if (muted == ui->pb_Mute->isChecked()) { return; } // avoid roundtrips if (muted == ui->pb_Mute->isChecked()) { return; } // avoid roundtrips
ui->pb_Mute->setChecked(muted); ui->pb_Mute->setChecked(muted);
} }
void CAudioVolumeComponent::ps_onOutputVolumeChanged(int volume) void CAudioVolumeComponent::onOutputVolumeChanged(int volume)
{ {
ui->hs_Volume->setToolTip(QString::number(volume)); ui->hs_Volume->setToolTip(QString::number(volume));
// comparisons to avoid rountrips // comparisons to avoid rountrips
QString v = QString::number(volume); const QString v = QString::number(volume);
if (volume != ui->sb_Volume->value()) if (volume != ui->sb_Volume->value())
{ {
ui->sb_Volume->setValue(volume); ui->sb_Volume->setValue(volume);
@@ -104,30 +105,31 @@ namespace BlackGui
} }
} }
void CAudioVolumeComponent::ps_setVolume100() void CAudioVolumeComponent::setVolume100()
{ {
this->ps_onOutputVolumeChanged(100); this->onOutputVolumeChanged(100);
} }
void CAudioVolumeComponent::ps_changeOutputVolumeFromSlider(int volume) void CAudioVolumeComponent::changeOutputVolumeFromSlider(int volume)
{ {
if (!sGui || sGui->isShuttingDown() || !sGui->getIContextAudio()) { return; }
if (volume > 100) if (volume > 100)
{ {
// 100 -> 100, 120 -> 200, 140 -> 300 // 100 -> 100, 120 -> 200, 140 -> 300
int v = volume - 100; const int v = volume - 100;
volume = 100 + v * 5; volume = 100 + v * 5;
} }
ui->hs_Volume->setToolTip(QString::number(volume)); ui->hs_Volume->setToolTip(QString::number(volume));
Q_ASSERT(sGui->getIContextAudio());
if (sGui->getIContextAudio()->getVoiceOutputVolume() != volume) if (sGui->getIContextAudio()->getVoiceOutputVolume() != volume)
{ {
sGui->getIContextAudio()->setVoiceOutputVolume(volume); sGui->getIContextAudio()->setVoiceOutputVolume(volume);
} }
} }
void CAudioVolumeComponent::ps_changeOutputVolumeFromSpinBox(int volume) void CAudioVolumeComponent::changeOutputVolumeFromSpinBox(int volume)
{ {
if (!sGui || sGui->isShuttingDown() || !sGui->getIContextAudio()) { return; }
ui->sb_Volume->setToolTip(QString::number(volume)); ui->sb_Volume->setToolTip(QString::number(volume));
Q_ASSERT(sGui->getIContextAudio()); Q_ASSERT(sGui->getIContextAudio());
if (sGui->getIContextAudio()->getVoiceOutputVolume() != volume) if (sGui->getIContextAudio()->getVoiceOutputVolume() != volume)
@@ -136,9 +138,9 @@ namespace BlackGui
} }
} }
void CAudioVolumeComponent::ps_onWindowsMixerRequested() void CAudioVolumeComponent::onWindowsMixerRequested()
{ {
BlackMisc::Audio::startWindowsMixer(); Audio::startWindowsMixer();
} }
} // namespace } // namespace

View File

@@ -17,16 +17,13 @@
#include <QObject> #include <QObject>
#include <QScopedPointer> #include <QScopedPointer>
class QWidget;
namespace Ui { class CAudioVolumeComponent; } namespace Ui { class CAudioVolumeComponent; }
namespace BlackGui namespace BlackGui
{ {
namespace Components namespace Components
{ {
//! Audio volume, mixer //! Audio volume, mixer
class BLACKGUI_EXPORT CAudioVolumeComponent : class BLACKGUI_EXPORT CAudioVolumeComponent : public QFrame
public QFrame
{ {
Q_OBJECT Q_OBJECT
@@ -35,28 +32,27 @@ namespace BlackGui
explicit CAudioVolumeComponent(QWidget *parent = nullptr); explicit CAudioVolumeComponent(QWidget *parent = nullptr);
//! Destructor //! Destructor
~CAudioVolumeComponent(); virtual ~CAudioVolumeComponent();
private slots:
//! Mute toggleBlackGui::Components::CHotkeyDialog
void ps_onMuteChanged(bool muted);
//! Volumes changed (elsewhere)
void ps_onOutputVolumeChanged(int volume);
//! Set volume to 100
void ps_setVolume100();
//! Change values because of volume GUI controls
void ps_changeOutputVolumeFromSlider(int volume);
//! Change values because of volume GUI controls
void ps_changeOutputVolumeFromSpinBox(int volume);
//! Requested windows mixer
void ps_onWindowsMixerRequested();
private: private:
//! Mute toggleBlackGui::Components::CHotkeyDialog
void onMuteChanged(bool muted);
//! Volumes changed (elsewhere)
void onOutputVolumeChanged(int volume);
//! Set volume to 100
void setVolume100();
//! Change values because of volume GUI controls
void changeOutputVolumeFromSlider(int volume);
//! Change values because of volume GUI controls
void changeOutputVolumeFromSpinBox(int volume);
//! Requested windows mixer
void onWindowsMixerRequested();
QScopedPointer<Ui::CAudioVolumeComponent> ui; QScopedPointer<Ui::CAudioVolumeComponent> ui;
}; };
} // namespace } // namespace