X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fplaylist%2Fplaylist_internal.h;h=959b8e3d9f1bf5cbd52e37be480fb131f187dd98;hb=41bf4c46cb6c9f30a621ebb3d68bc8844c35a9be;hp=bf159f4bb6b34e79631e2d0f5551996b196f2dcc;hpb=f810fad01c7cd7b153a926a07c7094e03590d929;p=vlc diff --git a/src/playlist/playlist_internal.h b/src/playlist/playlist_internal.h index bf159f4bb6..959b8e3d9f 100644 --- a/src/playlist/playlist_internal.h +++ b/src/playlist/playlist_internal.h @@ -41,6 +41,8 @@ #include "fetcher.h" #include "preparser.h" +typedef struct vlc_sd_internal_t vlc_sd_internal_t; + typedef struct playlist_private_t { playlist_t public_data; @@ -50,16 +52,11 @@ typedef struct playlist_private_t playlist_item_array_t items_to_delete; /**< Array of items and nodes to delete... At the very end. This sucks. */ - struct playlist_services_discovery_support_t { - /* the playlist items for category and onelevel */ - playlist_item_t* p_cat; - playlist_item_t* p_one; - services_discovery_t * p_sd; /**< Loaded service discovery modules */ - } ** pp_sds; + vlc_sd_internal_t **pp_sds; int i_sds; /**< Number of service discovery modules */ input_thread_t * p_input; /**< the input thread associated * with the current item */ - input_ressource_t * p_input_ressource; /**< input ressources */ + input_resource_t * p_input_resource; /**< input resources */ struct { /* Current status. These fields are readonly, only the playlist * main loop can touch it*/ @@ -83,6 +80,7 @@ typedef struct playlist_private_t } 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 */ @@ -103,14 +101,16 @@ typedef struct playlist_private_t /* Creation/Deletion */ playlist_t *playlist_Create( vlc_object_t * ); +void playlist_Destroy( playlist_t * ); /* */ void playlist_Activate( playlist_t * ); void playlist_Deactivate( playlist_t * ); +void pl_Deactivate (libvlc_int_t *); /* */ playlist_item_t *playlist_ItemNewFromInput( playlist_t *p_playlist, - input_item_t *p_input ); + input_item_t *p_input ); /* Engine */ playlist_item_t * get_current_status_item( playlist_t * p_playlist); @@ -132,15 +132,23 @@ void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, playlist_item_t * playlist_NodeAddInput( playlist_t *, input_item_t *, playlist_item_t *,int , int, bool ); +playlist_item_t * playlist_InsertInputItemTree ( playlist_t *, + playlist_item_t *, input_item_node_t *, int, bool ); + /* Tree walking */ playlist_item_t *playlist_ItemFindFromInputAndRoot( playlist_t *p_playlist, - int i_input_id, playlist_item_t *p_root, - bool ); + input_item_t *p_input, playlist_item_t *p_root, + bool ); -int playlist_DeleteFromInputInParent( playlist_t *, int, playlist_item_t *, bool ); +int playlist_DeleteFromInputInParent( playlist_t *, input_item_t *, + playlist_item_t *, bool ); int playlist_DeleteFromItemId( playlist_t*, int ); int playlist_ItemRelease( playlist_item_t * ); +int playlist_NodeEmpty( playlist_t *, playlist_item_t *, bool ); +int playlist_DeleteItem( playlist_t * p_playlist, playlist_item_t *, bool); + + /** * @} */