/* * This file is part of dc-qt, distributed under GPL-2, blablabla. * * Abstract class (pure interface) for an audio/video player system. * The interface is inherited and virtual functions are overridden by * whichever implementation that we choose to use (currently only * planning to interface xine-lib, and - in a far and distant future - * mplayer). */ #ifndef _PURE_PLAYER_H_ #define _PURE_PLAYER_H_ #include #include class av_player : public QWidget { Q_OBJECT public: enum av_player_status {DISABLED=0, CREATED=1, INITIALIZED=2, PLAYING=3, PAUSED=4}; av_player(QWidget *parent=0, char *name=0) : QWidget(parent, name) {} virtual ~av_player() {} virtual bool init() = 0; virtual void shutdown() = 0; // playback control virtual bool play(QString &, QString &) = 0; //title, file virtual bool stop() = 0; virtual bool ffwd() = 0; virtual bool rwnd() = 0; virtual bool pause() = 0; virtual bool seek(int percent) = 0; virtual int get_progress() = 0; virtual bool set_fullscreen(bool) = 0; // status query virtual bool playing_audio() = 0; virtual bool playing_video() = 0; virtual bool playing_fullscreen() = 0; virtual av_player_status get_status() = 0; // misc virtual void set_volume(int percent) = 0; virtual int get_volume() = 0; signals: virtual void sig_stopped(); virtual void sig_playing(); virtual void sig_set_title(const QString&); virtual void sig_tell_status(const QString&, int); }; #endif