1 /*****************************************************************************
2 * media_player.hpp: Media player
3 *****************************************************************************
4 * Copyright (C) 2010 the VideoLAN team
7 * Authors: Rémi Duraffort <ivoire@videolan.org>
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.
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.
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 *****************************************************************************/
24 #ifndef LIBVLCPP_MEDIA_PLAYER_HPP
25 #define LIBVLCPP_MEDIA_PLAYER_HPP
27 #include <vlc/libvlc.h>
28 #include <vlc/libvlc_media.h>
29 #include <vlc/libvlc_media_player.h>
43 * Create a media player without a media associated
44 * @param libvlcInstance: instance of the libVLC class
46 MediaPlayer( libVLC &libvlcInstance );
49 * Create a media player with a media associated
50 * @param media: the associated media (the media can be safely destroy afterward)
52 MediaPlayer( Media &media );
60 * Set the media associated with the player
61 * @param media: the media to associated with the player
63 void setMedia( Media &media );
66 * Get the media associated with the player
72 * Get the event manager associated to the media player
73 * @return the event manager
75 ///@todo eventManager()
78 * Is the player playing
79 * @return true if the player is playing, false overwise
100 * Set the NSView handler where the media player shoud render the video
101 * @param drawable: the NSView handler
103 void setNSObject( void *drawable );
106 * Get the NSView handler associated with the media player
107 * @return the NSView handler
112 * Set the agl handler where the media player shoud render the video
113 * @param drawable: the agl handler
115 void setAgl( uint32_t drawable );
118 * Get the agl handler associated with the media player
119 * @return the agl handler
124 * Set the X Window drawable where the media player shoud render the video
125 * @param drawable: the X Window drawable
127 void setXWindow( uint32_t drawable );
130 * Get the X Window drawable associated with the media player
131 * @return the X Window drawable
136 * Set the Win32/Win64 API window handle where the media player shoud
138 * @param drawable: the windows handle
140 void setHwnd( void *drawable );
143 * Get the Win32/Win64 API window handle associated with the media player
144 * @return the windows handle
150 * Get the movie lenght (in ms)
151 * @return the movie length
156 * Get the current movie time (in ms)
157 * @return the current movie time
162 * Set the movie time (in ms)
163 * @param new_time the movie time (in ms)
165 void setTime( int64_t new_time );
168 * Get the movie position (in percent)
169 * @return the movie position
174 * Set the movie position (in percent)
175 * @param position the movie position
177 void setPosition( float position );
180 * Get the current movie chapter
181 * @return the current chapter
186 * Get the movie chapter count
187 * @return the movie chapter count
192 * Get the number of chapter in the given title
193 * @param title: the title
194 * @return the number of chapter in title
196 int chapterCount( int title );
199 * Set the movie chapter
200 * @param chapter: the chapter to play
202 void setChapter( int chapter );
205 * Is the player going to play the media (not dead or dying)
206 * @return true if the player will play
211 * Get the current title
217 * Get the title count
218 * @return the number of title
224 * @param title: the title
226 void setTitle( int title );
230 * Move to the previous chapter
232 void previousChapter();
235 * Move to the next chapter
240 * Get the movie play rate
241 * @return the play rate
247 * @param rate: the rate
249 void setRate( float rate );
252 * Get the movie state
255 libvlc_state_t state();
259 * @return the movie fps
265 * Does the media player have a video output
266 * @return true if the media player has a video output
271 * Is the media player able to seek ?
272 * @return true if the media player can seek
277 * Can this media player be paused ?
278 * @return true if the media player can pause
283 * Display the next frame
289 * Toggle fullscreen status on a non-embedded video output
291 void toggleFullscreen();
294 * Enable fullscreen on a non-embedded video output
296 void enableFullscreen();
299 * Disable fullscreen on a non-embedded video output
301 void disableFullscreen();
304 * Get the fullscreen status
305 * @return true if the fullscreen is enable, false overwise
310 * Get the class that handle the Audio
311 * @return the instance of Audio associated with this MediaPlayer
316 * Get the class that handle the Video
317 * @return the instance of the Video associated with this MediaPlayer
322 /** The media player instance of libvlc */
323 libvlc_media_player_t *m_player;
325 /** The Audio part of the media player */
328 /** The Video part of the media player */
334 #endif // LIBVLCPP_MEDIA_PLAYER_HPP