diff -r 000000000000 -r 1918ee327afb src/3rdparty/phonon/qt7/medianode.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/3rdparty/phonon/qt7/medianode.h Mon Jan 11 14:00:40 2010 +0000 @@ -0,0 +1,85 @@ +/* This file is part of the KDE project. + + Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + + 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 or 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 . +*/ + +#ifndef Phonon_QT7_MediaNode_H +#define Phonon_QT7_MediaNode_H + +#include +#include "backendheader.h" +#include "medianodeevent.h" +#include "audioconnection.h" +#include "videoframe.h" + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ +namespace QT7 +{ + class AudioNode; + class AudioGraph; + class MediaObject; + class AudioConnection; + + class MediaNode : public QObject + { + Q_OBJECT + + public: + enum NodeDescriptionEnum { + AudioSource = 1, + AudioSink = 2, + VideoSource = 4, + VideoSink = 8, + AudioGraphNode = 16 + }; + Q_DECLARE_FLAGS(NodeDescription, NodeDescriptionEnum); + + MediaNode(NodeDescription description, QObject *parent); + MediaNode(NodeDescription description, AudioNode *audioPart, QObject *parent); + virtual ~MediaNode(); + + void setAudioNode(AudioNode *audioPart); + bool connectToSink(MediaNode *sink); + bool disconnectToSink(MediaNode *sink); + AudioConnection *getAudioConnectionToSink(MediaNode *sink); + + void notify(const MediaNodeEvent *event, bool propagate = true); + void sendEventToSinks(const MediaNodeEvent *event); + virtual void mediaNodeEvent(const MediaNodeEvent *event); + + virtual void updateVideo(VideoFrame &frame); + AudioGraph *m_audioGraph; + + AudioNode *m_audioNode; + QList m_audioSinkList; + QList m_audioSourceList; + QList m_videoSinkList; + + int availableAudioInputBus(); + int availableAudioOutputBus(); + + NodeDescription m_description; + MediaObject *m_owningMediaObject; + }; + + Q_DECLARE_OPERATORS_FOR_FLAGS(MediaNode::NodeDescription); + +}} // namespace Phonon::QT7 + +QT_END_NAMESPACE +#endif // Phonon_QT7_MediaNode_H