diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 10:18:55 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 10:18:55 +0100 |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /src/3rdparty/phonon/phonon/medianode.cpp |
Long live Qt 4.5!
Diffstat (limited to 'src/3rdparty/phonon/phonon/medianode.cpp')
-rw-r--r-- | src/3rdparty/phonon/phonon/medianode.cpp | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/3rdparty/phonon/phonon/medianode.cpp b/src/3rdparty/phonon/phonon/medianode.cpp new file mode 100644 index 0000000000..4693cb856d --- /dev/null +++ b/src/3rdparty/phonon/phonon/medianode.cpp @@ -0,0 +1,130 @@ +/* This file is part of the KDE project + Copyright (C) 2007 Matthias Kretz <kretz@kde.org> + Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). <thierry.bastian@trolltech.com> + + 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 of the License, or (at your option) version 3, or any + later version accepted by the membership of KDE e.V. (or its + successor approved by the membership of KDE e.V.), Trolltech ASA + (or its successors, if any) and the KDE Free Qt Foundation, which shall + act as a proxy defined in Section 6 of version 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 <http://www.gnu.org/licenses/>. + +*/ + +#include "medianode.h" +#include "medianode_p.h" +#include "medianodedestructionhandler_p.h" +#include "factory_p.h" + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ + + MediaNode::MediaNode(MediaNodePrivate &dd) + : k_ptr(&dd) + { + k_ptr->q_ptr = this; + } + +bool MediaNode::isValid() const +{ + return const_cast<MediaNodePrivate *>(k_ptr)->backendObject() != 0; +} + + QList<Path> MediaNode::inputPaths() const + { + return k_ptr->inputPaths; + } + + QList<Path> MediaNode::outputPaths() const + { + return k_ptr->outputPaths; + } + + MediaNode::~MediaNode() + { + delete k_ptr; + } + + QObject *MediaNodePrivate::backendObject() + { + if (!m_backendObject && Factory::backend()) { + createBackendObject(); + } + return m_backendObject; + } + + MediaNodePrivate::~MediaNodePrivate() + { + foreach (MediaNodeDestructionHandler *handler, handlers) { + handler->phononObjectDestroyed(this); + } + Factory::deregisterFrontendObject(this); + delete m_backendObject; + m_backendObject = 0; + } + +void MediaNodePrivate::deleteBackendObject() +{ + if (m_backendObject && aboutToDeleteBackendObject()) { + delete m_backendObject; + m_backendObject = 0; + } +} + + MediaNodePrivate::MediaNodePrivate(MediaNodePrivate::CastId _castId) : castId(_castId), + m_backendObject(0) + { + Factory::registerFrontendObject(this); + } + + void MediaNodePrivate::addDestructionHandler(MediaNodeDestructionHandler *handler) + { + handlers.append(handler); + } + + void MediaNodePrivate::removeDestructionHandler(MediaNodeDestructionHandler *handler) + { + handlers.removeAll(handler); + } + + void MediaNodePrivate::addOutputPath(const Path &p) + { + outputPaths.append(p); + } + + void MediaNodePrivate::addInputPath(const Path &p) + { + inputPaths.append(p); + } + + void MediaNodePrivate::removeOutputPath(const Path &p) + { + int ret = outputPaths.removeAll(p); + Q_ASSERT(ret == 1); + Q_UNUSED(ret); + } + + void MediaNodePrivate::removeInputPath(const Path &p) + { + int ret = inputPaths.removeAll(p); + Q_ASSERT(ret == 1); + Q_UNUSED(ret); + } + + + +} // namespace Phonon + +QT_END_NAMESPACE |