]> git.sesse.net Git - vlc/blobdiff - src/control/mediacontrol_core.c
control/hierarchical_node_media_list_view.c: Implement a view that only show the...
[vlc] / src / control / mediacontrol_core.c
index 85d7f923089d52972f367a789689100a36d70ab4..7c3c9756f49983bb0cff15a5dbcf189ca5c1b70c 100644 (file)
@@ -55,8 +55,6 @@ mediacontrol_Instance* mediacontrol_new( int argc, char** argv, mediacontrol_Exc
 {
     mediacontrol_Instance* retval;
     libvlc_exception_t ex;
-    char** ppsz_argv = NULL;
-    int i_index;
 
     libvlc_exception_init( &ex );
     mediacontrol_exception_init( exception );
@@ -65,22 +63,11 @@ mediacontrol_Instance* mediacontrol_new( int argc, char** argv, mediacontrol_Exc
     if( !retval )
         RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
 
-    /* Prepend a dummy argv[0] so that users of the API do not have to
-       do it themselves, and can simply provide the args list. */
-    ppsz_argv = malloc( ( argc + 2 ) * sizeof( char * ) ) ;
-    if( ! ppsz_argv )
-        RAISE_NULL( mediacontrol_InternalException, "Out of memory" );
-
-    ppsz_argv[0] = strdup("vlc");
-    for ( i_index = 0; i_index < argc; i_index++ )
-        ppsz_argv[i_index + 1] = argv[i_index];
-    ppsz_argv[argc + 1] = NULL;
-
-    retval->p_instance = libvlc_new( argc + 1, ppsz_argv, &ex );
-    retval->p_playlist = retval->p_instance->p_libvlc_int->p_playlist;
+    retval->p_instance = libvlc_new( argc, argv, &ex );
     HANDLE_LIBVLC_EXCEPTION_NULL( &ex );
+    retval->p_playlist = retval->p_instance->p_libvlc_int->p_playlist;
     return retval;
-};
+}
 
 void
 mediacontrol_exit( mediacontrol_Instance *self )
@@ -88,7 +75,7 @@ mediacontrol_exit( mediacontrol_Instance *self )
     libvlc_exception_t ex;
     libvlc_exception_init( &ex );
 
-    libvlc_destroy( self->p_instance, &ex );
+    libvlc_release( self->p_instance, &ex );
 }
 
 libvlc_instance_t*
@@ -346,6 +333,7 @@ mediacontrol_playlist_get_list( mediacontrol_Instance *self,
     mediacontrol_PlaylistSeq *retval = NULL;
     int i_index;
     playlist_t * p_playlist = self->p_playlist;
+    playlist_item_t *p_root;
     int i_playlist_size;
 
     mediacontrol_exception_init( exception );
@@ -356,13 +344,14 @@ mediacontrol_playlist_get_list( mediacontrol_Instance *self,
     }
 
     vlc_mutex_lock( &p_playlist->object_lock );
-    i_playlist_size = p_playlist->current.i_size;
 
+    p_root = p_playlist->p_root_onelevel->pp_children[0];
+    i_playlist_size = p_root->i_children;
     retval = private_mediacontrol_PlaylistSeq__alloc( i_playlist_size );
 
     for( i_index = 0 ; i_index < i_playlist_size ; i_index++ )
     {
-        retval->data[i_index] = input_item_GetURI( ARRAY_VAL(p_playlist->current, i_index)->p_input );
+        retval->data[i_index] = strdup( p_root->pp_children[i_index]->p_input->psz_name );
     }
     vlc_mutex_unlock( &p_playlist->object_lock );