libvlcpp: add a function to handle video.
authorRémi Duraffort <ivoire@videolan.org>
Tue, 2 Feb 2010 20:28:09 +0000 (21:28 +0100)
committerRémi Duraffort <ivoire@videolan.org>
Tue, 2 Feb 2010 22:07:47 +0000 (23:07 +0100)
bindings/libvlcpp/src/media_player.cpp
bindings/libvlcpp/src/media_player.hpp
bindings/libvlcpp/src/video.cpp
bindings/libvlcpp/src/video.hpp

index e635563..420c4ac 100644 (file)
@@ -29,6 +29,7 @@ MediaPlayer::MediaPlayer( libVLC &libvlcInstance )
 {
     m_player = libvlc_media_player_new( libvlcInstance.m_instance );
     m_audio.setMediaPlayer( m_player );
+    m_video.setMediaPlayer( m_player );
 }
 
 MediaPlayer::MediaPlayer( Media &media )
@@ -246,3 +247,8 @@ Audio &MediaPlayer::audio()
 {
     return m_audio;
 }
+
+Video &MediaPlayer::video()
+{
+    return m_video;
+}
index 1704bb6..a4c9bd4 100644 (file)
@@ -31,6 +31,7 @@
 #include "libvlc.hpp"
 #include "media.hpp"
 #include "audio.hpp"
+#include "video.hpp"
 
 namespace libvlc
 {
@@ -311,12 +312,21 @@ public:
      */
     Audio &audio();
 
+    /**
+     * Get the class that handle the Video
+     * @return the instance of the Video associated with this MediaPlayer
+     */
+    Video &video();
+
 private:
     /** The media player instance of libvlc */
     libvlc_media_player_t *m_player;
 
     /** The Audio part of the media player */
     Audio m_audio;
+
+    /** The Video part of the media player */
+    Video m_video;
 };
 
 };
index 58cc3cf..83fed52 100644 (file)
 
 using namespace libvlc;
 
-Video::Video( libvlc_media_player_t *player )
+Video::Video()
 {
-    m_player = player;
-    libvlc_media_player_retain( m_player );
 }
 
 Video::~Video()
@@ -111,3 +109,9 @@ void Video::deinterlace( int enable, const char *mode )
     else
         libvlc_video_set_deinterlace( m_player, NULL );
 }
+
+void Video::setMediaPlayer( libvlc_media_player_t *player )
+{
+    libvlc_media_player_retain( player );
+    m_player = player;
+}
index fb73103..72f4032 100644 (file)
@@ -37,15 +37,6 @@ class Video
 {
 public:
     /**
-     * Constructor
-     * @param player: the player handling the video
-     */
-    Video( libvlc_media_player_t *player );
-
-    /** Destructor */
-    ~Video();
-
-    /**
      * Get the height of the video
      * @return the height of the video
      */
@@ -163,6 +154,24 @@ public:
 private:
     /** The media player instance of libvlc */
     libvlc_media_player_t *m_player;
+
+    /**
+     * The constructor is private so only the MediaPlayer can create an
+     * instance of this class
+     */
+    Video();
+
+    /** Destructor only used by the MediaPlayer associated with this class */
+    ~Video();
+
+    /**
+     * Set the media player. This function can only be used by the MediaPlayer class
+     * @param player: the media player
+     */
+    void setMediaPlayer( libvlc_media_player_t *player);
+
+    /** Friend class */
+    friend class MediaPlayer;
 };
 
 };