LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
imediaplayer.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #ifndef INTERFACES_IMEDIAPLAYER_H
10 #define INTERFACES_IMEDIAPLAYER_H
11 #include <QString>
12 #include <QWidget>
13 #include <QUrl>
14 #include <QtPlugin>
15 
16 class Q_DECL_EXPORT IVideoWidget
17 {
18 public:
19  virtual ~IVideoWidget () {}
20 
21  virtual void Enqueue (const QUrl& url) = 0;
22  virtual void Enqueue (QIODevice*) = 0;
23  virtual void Play () = 0;
24  virtual void Pause () = 0;
25  virtual void Stop () = 0;
26  virtual void Clear () = 0;
27 
28  virtual QWidget* Widget () = 0;
29 };
30 
31 class Q_DECL_EXPORT IMediaPlayer
32 {
33 public:
34  virtual IVideoWidget* CreateWidget () const = 0;
35  virtual IVideoWidget* GetDefaultWidget () const = 0;
36 
37  virtual ~IMediaPlayer () {}
38 };
39 
40 Q_DECLARE_INTERFACE (IVideoWidget, "org.Deviant.LeechCraft.IVideoWidget/1.0")
41 Q_DECLARE_INTERFACE (IMediaPlayer, "org.Deviant.LeechCraft.IMediaPlayer/1.0")
42 
43 #endif
44 
IMediaPlayer::~IMediaPlayer
virtual ~IMediaPlayer()
Definition: imediaplayer.h:37
IMediaPlayer
Definition: imediaplayer.h:31
IVideoWidget
Definition: imediaplayer.h:16