File indexing completed on 2024-04-21 04:43:16

0001 /*  This file is part of the KDE project
0002     Copyright (C) 2007 Matthias Kretz <kretz@kde.org>
0003     Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). <thierry.bastian@trolltech.com>
0004 
0005     This library is free software; you can redistribute it and/or
0006     modify it under the terms of the GNU Lesser General Public
0007     License as published by the Free Software Foundation; either
0008     version 2.1 of the License, or (at your option) version 3, or any
0009     later version accepted by the membership of KDE e.V. (or its
0010     successor approved by the membership of KDE e.V.), Nokia Corporation
0011     (or its successors, if any) and the KDE Free Qt Foundation, which shall
0012     act as a proxy defined in Section 6 of version 3 of the license.
0013 
0014     This library is distributed in the hope that it will be useful,
0015     but WITHOUT ANY WARRANTY; without even the implied warranty of
0016     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0017     Lesser General Public License for more details.
0018 
0019     You should have received a copy of the GNU Lesser General Public
0020     License along with this library.  If not, see <http://www.gnu.org/licenses/>.
0021 
0022 */
0023 
0024 #ifndef PHONON_MEDIANODE_H
0025 #define PHONON_MEDIANODE_H
0026 
0027 #include "phonondefs.h"
0028 #include "phonon_export.h"
0029 #include "path.h"
0030 
0031 
0032 namespace Phonon
0033 {
0034 
0035     class Path;
0036     class MediaNodePrivate;
0037     class PHONON_EXPORT MediaNode
0038     {
0039         friend class Path;
0040         friend class PathPrivate;
0041         friend PHONON_EXPORT Path createPath(MediaNode *source, MediaNode *sink);
0042         P_DECLARE_PRIVATE(MediaNode)
0043     public:
0044         virtual ~MediaNode();
0045         /**
0046          * Tells whether the backend provides an implementation of this
0047          * class.
0048          *
0049          * \return \c true if backend provides an implementation
0050          * \return \c false if the object is not implemented by the backend
0051          */
0052         bool isValid() const;
0053 
0054         QList<Path> inputPaths() const;
0055         QList<Path> outputPaths() const;
0056 
0057     protected:
0058         MediaNode(MediaNodePrivate &dd);
0059         MediaNodePrivate *const k_ptr;
0060     };
0061 
0062 } // namespace Phonon
0063 
0064 
0065 #endif // PHONON_MEDIANODE_H