[DEV] Add mute in volume manager
This commit is contained in:
parent
5ea6ecec1d
commit
e7de4b9dcb
@ -155,14 +155,24 @@ void audio::drain::Volume::configurationChange() {
|
|||||||
void audio::drain::Volume::volumeChange() {
|
void audio::drain::Volume::volumeChange() {
|
||||||
//m_volumeAppli = 20 * log(m_volumedB);
|
//m_volumeAppli = 20 * log(m_volumedB);
|
||||||
float volumedB = 0.0f;
|
float volumedB = 0.0f;
|
||||||
|
bool mute = false;
|
||||||
for (size_t iii=0; iii<m_volumeList.size(); ++iii) {
|
for (size_t iii=0; iii<m_volumeList.size(); ++iii) {
|
||||||
if (m_volumeList[iii] == nullptr) {
|
if (m_volumeList[iii] == nullptr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (m_volumeList[iii]->getMute() == true) {
|
||||||
|
mute = true;
|
||||||
|
}
|
||||||
volumedB += m_volumeList[iii]->getVolume();
|
volumedB += m_volumeList[iii]->getVolume();
|
||||||
DRAIN_VERBOSE("append volume : '" << m_volumeList[iii]->getName() << " vol=" << m_volumeList[iii]->getVolume() << "dB");
|
DRAIN_VERBOSE("append volume : '" << m_volumeList[iii]->getName() << " vol=" << m_volumeList[iii]->getVolume() << "dB");
|
||||||
}
|
}
|
||||||
DRAIN_DEBUG(" Total volume : " << volumedB << "dB nbVolume=" << m_volumeList.size());
|
DRAIN_DEBUG(" Total volume : " << volumedB << "dB nbVolume=" << m_volumeList.size());
|
||||||
|
if (mute == true) {
|
||||||
|
m_volumeAppli = 0.0f;
|
||||||
|
m_volumeCoef = 0;
|
||||||
|
m_volumeDecalage = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
#if (defined(__TARGET_OS__MacOs) || defined(__TARGET_OS__IOs) || __cplusplus < 201103L)
|
#if (defined(__TARGET_OS__MacOs) || defined(__TARGET_OS__IOs) || __cplusplus < 201103L)
|
||||||
m_volumeAppli = pow(10.0f, volumedB/20.0f);
|
m_volumeAppli = pow(10.0f, volumedB/20.0f);
|
||||||
#else
|
#else
|
||||||
|
@ -20,7 +20,8 @@ namespace audio {
|
|||||||
public:
|
public:
|
||||||
VolumeElement(const std::string& _name="ERROR-VOLUME-NAME", float _volumedB=0.0f) :
|
VolumeElement(const std::string& _name="ERROR-VOLUME-NAME", float _volumedB=0.0f) :
|
||||||
m_name(_name),
|
m_name(_name),
|
||||||
m_volumedB(_volumedB) {
|
m_volumedB(_volumedB),
|
||||||
|
m_mute(false) {
|
||||||
|
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
@ -38,6 +39,15 @@ namespace audio {
|
|||||||
void setVolume(float _volumedB) {
|
void setVolume(float _volumedB) {
|
||||||
m_volumedB = _volumedB;
|
m_volumedB = _volumedB;
|
||||||
}
|
}
|
||||||
|
private:
|
||||||
|
bool m_mute;
|
||||||
|
public:
|
||||||
|
bool getMute() const {
|
||||||
|
return m_mute;
|
||||||
|
}
|
||||||
|
void setMute(bool _mute) {
|
||||||
|
m_mute = _mute;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// TODO: Optimisation
|
// TODO: Optimisation
|
||||||
// TODO: Zero crossing
|
// TODO: Zero crossing
|
||||||
|
Loading…
x
Reference in New Issue
Block a user