]> git.sesse.net Git - vlc/blobdiff - src/playlist/playlist_internal.h
Fixing the mosaic memleak is worth mentioning.
[vlc] / src / playlist / playlist_internal.h
index c0aac54a7bb3dada4f52f4131b5b0d82cfbcdbac..86279f66ed60b015f620896829ffa696dde72954 100644 (file)
@@ -46,7 +46,6 @@ typedef struct playlist_private_t
     playlist_t           public_data;
     playlist_preparser_t *p_preparser;  /**< Preparser data */
     playlist_fetcher_t   *p_fetcher;    /**< Meta and art fetcher data */
-    sout_instance_t      *p_sout;       /**< Kept sout instance */
 
     playlist_item_array_t items_to_delete; /**< Array of items and nodes to
             delete... At the very end. This sucks. */
@@ -60,6 +59,7 @@ typedef struct playlist_private_t
     int                   i_sds;   /**< Number of service discovery modules */
     input_thread_t *      p_input;  /**< the input thread associated
                                      * with the current item */
+    input_resource_t *   p_input_resource; /**< input resources */
     struct {
         /* Current status. These fields are readonly, only the playlist
          * main loop can touch it*/
@@ -82,12 +82,17 @@ typedef struct playlist_private_t
         vlc_mutex_t         lock;     /**< Lock to protect request */
     } request;
 
+    vlc_thread_t thread; /**< engine thread */
+    vlc_mutex_t lock; /**< dah big playlist global lock */
+    vlc_cond_t signal; /**< wakes up the playlist engine thread */
+
+    int      i_last_playlist_id; /**< Last id to an item */
+    bool     b_reset_currently_playing; /** Reset current item array */
+
     bool     b_tree; /**< Display as a tree */
     bool     b_doing_ml; /**< Doing media library stuff  get quicker */
     bool     b_auto_preparse;
     mtime_t  last_rebuild_date;
-    bool     b_reset_currently_playing; /** Reset current item array */
-    int      i_last_playlist_id; /**< Last id to an item */
 
 } playlist_private_t;
 
@@ -109,19 +114,11 @@ playlist_item_t *playlist_ItemNewFromInput( playlist_t *p_playlist,
                                               input_item_t *p_input );
 
 /* Engine */
-void playlist_MainLoop( playlist_t * );
-
-void ResetCurrentlyPlaying( playlist_t *, bool, playlist_item_t * );
-
 playlist_item_t * get_current_status_item( playlist_t * p_playlist);
 playlist_item_t * get_current_status_node( playlist_t * p_playlist );
 void set_current_status_item( playlist_t *, playlist_item_t * );
 void set_current_status_node( playlist_t *, playlist_item_t * );
 
-/* Control */
-playlist_item_t * playlist_NextItem  ( playlist_t * );
-int playlist_PlayItem  ( playlist_t *, playlist_item_t * );
-
 /* Load/Save */
 int playlist_MLLoad( playlist_t *p_playlist );
 int playlist_MLDump( playlist_t *p_playlist );
@@ -145,9 +142,9 @@ int playlist_DeleteFromInputInParent( playlist_t *, int, playlist_item_t *, bool
 int playlist_DeleteFromItemId( playlist_t*, int );
 int playlist_ItemRelease( playlist_item_t * );
 
-void playlist_release_current_input( playlist_t * p_playlist );
-void playlist_set_current_input(
-    playlist_t * p_playlist, input_thread_t * p_input );
+
+void playlist_NodesPairCreate( playlist_t *, const char *, playlist_item_t **, playlist_item_t **, bool );
+int playlist_NodeEmpty( playlist_t *, playlist_item_t *, bool );
 
 
 /**