]> git.sesse.net Git - vlc/blob - bindings/libvlcpp/src/media_player.cpp
libvlcpp: add some functions for Video.
[vlc] / bindings / libvlcpp / src / media_player.cpp
1 /*****************************************************************************
2  * media_player.cpp: Represent a media player
3  *****************************************************************************
4  * Copyright (C) 2010 the VideoLAN team
5  * $Id$
6  *
7  * Authors: RĂ©mi Duraffort <ivoire@videolan.org>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #include "media_player.hpp"
25 #include "exception.hpp"
26
27 using namespace libvlc;
28
29 MediaPlayer::MediaPlayer( libVLC &libvlcInstance )
30 {
31     Exception ex;
32     m_player = libvlc_media_player_new( libvlcInstance.m_instance, &ex.ex );
33 }
34
35 MediaPlayer::MediaPlayer( Media &media )
36 {
37     Exception ex;
38     m_player = libvlc_media_player_new_from_media( media.m_media, &ex.ex );
39 }
40
41 MediaPlayer::~MediaPlayer()
42 {
43     libvlc_media_player_release( m_player );
44 }
45
46 void MediaPlayer::setMedia( Media &media )
47 {
48     libvlc_media_player_set_media( m_player, media.m_media );
49 }
50
51 int MediaPlayer::isPlaying()
52 {
53     return libvlc_media_player_is_playing( m_player );
54 }
55
56 void MediaPlayer::play()
57 {
58     Exception ex;
59     libvlc_media_player_play( m_player, &ex.ex );
60 }
61
62 void MediaPlayer::pause()
63 {
64     Exception ex;
65     libvlc_media_player_pause( m_player, &ex.ex );
66 }
67
68 void MediaPlayer::stop()
69 {
70     libvlc_media_player_stop( m_player );
71 }
72
73 void MediaPlayer::setNSObject( void *drawable )
74 {
75     libvlc_media_player_set_nsobject( m_player, drawable );
76 }
77
78 void* MediaPlayer::nsobject()
79 {
80     return libvlc_media_player_get_nsobject( m_player );
81 }
82
83 void MediaPlayer::setAgl( uint32_t drawable )
84 {
85     libvlc_media_player_set_agl( m_player, drawable );
86 }
87
88 uint32_t MediaPlayer::agl()
89 {
90     return libvlc_media_player_get_agl( m_player );
91 }
92
93 void MediaPlayer::setXWindow( uint32_t drawable )
94 {
95     libvlc_media_player_set_xwindow( m_player, drawable );
96 }
97
98 uint32_t MediaPlayer::xwindow()
99 {
100     return libvlc_media_player_get_xwindow( m_player );
101 }
102
103 void MediaPlayer::setHwnd( void *drawable )
104 {
105     libvlc_media_player_set_hwnd( m_player, drawable );
106 }
107
108 void *MediaPlayer::hwnd()
109 {
110     return libvlc_media_player_get_hwnd( m_player );
111 }
112
113 int64_t MediaPlayer::lenght()
114 {
115     Exception ex;
116     return libvlc_media_player_get_length( m_player, &ex.ex );
117 }
118
119 int64_t MediaPlayer::time()
120 {
121     Exception ex;
122     return libvlc_media_player_get_time( m_player, &ex.ex );
123 }
124
125 void MediaPlayer::setTime( int64_t new_time )
126 {
127     Exception ex;
128     libvlc_media_player_set_time( m_player, new_time, &ex.ex );
129 }
130
131 float MediaPlayer::position()
132 {
133     Exception ex;
134     return libvlc_media_player_get_position( m_player, &ex.ex );
135 }
136
137 void MediaPlayer::setPosition( float position )
138 {
139     Exception ex;
140     libvlc_media_player_set_position( m_player, position, &ex.ex );
141 }
142
143 int MediaPlayer::chapter()
144 {
145     Exception ex;
146     return libvlc_media_player_get_chapter( m_player, &ex.ex );
147 }
148
149 int MediaPlayer::chapterCount()
150 {
151     Exception ex;
152     return libvlc_media_player_get_chapter_count( m_player, &ex.ex );
153 }
154
155 int MediaPlayer::chapterCount( int title )
156 {
157     Exception ex;
158     return libvlc_media_player_get_chapter_count_for_title( m_player, title, &ex.ex );
159 }
160
161 void MediaPlayer::setChapter( int title )
162 {
163     Exception ex;
164     libvlc_media_player_set_chapter( m_player, title, &ex.ex );
165 }
166
167 int MediaPlayer::willPlay()
168 {
169     Exception ex;
170     return libvlc_media_player_will_play( m_player, &ex.ex );
171 }
172
173 int MediaPlayer::title()
174 {
175     Exception ex;
176     return libvlc_media_player_get_title( m_player, &ex.ex );
177 }
178
179 int MediaPlayer::titleCount()
180 {
181     Exception ex;
182     return libvlc_media_player_get_title_count( m_player, &ex.ex );
183 }
184
185 void MediaPlayer::setTitle( int title )
186 {
187     Exception ex;
188     libvlc_media_player_set_title( m_player, title, &ex.ex );
189 }
190
191 void MediaPlayer::previousChapter()
192 {
193     Exception ex;
194     libvlc_media_player_previous_chapter( m_player, &ex.ex );
195 }
196
197 void MediaPlayer::nextChapter()
198 {
199     Exception ex;
200     libvlc_media_player_next_chapter( m_player, &ex.ex );
201 }
202
203 float MediaPlayer::rate()
204 {
205     Exception ex;
206     return libvlc_media_player_get_rate( m_player, &ex.ex );
207 }
208
209 void MediaPlayer::setRate( float rate )
210 {
211     Exception ex;
212     libvlc_media_player_set_rate( m_player, rate, &ex.ex );
213 }
214
215 libvlc_state_t MediaPlayer::state()
216 {
217     return libvlc_media_player_get_state( m_player );
218 }
219
220 float MediaPlayer::fps()
221 {
222     Exception ex;
223     return libvlc_media_player_get_fps( m_player, &ex.ex );
224 }
225
226 int MediaPlayer::hasVout()
227 {
228     Exception ex;
229     return libvlc_media_player_has_vout( m_player, &ex.ex );
230 }
231
232 int MediaPlayer::isSeekable()
233 {
234     Exception ex;
235     return libvlc_media_player_is_seekable( m_player, &ex.ex );
236 }
237 int MediaPlayer::canPause()
238 {
239     Exception ex;
240     return libvlc_media_player_can_pause( m_player, &ex.ex );
241 }
242
243 void MediaPlayer::nextFrame()
244 {
245     Exception ex;
246     libvlc_media_player_next_frame( m_player, &ex.ex );
247 }
248
249 void MediaPlayer::toggleFullscreen()
250 {
251     Exception ex;
252     libvlc_toggle_fullscreen( m_player, &ex.ex );
253 }
254
255 void MediaPlayer::enableFullscreen()
256 {
257     Exception ex;
258     libvlc_set_fullscreen( m_player, 1, &ex.ex );
259 }
260
261 void MediaPlayer::disableFullscreen()
262 {
263     Exception ex;
264     libvlc_set_fullscreen( m_player, 0, &ex.ex );
265 }
266
267 int MediaPlayer::fullscreen()
268 {
269     Exception ex;
270     return libvlc_get_fullscreen( m_player, &ex.ex );
271 }