Phonon  4.7.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Pages
mediaobjectinterface.h
1 /* This file is part of the KDE project
2  Copyright (C) 2006-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_MEDIAOBJECTINTERFACE_H
24 #define PHONON_MEDIAOBJECTINTERFACE_H
25 
26 #include "mediaobject.h"
27 #include <QtCore/QObject>
28 
29 
30 namespace Phonon
31 {
32 class StreamInterface;
33 
66 {
67  public:
68  virtual ~MediaObjectInterface() {}
69 
79  virtual void play() = 0;
80 
89  virtual void pause() = 0;
90 
102  virtual void stop() = 0;
103 
119  virtual void seek(qint64 milliseconds) = 0;
120 
127  virtual qint32 tickInterval() const = 0;
137  virtual void setTickInterval(qint32 interval) = 0;
138 
144  virtual bool hasVideo() const = 0;
150  virtual bool isSeekable() const = 0;
154  virtual qint64 currentTime() const = 0;
158  virtual Phonon::State state() const = 0;
159 
163  virtual QString errorString() const = 0;
164 
170  virtual Phonon::ErrorType errorType() const = 0;
171 
179  virtual qint64 totalTime() const = 0;
180 
184  virtual MediaSource source() const = 0;
185 
206  virtual void setSource(const MediaSource &) = 0;
207 
223  virtual void setNextSource(const MediaSource &source) = 0;
224 
225  virtual qint64 remainingTime() const { return totalTime() - currentTime(); }
226  virtual qint32 prefinishMark() const = 0;
227  virtual void setPrefinishMark(qint32) = 0;
228 
229  virtual qint32 transitionTime() const = 0;
230  virtual void setTransitionTime(qint32) = 0;
231 };
232 }
233 
234 Q_DECLARE_INTERFACE(Phonon::MediaObjectInterface, "MediaObjectInterface3.phonon.kde.org")
235 
236 
237 #endif // PHONON_MEDIAOBJECTINTERFACE_H
238 // vim: sw=4 ts=4 tw=80