/* This file is part of the KDE project. Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 or 3 of the License. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . */ #include #include #include "audiooutput.h" #include "defs.h" #include "mediaobject.h" #include "utils.h" QT_BEGIN_NAMESPACE using namespace Phonon; using namespace Phonon::MMF; /*! \class MMF::AudioOutput \internal */ //----------------------------------------------------------------------------- // Constructor / destructor //----------------------------------------------------------------------------- MMF::AudioOutput::AudioOutput(Backend *, QObject *parent) : MediaNode(parent) , m_volume(InitialVolume) { } //----------------------------------------------------------------------------- // Public API //----------------------------------------------------------------------------- qreal MMF::AudioOutput::volume() const { return m_volume; } void MMF::AudioOutput::setVolume(qreal volume) { TRACE_CONTEXT(AudioOutput::setVolume, EAudioApi); TRACE_ENTRY("volume %f", volume); if (volume != m_volume) { m_volume = volume; TRACE("emit volumeChanged(%f)", volume) emit volumeChanged(volume); } TRACE_EXIT_0(); } int MMF::AudioOutput::outputDevice() const { return AudioOutputDeviceID; } bool MMF::AudioOutput::setOutputDevice(int index) { Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO, "We only support one output device, with id 0"); return true; } void MMF::AudioOutput::connectMediaObject(MediaObject *mediaObject) { // Ensure that the MediaObject has the correct initial volume mediaObject->volumeChanged(m_volume); // Connect MediaObject to receive future volume changes connect(this, SIGNAL(volumeChanged(qreal)), mediaObject, SLOT(volumeChanged(qreal))); } void MMF::AudioOutput::disconnectMediaObject(MediaObject *mediaObject) { // Disconnect all signal-slot connections disconnect(this, 0, mediaObject, 0); } QHash MMF::AudioOutput::audioOutputDescription(int index) { QHash retval; if (index == AudioOutputDeviceID) { retval.insert("name", QCoreApplication::translate("Phonon::MMF", "Audio Output")); retval.insert("description", QCoreApplication::translate("Phonon::MMF", "The audio output device")); retval.insert("available", true); } return retval; } QT_END_NAMESPACE