From ab7565469e6e6e99fa5b266cd992d100c192b8ca Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Mon, 26 Nov 2012 00:40:33 +0000 Subject: Introducing a multimedia plugin for blackberry. Change-Id: I15677556eb7f5cf096ad857109e9acfeba4e6e84 Reviewed-by: Thomas McGuire Reviewed-by: Sean Harmer --- .../multimedia/blackberry/bbmediaplayerservice.cpp | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 plugins/multimedia/blackberry/bbmediaplayerservice.cpp (limited to 'plugins/multimedia/blackberry/bbmediaplayerservice.cpp') diff --git a/plugins/multimedia/blackberry/bbmediaplayerservice.cpp b/plugins/multimedia/blackberry/bbmediaplayerservice.cpp new file mode 100644 index 0000000000..2fc083a6c5 --- /dev/null +++ b/plugins/multimedia/blackberry/bbmediaplayerservice.cpp @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Research In Motion +** +** Contact: Research In Motion +** Contact: Klarälvdalens Datakonsult AB +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "bbmediaplayerservice.h" + +#include "bbmediaplayercontrol.h" +#include "bbvideowindowcontrol.h" + +QT_BEGIN_NAMESPACE + +BbMediaPlayerService::BbMediaPlayerService(QObject *parent) + : QMediaService(parent), m_mediaPlayerControl(0), m_videoWindowControl(0) +{ +} + +BbMediaPlayerService::~BbMediaPlayerService() +{ + // Someone should have called releaseControl(), but better be safe + delete m_videoWindowControl; + delete m_mediaPlayerControl; +} + +QMediaControl *BbMediaPlayerService::requestControl(const char *name) +{ + if (qstrcmp(name, QMediaPlayerControl_iid) == 0) { + m_mediaPlayerControl = new BbMediaPlayerControl(); + updateControls(); + return m_mediaPlayerControl; + } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { + m_videoWindowControl = new BbVideoWindowControl(); + updateControls(); + return m_videoWindowControl; + } + return 0; +} + +void BbMediaPlayerService::releaseControl(QMediaControl *control) +{ + if (control == m_videoWindowControl) + m_videoWindowControl = 0; + if (control == m_mediaPlayerControl) + m_mediaPlayerControl = 0; + delete control; +} + +void BbMediaPlayerService::updateControls() +{ + if (m_videoWindowControl && m_mediaPlayerControl) + m_mediaPlayerControl->setVideoControl(m_videoWindowControl); +} + +QT_END_NAMESPACE -- cgit v1.2.3