mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 08:45:36 +08:00
Audio volume component style
This commit is contained in:
committed by
Mat Sutcliffe
parent
2c35415b7f
commit
076d06feb7
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user