]> git.sesse.net Git - vlc/blob - bindings/phonon/vlc/vlcmediacontroller.h
Phonon Backend using VLC
[vlc] / bindings / phonon / vlc / vlcmediacontroller.h
1 /*****************************************************************************
2  * VLC backend for the Phonon library                                        *
3  * Copyright (C) 2007-2008 Tanguy Krotoff <tkrotoff@gmail.com>               *
4  * Copyright (C) 2008 Lukas Durfina <lukas.durfina@gmail.com>                *
5  * Copyright (C) 2009 Fathi Boudra <fabo@kde.org>                            *
6  *                                                                           *
7  * This program is free software; you can redistribute it and/or             *
8  * modify it under the terms of the GNU Lesser General Public                *
9  * License as published by the Free Software Foundation; either              *
10  * version 3 of the License, or (at your option) any later version.          *
11  *                                                                           *
12  * This program is distributed in the hope that it will be useful,           *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
15  * Lesser General Public License for more details.                           *
16  *                                                                           *
17  * You should have received a copy of the GNU Lesser General Public          *
18  * License along with this package; if not, write to the Free Software       *
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA *
20  *****************************************************************************/
21
22 #ifndef PHONON_VLC_VLCMEDIA_CONTROLLER_H
23 #define PHONON_VLC_VLCMEDIA_CONTROLLER_H
24
25 #include "mediacontroller.h"
26 #include "vlcloader.h"
27
28 namespace Phonon
29 {
30 namespace VLC {
31
32 /**
33  * MediaController specific code for VLC.
34  */
35 class VLCMediaController : public MediaController
36 {
37 public:
38     VLCMediaController();
39     virtual ~VLCMediaController();
40
41     void audioChannelAdded(int id, const QString & lang);
42     void subtitleAdded(int id, const QString & lang, const QString & type);
43     void titleAdded(int id, const QString & name);
44     void chapterAdded(int titleId, const QString & name);
45
46 protected:
47     virtual void clearMediaController();
48
49     // AudioChannel
50     void setCurrentAudioChannel(const Phonon::AudioChannelDescription & audioChannel);
51     QList<Phonon::AudioChannelDescription> availableAudioChannels() const;
52     Phonon::AudioChannelDescription currentAudioChannel() const;
53     void refreshAudioChannels();
54
55     // Subtitle
56     void setCurrentSubtitle(const Phonon::SubtitleDescription & subtitle);
57     QList<Phonon::SubtitleDescription> availableSubtitles() const;
58     Phonon::SubtitleDescription currentSubtitle() const;
59     void refreshSubtitles();
60
61     // Angle
62     void setCurrentAngle(int angleNumber);
63     int availableAngles() const;
64     int currentAngle() const;
65
66     // Chapter
67 //    void setCurrentChapter( const Phonon::ChapterDescription & chapter );
68 //    QList<Phonon::ChapterDescription> availableChapters() const;
69 //    Phonon::ChapterDescription currentChapter() const;
70     void setCurrentChapter(int chapterNumber);
71     int availableChapters() const;
72     int currentChapter() const;
73     void refreshChapters(int i_title);
74
75     // Title
76 //    void setCurrentTitle( const Phonon::TitleDescription & title );
77 //    QList<Phonon::TitleDescription> availableTitles() const;
78 //    Phonon::TitleDescription currentTitle() const;
79     void setCurrentTitle(int titleNumber);
80     int availableTitles() const;
81     int currentTitle() const;
82
83     void setAutoplayTitles(bool autoplay);
84     bool autoplayTitles() const;
85
86     // MediaPlayer
87     libvlc_media_player_t *p_vlc_media_player;
88
89 private:
90 };
91
92 }
93 } // Namespace Phonon::VLC
94
95 #endif