]> git.sesse.net Git - vlc/blobdiff - lib/media_player.c
OSX package: simplify
[vlc] / lib / media_player.c
index 4b4073075ef9c76ee9f4eab068f54e4e0ef9f2e4..14d5bcea4c932697860e7a5a18de5ea13bad9898 100644 (file)
@@ -1,8 +1,7 @@
 /*****************************************************************************
  * media_player.c: Libvlc API Media Instance management functions
  *****************************************************************************
- * Copyright (C) 2005-2009 the VideoLAN team
- * $Id$
+ * Copyright (C) 2005-2011 the VideoLAN team
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *
@@ -52,7 +51,7 @@ static const vlc_action_t libvlc_navigate_to_action[] =
     ACTIONID_NAV_RIGHT
 };
 
-static const uint32_t libvlc_navigate_to_action_size =                 \
+static const uint32_t libvlc_navigate_to_action_size =                        \
   sizeof( libvlc_navigate_to_action ) / sizeof( libvlc_navigate_to_action[0] );
 
 
@@ -316,6 +315,25 @@ input_event_changed( vlc_object_t * p_this, char const * psz_cmd,
             var_GetFloat( p_input, "cache" ));
         libvlc_event_send( p_mi->p_event_manager, &event );
     }
+    else if( newval.i_int == INPUT_EVENT_VOUT )
+    {
+        vout_thread_t **pp_vout;
+        size_t i_vout;
+        if( input_Control( p_input, INPUT_GET_VOUTS, &pp_vout, &i_vout ) )
+        {
+            i_vout  = 0;
+        }
+        else
+        {
+            for( size_t i = 0; i < i_vout; i++ )
+                vlc_object_release( pp_vout[i] );
+            free( pp_vout );
+        }
+
+        event.type = libvlc_MediaPlayerVout;
+        event.u.media_player_vout.new_count = i_vout;
+        libvlc_event_send( p_mi->p_event_manager, &event );
+    }
 
     return VLC_SUCCESS;
 }
@@ -395,7 +413,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_Create (mp, "vmem-height", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
     var_Create (mp, "vmem-pitch", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
     var_Create (mp, "drawable-xid", VLC_VAR_INTEGER);
-#ifdef WIN32
+#if defined (WIN32) || defined (__OS2__)
     var_Create (mp, "drawable-hwnd", VLC_VAR_INTEGER);
 #endif
 #ifdef __APPLE__
@@ -452,7 +470,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_SetAddress (mp, "find-input-callback", find_input);
     var_Create (mp, "amem-data", VLC_VAR_ADDRESS);
     var_Create (mp, "amem-setup", VLC_VAR_ADDRESS);
-    var_Create (mp, "amem-close", VLC_VAR_ADDRESS);
+    var_Create (mp, "amem-cleanup", VLC_VAR_ADDRESS);
     var_Create (mp, "amem-play", VLC_VAR_ADDRESS);
     var_Create (mp, "amem-pause", VLC_VAR_ADDRESS);
     var_Create (mp, "amem-resume", VLC_VAR_ADDRESS);
@@ -496,6 +514,8 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     register_event(mp, TitleChanged);
     register_event(mp, PausableChanged);
 
+    register_event(mp, Vout);
+
     /* Snapshot initialization */
     register_event(mp, SnapshotTaken);
 
@@ -915,7 +935,7 @@ void libvlc_media_player_set_hwnd( libvlc_media_player_t *p_mi,
                                    void *drawable )
 {
     assert (p_mi != NULL);
-#ifdef WIN32
+#if defined (WIN32) || defined (__OS2__)
     var_SetString (p_mi, "window",
                    (drawable != NULL) ? "embed-hwnd,any" : "");
     var_SetInteger (p_mi, "drawable-hwnd", (uintptr_t)drawable);
@@ -930,7 +950,7 @@ void libvlc_media_player_set_hwnd( libvlc_media_player_t *p_mi,
 void *libvlc_media_player_get_hwnd( libvlc_media_player_t *p_mi )
 {
     assert (p_mi != NULL);
-#ifdef WIN32
+#if defined (WIN32) || defined (__OS2__)
     return (void *)(uintptr_t)var_GetInteger (p_mi, "drawable-hwnd");
 #else
     return NULL;
@@ -1271,7 +1291,7 @@ int libvlc_media_player_is_seekable( libvlc_media_player_t *p_mi )
 }
 
 void libvlc_media_player_navigate( libvlc_media_player_t* p_mi,
-                                  unsigned navigate )
+                                   unsigned navigate )
 {
     input_thread_t *p_input_thread;
 
@@ -1283,7 +1303,7 @@ void libvlc_media_player_navigate( libvlc_media_player_t* p_mi,
       return;
 
     var_SetInteger( p_mi->p_libvlc_instance->p_libvlc_int,
-                   "key-action", libvlc_navigate_to_action[navigate] );
+                    "key-action", libvlc_navigate_to_action[navigate] );
 
     vlc_object_release( p_input_thread );
 }
@@ -1324,7 +1344,7 @@ libvlc_track_description_t *
                 malloc( sizeof( libvlc_track_description_t ) );
             if ( !p_actual )
             {
-                libvlc_track_description_release( p_track_description );
+                libvlc_track_description_list_release( p_track_description );
                 libvlc_printerr( "Not enough memory" );
                 goto end;
             }
@@ -1345,7 +1365,13 @@ end:
     return p_track_description;
 }
 
+// Deprecated alias for libvlc_track_description_list_release
 void libvlc_track_description_release( libvlc_track_description_t *p_td )
+{
+    libvlc_track_description_list_release( p_td );
+}
+
+void libvlc_track_description_list_release( libvlc_track_description_t *p_td )
 {
     libvlc_track_description_t *p_actual, *p_before;
     p_actual = p_td;