1
/* This file is part of the KDE project.
3
Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
5
This library is free software: you can redistribute it and/or modify
6
it under the terms of the GNU Lesser General Public License as published by
7
the Free Software Foundation, either version 2.1 or 3 of the License.
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU Lesser General Public License for more details.
14
You should have received a copy of the GNU Lesser General Public License
15
along with this library. If not, see <http://www.gnu.org/licenses/>.
21
#include <QCoreApplication>
23
#include "audiooutput.h"
25
#include "mediaobject.h"
30
using namespace Phonon;
31
using namespace Phonon::MMF;
33
/*! \class MMF::AudioOutput
37
//-----------------------------------------------------------------------------
38
// Constructor / destructor
39
//-----------------------------------------------------------------------------
41
MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : MediaNode(parent)
42
, m_volume(InitialVolume)
48
//-----------------------------------------------------------------------------
50
//-----------------------------------------------------------------------------
52
qreal MMF::AudioOutput::volume() const
57
void MMF::AudioOutput::setVolume(qreal volume)
59
TRACE_CONTEXT(AudioOutput::setVolume, EAudioApi);
60
TRACE_ENTRY("volume %f", volume);
62
if (volume != m_volume) {
65
TRACE("emit volumeChanged(%f)", volume)
66
emit volumeChanged(volume);
72
int MMF::AudioOutput::outputDevice() const
74
return AudioOutputDeviceID;
77
bool MMF::AudioOutput::setOutputDevice(int index)
79
Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO,
80
"We only support one output device, with id 0");
84
void MMF::AudioOutput::connectMediaObject(MediaObject *mediaObject)
86
// Ensure that the MediaObject has the correct initial volume
87
mediaObject->volumeChanged(m_volume);
88
// Connect MediaObject to receive future volume changes
89
connect(this, SIGNAL(volumeChanged(qreal)), mediaObject, SLOT(volumeChanged(qreal)));
92
void MMF::AudioOutput::disconnectMediaObject(MediaObject *mediaObject)
94
// Disconnect all signal-slot connections
95
disconnect(this, 0, mediaObject, 0);
98
QHash<QByteArray, QVariant> MMF::AudioOutput::audioOutputDescription(int index)
100
QHash<QByteArray, QVariant> retval;
102
if (index == AudioOutputDeviceID) {
103
retval.insert("name", QCoreApplication::translate("Phonon::MMF", "Audio Output"));
104
retval.insert("description", QCoreApplication::translate("Phonon::MMF", "The audio output device"));
105
retval.insert("available", true);