Phonon  4.7.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Pages
abstractmediastream.h
1 /* This file is part of the KDE project
2  Copyright (C) 2007 Matthias Kretz <kretz@kde.org>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) version 3, or any
8  later version accepted by the membership of KDE e.V. (or its
9  successor approved by the membership of KDE e.V.), Nokia Corporation
10  (or its successors, if any) and the KDE Free Qt Foundation, which shall
11  act as a proxy defined in Section 6 of version 3 of the license.
12 
13  This library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public
19  License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 
21 */
22 
23 #ifndef PHONON_ABSTRACTMEDIASTREAM_H
24 #define PHONON_ABSTRACTMEDIASTREAM_H
25 
26 #include "phonon_export.h"
27 #include "phononnamespace.h"
28 #include <QtCore/QObject>
29 
30 
31 class QByteArray;
32 
33 #ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
34 
35 namespace Phonon
36 {
37 class MediaObject;
38 class AbstractMediaStreamPrivate;
39 
101 class PHONON_EXPORT AbstractMediaStream : public QObject
102 {
103  Q_OBJECT
104  Q_DECLARE_PRIVATE(AbstractMediaStream)
105  friend class MediaObject;
106  friend class MediaObjectPrivate;
107  friend class StreamInterface;
108  public:
109  virtual ~AbstractMediaStream();
110 
111  protected:
115  explicit AbstractMediaStream(QObject *parent = 0);
116 
124  qint64 streamSize() const;
125 
136  void setStreamSize(qint64);
137 
143  bool streamSeekable() const;
144 
152  void setStreamSeekable(bool);
153 
159  void writeData(const QByteArray &data);
160 
166  void endOfData();
167 
175  void error(Phonon::ErrorType errorType, const QString &errorString);
176 
187  Q_INVOKABLE virtual void reset() = 0;
188 
195  Q_INVOKABLE virtual void needData() = 0;
196 
202  Q_INVOKABLE virtual void enoughData();
203 
212  Q_INVOKABLE virtual void seekStream(qint64 offset);
213 
214  AbstractMediaStream(AbstractMediaStreamPrivate &dd, QObject *parent);
215  QScopedPointer<AbstractMediaStreamPrivate> d_ptr;
216 };
217 
218 } // namespace Phonon
219 
220 #endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
221 
222 
223 #endif // PHONON_ABSTRACTMEDIASTREAM_H