00001 /* This file is part of the KDE project 00002 Copyright (C) 2007 Matthias Kretz <kretz@kde.org> 00003 Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). <thierry.bastian@trolltech.com> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) version 3, or any 00009 later version accepted by the membership of KDE e.V. (or its 00010 successor approved by the membership of KDE e.V.), Nokia Corporation 00011 (or its successors, if any) and the KDE Free Qt Foundation, which shall 00012 act as a proxy defined in Section 6 of version 3 of the license. 00013 00014 This library is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public 00020 License along with this library. If not, see <http://www.gnu.org/licenses/>. 00021 00022 */ 00023 00024 #ifndef PHONON_MEDIANODE_H 00025 #define PHONON_MEDIANODE_H 00026 00027 #include "phonondefs.h" 00028 #include "phonon_export.h" 00029 #include "path.h" 00030 00031 QT_BEGIN_HEADER 00032 QT_BEGIN_NAMESPACE 00033 00034 namespace Phonon 00035 { 00036 00037 class Path; 00038 class MediaNodePrivate; 00039 class PHONON_EXPORT MediaNode 00040 { 00041 friend class Path; 00042 friend class PathPrivate; 00043 friend PHONON_EXPORT Path createPath(MediaNode *source, MediaNode *sink); 00044 K_DECLARE_PRIVATE(MediaNode) 00045 public: 00046 virtual ~MediaNode(); 00054 bool isValid() const; 00055 00056 QList<Path> inputPaths() const; 00057 QList<Path> outputPaths() const; 00058 00059 protected: 00060 MediaNode(MediaNodePrivate &dd); 00061 MediaNodePrivate *const k_ptr; 00062 }; 00063 00064 } // namespace Phonon 00065 00066 QT_END_NAMESPACE 00067 QT_END_HEADER 00068 00069 #endif // PHONON_MEDIANODE_H