34504b24950a0496bf8f24d47bf5c66b1bcb7625
[vlc.git] / 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
26 using namespace libvlc;
27
28 MediaPlayer::MediaPlayer( libVLC &libvlcInstance )
29 {
30     m_player = libvlc_media_player_new( libvlcInstance.m_instance );
31     m_audio.setMediaPlayer( m_player );
32 }
33
34 MediaPlayer::MediaPlayer( Media &media )
35 {
36     m_player = libvlc_media_player_new_from_media( media.m_media );
37     m_audio.setMediaPlayer( m_player );
38 }
39
40 MediaPlayer::~MediaPlayer()
41 {
42     libvlc_media_player_release( m_player );
43 }
44
45 void MediaPlayer::setMedia( Media &media )
46 {
47     libvlc_media_player_set_media( m_player, media.m_media );
48 }
49
50 int MediaPlayer::isPlaying()
51 {
52     return libvlc_media_player_is_playing( m_player );
53 }
54
55 void MediaPlayer::play()
56 {
57     libvlc_media_player_play( m_player );
58 }
59
60 void MediaPlayer::pause()
61 {
62     libvlc_media_player_pause( m_player );
63 }
64
65 void MediaPlayer::stop()
66 {
67     libvlc_media_player_stop( m_player );
68 }
69
70 void MediaPlayer::setNSObject( void *drawable )
71 {
72     libvlc_media_player_set_nsobject( m_player, drawable );
73 }
74
75 void* MediaPlayer::nsobject()
76 {
77     return libvlc_media_player_get_nsobject( m_player );
78 }
79
80 void MediaPlayer::setAgl( uint32_t drawable )
81 {
82     libvlc_media_player_set_agl( m_player, drawable );
83 }
84
85 uint32_t MediaPlayer::agl()
86 {
87     return libvlc_media_player_get_agl( m_player );
88 }
89
90 void MediaPlayer::setXWindow( uint32_t drawable )
91 {
92     libvlc_media_player_set_xwindow( m_player, drawable );
93 }
94
95 uint32_t MediaPlayer::xwindow()
96 {
97     return libvlc_media_player_get_xwindow( m_player );
98 }
99
100 void MediaPlayer::setHwnd( void *drawable )
101 {
102     libvlc_media_player_set_hwnd( m_player, drawable );
103 }
104
105 void *MediaPlayer::hwnd()
106 {
107     return libvlc_media_player_get_hwnd( m_player );
108 }
109
110 int64_t MediaPlayer::lenght()
111 {
112     return libvlc_media_player_get_length( m_player );
113 }
114
115 int64_t MediaPlayer::time()
116 {
117     return libvlc_media_player_get_time( m_player );
118 }
119
120 void MediaPlayer::setTime( int64_t new_time )
121 {
122     libvlc_media_player_set_time( m_player, new_time );
123 }
124
125 float MediaPlayer::position()
126 {
127     return libvlc_media_player_get_position( m_player );
128 }
129
130 void MediaPlayer::setPosition( float position )
131 {
132     libvlc_media_player_set_position( m_player, position );
133 }
134
135 int MediaPlayer::chapter()
136 {
137     return libvlc_media_player_get_chapter( m_player );
138 }
139
140 int MediaPlayer::chapterCount()
141 {
142     return libvlc_media_player_get_chapter_count( m_player );
143 }
144
145 int MediaPlayer::chapterCount( int title )
146 {
147     return libvlc_media_player_get_chapter_count_for_title( m_player, title );
148 }
149
150 void MediaPlayer::setChapter( int title )
151 {
152     libvlc_media_player_set_chapter( m_player, title );
153 }
154
155 int MediaPlayer::willPlay()
156 {
157     return libvlc_media_player_will_play( m_player );
158 }
159
160 int MediaPlayer::title()
161 {
162     return libvlc_media_player_get_title( m_player );
163 }
164
165 int MediaPlayer::titleCount()
166 {
167     return libvlc_media_player_get_title_count( m_player );
168 }
169
170 void MediaPlayer::setTitle( int title )
171 {
172     libvlc_media_player_set_title( m_player, title );
173 }
174
175 void MediaPlayer::previousChapter()
176 {
177     libvlc_media_player_previous_chapter( m_player );
178 }
179
180 void MediaPlayer::nextChapter()
181 {
182     libvlc_media_player_next_chapter( m_player );
183 }
184
185 float MediaPlayer::rate()
186 {
187     return libvlc_media_player_get_rate( m_player );
188 }
189
190 void MediaPlayer::setRate( float rate )
191 {
192     libvlc_media_player_set_rate( m_player, rate );
193 }
194
195 libvlc_state_t MediaPlayer::state()
196 {
197     return libvlc_media_player_get_state( m_player );
198 }
199
200 float MediaPlayer::fps()
201 {
202     return libvlc_media_player_get_fps( m_player );
203 }
204
205 int MediaPlayer::hasVout()
206 {
207     return libvlc_media_player_has_vout( m_player );
208 }
209
210 int MediaPlayer::isSeekable()
211 {
212     return libvlc_media_player_is_seekable( m_player );
213 }
214 int MediaPlayer::canPause()
215 {
216     return libvlc_media_player_can_pause( m_player );
217 }
218
219 void MediaPlayer::nextFrame()
220 {
221     libvlc_media_player_next_frame( m_player );
222 }
223
224 void MediaPlayer::toggleFullscreen()
225 {
226     libvlc_toggle_fullscreen( m_player );
227 }
228
229 void MediaPlayer::enableFullscreen()
230 {
231     libvlc_set_fullscreen( m_player, 1 );
232 }
233
234 void MediaPlayer::disableFullscreen()
235 {
236     libvlc_set_fullscreen( m_player, 0 );
237 }
238
239 int MediaPlayer::fullscreen()
240 {
241     return libvlc_get_fullscreen( m_player );
242 }
243
244 Audio &MediaPlayer::audio()
245 {
246     return m_audio;
247 }