mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
Sound: set minimum volume
Change-Id: I49a39b6c3d936e1a84d733337992d8a0982ca492
This commit is contained in:
parent
db3fe712d3
commit
070c55d208
Notes:
Deepin Code Review
2017-06-27 09:27:14 +08:00
Verified+1: Anonymous Coward #1000004 Code-Review+1: 石博文 <sbw@sbw.so> Verified+1: <yefei@linuxdeepin.com> Code-Review+2: kirigaya <kirigaya@mkacg.com> Submitted-by: kirigaya <kirigaya@mkacg.com> Submitted-at: Tue, 27 Jun 2017 09:27:08 +0800 Reviewed-on: https://cr.deepin.io/23975 Project: dde/dde-dock Branch: refs/heads/master
1
debian/control
vendored
1
debian/control
vendored
@ -10,6 +10,7 @@ Build-Depends: debhelper (>= 8.0.0), pkg-config,
|
||||
libxcb-icccm4-dev, libxtst-dev,
|
||||
libdtkbase-dev, libdtkutil-dev, libdtkwidget-dev, qttools5-dev-tools, libxcb-icccm4-dev,
|
||||
libdframeworkdbus-dev,
|
||||
libgsettings-qt-dev,
|
||||
clang [mipsel mips64el]
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: http://www.deepin.org/
|
||||
|
@ -4,7 +4,7 @@ include(../../interfaces/interfaces.pri)
|
||||
QT += widgets svg dbus
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin c++11 link_pkgconfig
|
||||
PKGCONFIG += dtkbase dtkwidget
|
||||
PKGCONFIG += dtkbase dtkwidget gsettings-qt
|
||||
|
||||
TARGET = $$qtLibraryTarget(sound)
|
||||
DESTDIR = $$_PRO_FILE_PWD_/../
|
||||
|
@ -24,6 +24,8 @@ SoundApplet::SoundApplet(QWidget *parent)
|
||||
{
|
||||
// QIcon::setThemeName("deepin");
|
||||
|
||||
m_gsetting = new QGSettings("com.deepin.dde.audio", "", this);
|
||||
|
||||
m_volumeBtn->setAccessibleName("volume-button");
|
||||
m_volumeSlider->setAccessibleName("volume-slider");
|
||||
|
||||
@ -121,10 +123,14 @@ void SoundApplet::defaultSinkChanged()
|
||||
|
||||
void SoundApplet::onVolumeChanged()
|
||||
{
|
||||
const double volmue = m_defSinkInter->volume();
|
||||
const float volmue = m_defSinkInter->volume();
|
||||
const bool mute = m_defSinkInter->mute();
|
||||
|
||||
m_volumeSlider->setValue(std::min(1000.0, volmue * 1000));
|
||||
//Keep the same units. slider is 1000.0f, maxVolue need multiplication 10.
|
||||
float m_maxVolume = std::min(1000, m_gsetting->get("output-volume-max").toInt() * 10);
|
||||
|
||||
m_volumeSlider->setValue(std::min(1000.0f, volmue * 1000.0f / (m_maxVolume / 1000.0f)));
|
||||
|
||||
emit volumeChanged(m_volumeSlider->value());
|
||||
|
||||
QString volumeString;
|
||||
@ -142,7 +148,10 @@ void SoundApplet::onVolumeChanged()
|
||||
|
||||
void SoundApplet::volumeSliderValueChanged()
|
||||
{
|
||||
m_defSinkInter->SetVolume(double(m_volumeSlider->value()) / 1000, false);
|
||||
//Keep the same units. slider is 1000.0f, maxVolue need multiplication 10.
|
||||
float m_maxVolume = std::min(1000, m_gsetting->get("output-volume-max").toInt() * 10);
|
||||
|
||||
m_defSinkInter->SetVolume(m_volumeSlider->value() / 1000.0f * (m_maxVolume / 1000.0f), false);
|
||||
}
|
||||
|
||||
void SoundApplet::sinkInputsChanged()
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QSlider>
|
||||
|
||||
#include <QGSettings>
|
||||
#include <dimagebutton.h>
|
||||
|
||||
class SoundApplet : public QScrollArea
|
||||
@ -44,6 +44,7 @@ private:
|
||||
|
||||
DBusAudio *m_audioInter;
|
||||
DBusSink *m_defSinkInter;
|
||||
QGSettings *m_gsetting;
|
||||
};
|
||||
|
||||
#endif // SOUNDAPPLET_H
|
||||
|
@ -132,7 +132,7 @@ void SoundItem::refershIcon()
|
||||
if (!m_sinkInter)
|
||||
return;
|
||||
|
||||
const double volmue = m_sinkInter->volume();
|
||||
const double volmue = m_applet->volumeValue();
|
||||
const bool mute = m_sinkInter->mute();
|
||||
const Dock::DisplayMode displayMode = qApp->property(PROP_DISPLAY_MODE).value<Dock::DisplayMode>();
|
||||
|
||||
@ -140,12 +140,13 @@ void SoundItem::refershIcon()
|
||||
if (displayMode == Dock::Fashion)
|
||||
{
|
||||
QString volumeString;
|
||||
if (volmue >= 1.0)
|
||||
if (volmue >= 1000)
|
||||
volumeString = "100";
|
||||
else
|
||||
volumeString = QString("0") + ('0' + int(volmue * 10)) + "0";
|
||||
volumeString = QString("0") + ('0' + int(volmue / 100)) + "0";
|
||||
|
||||
iconString = ":/icons/image/audio-volume-" + volumeString;
|
||||
|
||||
if (mute)
|
||||
iconString += "-muted";
|
||||
} else {
|
||||
@ -181,7 +182,10 @@ void SoundItem::refershTips(const bool force)
|
||||
if (m_sinkInter->mute()) {
|
||||
value = QString("0") + '%';
|
||||
} else {
|
||||
value = QString::number(m_applet->volumeValue() / 10) + '%';
|
||||
if (m_sinkInter->volume() * 1000 < m_applet->volumeValue())
|
||||
value = QString::number(m_applet->volumeValue() / 10) + '%';
|
||||
else
|
||||
value = QString::number(m_sinkInter->volume() * 100) + '%';
|
||||
}
|
||||
m_tipsLabel->setText(QString(tr("Current Volume %1").arg(value)));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user