summaryrefslogtreecommitdiff
path: root/src/3rdparty/phonon/mmf/audiooutput.cpp
diff options
context:
space:
mode:
authorGareth Stockwell <gareth.stockwell@sosco.com>2009-08-20 12:24:03 +0100
committerGareth Stockwell <gareth.stockwell@sosco.com>2009-08-20 12:24:03 +0100
commitf695026fce1c20fdf4ca101dd7ac8da291ecf381 (patch)
tree0c91366ad6e53ecf0cf985aa3e98ff1fdab433be /src/3rdparty/phonon/mmf/audiooutput.cpp
parent991fb666cd7ba1d543156980bdc601309ec2c434 (diff)
downloadqt4-tools-f695026fce1c20fdf4ca101dd7ac8da291ecf381.tar.gz
Added VolumeControlInterface to abstract details of path between MediaObject and AudioOutput
Diffstat (limited to 'src/3rdparty/phonon/mmf/audiooutput.cpp')
-rw-r--r--src/3rdparty/phonon/mmf/audiooutput.cpp55
1 files changed, 39 insertions, 16 deletions
diff --git a/src/3rdparty/phonon/mmf/audiooutput.cpp b/src/3rdparty/phonon/mmf/audiooutput.cpp
index d8758fdd3d..77d9a6d646 100644
--- a/src/3rdparty/phonon/mmf/audiooutput.cpp
+++ b/src/3rdparty/phonon/mmf/audiooutput.cpp
@@ -21,21 +21,41 @@ along with this library. If not, see <http://www.gnu.org/licenses/>.
#include "mediaobject.h"
#include "audiooutput.h"
#include "utils.h"
+#include "volumecontrolinterface.h"
using namespace Phonon;
using namespace Phonon::MMF;
-MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : m_mediaObject(NULL)
+
+//-----------------------------------------------------------------------------
+// Constants
+//-----------------------------------------------------------------------------
+
+static const qreal InitialVolume = 0.5;
+
+
+//-----------------------------------------------------------------------------
+// Constructor / destructor
+//-----------------------------------------------------------------------------
+
+MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : QObject(parent)
+ , m_volume(InitialVolume)
+ , m_volumeControl(NULL)
{
- setParent(parent);
+
}
+
+//-----------------------------------------------------------------------------
+// Public API
+//-----------------------------------------------------------------------------
+
qreal MMF::AudioOutput::volume() const
{
TRACE_CONTEXT(AudioOutput::volume, EAudioApi);
- TRACE_ENTRY("m_mediaObject 0x%08x", m_mediaObject);
+ TRACE_ENTRY("control 0x%08x ", m_volumeControl);
- const qreal result = m_mediaObject ? m_mediaObject->volume() : 0.0;
+ const qreal result = m_volumeControl ? m_volumeControl->volume() : m_volume;
TRACE_RETURN("%f", result);
}
@@ -43,22 +63,24 @@ qreal MMF::AudioOutput::volume() const
void MMF::AudioOutput::setVolume(qreal volume)
{
TRACE_CONTEXT(AudioOutput::setVolume, EAudioApi);
- TRACE_ENTRY("volume %f", volume);
+ TRACE_ENTRY("control 0x%08x volume %f", m_volumeControl, volume);
- if(m_mediaObject and m_mediaObject->setVolume(volume))
+ if(m_volumeControl)
+ {
+ if(m_volumeControl->setVolume(volume))
+ {
+ TRACE("emit volumeChanged(%f)", volume)
+ emit volumeChanged(volume);
+ }
+ }
+ else
{
- TRACE("emit volumeChanged(%f)", volume)
- emit volumeChanged(volume);
+ m_volume = volume;
}
TRACE_EXIT_0();
}
-void MMF::AudioOutput::triggerVolumeChanged(qreal volume)
-{
- emit volumeChanged(volume);
-}
-
int MMF::AudioOutput::outputDevice() const
{
return 0;
@@ -74,9 +96,10 @@ bool MMF::AudioOutput::setOutputDevice(const Phonon::AudioOutputDevice &)
return true;
}
-void MMF::AudioOutput::setMediaObject(MediaObject *mo)
+void MMF::AudioOutput::setVolumeControl(VolumeControlInterface *volumeControl)
{
- Q_ASSERT(!m_mediaObject);
- m_mediaObject = mo;
+ Q_ASSERT(!m_volumeControl);
+ m_volumeControl = volumeControl;
+ m_volumeControl->setVolume(m_volume);
}