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 ABSTRACTMEDIASTREAM_P_H
24#define ABSTRACTMEDIASTREAM_P_H
25
26#include "phonon_export.h"
27#include "abstractmediastream.h"
28#include "mediaobject_p.h"
29#include "streaminterface.h"
30
31#include "medianodedestructionhandler_p.h"
32
33#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
34
35class MediaObjectPrivate;
36
37namespace Phonon
38{
39class PHONON_EXPORT AbstractMediaStreamPrivate : private MediaNodeDestructionHandler
40{
41 friend class MediaObject;
42 P_DECLARE_PUBLIC(AbstractMediaStream)
43 public:
44 void setStreamInterface(StreamInterface *);
45 void setMediaObjectPrivate(MediaObjectPrivate *);
46 ~AbstractMediaStreamPrivate() override;
47
48 protected:
49 AbstractMediaStreamPrivate()
50 : streamSize(0),
51 streamSeekable(false),
52 ignoreWrites(false),
53 streamInterface(nullptr),
54 mediaObjectPrivate(nullptr),
55 errorType(NoError)
56 {
57 }
58
59 virtual void setStreamSize(qint64 newSize);
60 virtual void setStreamSeekable(bool s);
61 virtual void writeData(const QByteArray &data);
62 virtual void endOfData();
63 void phononObjectDestroyed(MediaNodePrivate *) override;
64
65 AbstractMediaStream *q_ptr;
66 qint64 streamSize;
67 bool streamSeekable;
68 bool ignoreWrites;
69 StreamInterface *streamInterface;
70 MediaObjectPrivate *mediaObjectPrivate;
71 Phonon::ErrorType errorType;
72 QString errorText;
73};
74} // namespace Phonon
75
76#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
77
78#endif // ABSTRACTMEDIASTREAM_P_H
79// vim: sw=4 sts=4 et tw=100
80

source code of phonon/phonon/abstractmediastream_p.h