X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fplaylist%2Fplaylist_internal.h;h=6afec4a26cd504a792a4a00c0d49eee9b8d3be1f;hb=bd6930e42cd1aecdf8e4d292ea089a9e12ae0960;hp=efc1d02825c3b55e1a4d179f79db29e82e1fc08a;hpb=583d3c85cc4f9057483ffad7410dfe5e298ffea8;p=vlc diff --git a/src/playlist/playlist_internal.h b/src/playlist/playlist_internal.h index efc1d02825..6afec4a26c 100644 --- a/src/playlist/playlist_internal.h +++ b/src/playlist/playlist_internal.h @@ -41,25 +41,29 @@ #include "fetcher.h" #include "preparser.h" +typedef 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 */ + char *psz_name; +} vlc_sd_internal_t; + + 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. */ - 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_resource_t * p_input_resource; /**< input resources */ struct { /* Current status. These fields are readonly, only the playlist * main loop can touch it*/ @@ -82,12 +86,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; @@ -130,13 +139,19 @@ playlist_item_t * playlist_NodeAddInput( playlist_t *, input_item_t *, /* 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 * ); + +void playlist_NodesPairCreate( playlist_t *, const char *, playlist_item_t **, playlist_item_t **, bool ); +int playlist_NodeEmpty( playlist_t *, playlist_item_t *, bool ); + + /** * @} */