diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-03-11 18:43:43 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-03-11 18:43:43 +0000 |
| commit | fe29680e9c20b3f6ab33d02b46120f1f18a3583f (patch) | |
| tree | ef29962cdf1109874482524eb4f4a97e648fa88a | |
| parent | 1b726e44ba73a43e080e9323fdd4ebfaef7232bf (diff) | |
| download | qmmp-fe29680e9c20b3f6ab33d02b46120f1f18a3583f.tar.gz qmmp-fe29680e9c20b3f6ab33d02b46120f1f18a3583f.tar.bz2 qmmp-fe29680e9c20b3f6ab33d02b46120f1f18a3583f.zip | |
enabled softwate mute control
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8759 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Output/alsa/outputalsa.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Output/alsa/outputalsa.h | 7 | ||||
| -rw-r--r-- | src/qmmp/volumehandler.cpp | 19 |
3 files changed, 24 insertions, 13 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp index 8a383558d..9489ad47f 100644 --- a/src/plugins/Output/alsa/outputalsa.cpp +++ b/src/plugins/Output/alsa/outputalsa.cpp @@ -439,6 +439,12 @@ VolumeSettings VolumeALSA::volume() const return vol; } +Volume::VolumeFlags VolumeALSA::flags() const +{ + + return Volume::HasNotifySignal; +} + int VolumeALSA::setupMixer(QString card, QString device) { char *name; @@ -557,8 +563,3 @@ int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card) } return (*mixer != NULL); } - -/*bool VolumeALSA::hasNotifySignal() const -{ - return true; -}*/ diff --git a/src/plugins/Output/alsa/outputalsa.h b/src/plugins/Output/alsa/outputalsa.h index 57d850b3f..0360337d9 100644 --- a/src/plugins/Output/alsa/outputalsa.h +++ b/src/plugins/Output/alsa/outputalsa.h @@ -76,8 +76,7 @@ public: void setVolume(const VolumeSettings &vol) override; VolumeSettings volume() const override; - - //bool hasNotifySignal() const override; + VolumeFlags flags() const override; private: //alsa mixer @@ -85,8 +84,8 @@ private: void parseMixerName(char *str, char **name, int *index); int getMixer(snd_mixer_t **m_mixer, QString card); snd_mixer_elem_t* getMixerElem(snd_mixer_t *m_mixer, char *name, int index); - snd_mixer_t *m_mixer; - snd_mixer_elem_t *pcm_element; + snd_mixer_t *m_mixer = nullptr; + snd_mixer_elem_t *pcm_element = nullptr; }; #endif // OUTPUTALSA_H diff --git a/src/qmmp/volumehandler.cpp b/src/qmmp/volumehandler.cpp index 9932fa69d..d5e305886 100644 --- a/src/qmmp/volumehandler.cpp +++ b/src/qmmp/volumehandler.cpp @@ -92,13 +92,24 @@ void VolumeHandler::setBalance(int balance) void VolumeHandler::setMuted(bool muted) { - if(m_muted != muted) + if(m_muted == muted) + return; + + if(m_volume && (m_volume->flags() & Volume::IsMuteSupported)) { - if(m_volume) + m_volume->setMuted(muted); + checkVolume(); + } + else if(m_volume) + { + m_muted = muted; + m_apply = muted; + if(m_muted) { - m_volume->setMuted(muted); - checkVolume(); + m_scaleLeft = 0.0; + m_scaleRight = 0.0; } + emit mutedChanged(muted); } } |
