/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of SCXML on Qt labs ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the Technology Preview License Agreement accompanying ** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** ** ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "spengine.h" #include using namespace Phonon; class SPEnginePvt { public: MediaObject* mediaObject; AudioOutput* audioOutput; }; void SPEngine::clearQueue() { pvt->mediaObject->clearQueue(); } int SPEngine::currentTime() const { return pvt->mediaObject->currentTime (); } int SPEngine::totalTime() const { return pvt->mediaObject->totalTime(); } void SPEngine::enqueue (const QUrl & u) { pvt->mediaObject->enqueue(MediaSource(u)); } void SPEngine::setTrack(const QUrl & u) { pvt->mediaObject->setCurrentSource(MediaSource(u)); } void SPEngine::play() { pvt->mediaObject->play (); } void SPEngine::pause() { pvt->mediaObject->pause (); } void SPEngine::stop() { pvt->mediaObject->stop(); } void SPEngine::seek(qint64 pos) { pvt->mediaObject->seek(pos); } void SPEngine::setVolume(int v) { pvt->audioOutput->setVolume((qreal)v/100); } void SPEngine::onVolumeChanged(qreal r) { emit volumeChanged(r*100); } int SPEngine::volume() const { return pvt->audioOutput->volume()*100; } SPEngine::SPEngine(QObject* p) : QObject(p) { pvt = new SPEnginePvt; pvt->mediaObject = new Phonon::MediaObject(this); pvt->audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); createPath (pvt->mediaObject, pvt->audioOutput); pvt->mediaObject->setTickInterval(500); connect (pvt->mediaObject, SIGNAL(aboutToFinish()), this, SIGNAL(aboutToFinish())); connect (pvt->mediaObject, SIGNAL(tick(qint64)), this, SIGNAL(tick(qint64))); connect (pvt->mediaObject, SIGNAL(totalTimeChanged(qint64)), this, SIGNAL(totalTimeChanged(qint64))); connect (pvt->audioOutput, SIGNAL(volumeChanged(qreal)), this, SLOT(onVolumeChanged(qreal))); } SPEngine::~SPEngine () { delete pvt; }