From: Geoffroy Couprie Date: Fri, 22 Aug 2008 13:12:35 +0000 (+0200) Subject: Add tree-view for SD only X-Git-Tag: 0.9.0~100 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=6baf831c58de58106c0f3ca82211235922948c8a;p=vlc Add tree-view for SD only Signed-off-by: Jean-Baptiste Kempf --- diff --git a/include/vlc_input.h b/include/vlc_input.h index d3d672b153..f97d196061 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -73,6 +73,7 @@ struct input_item_t mtime_t i_duration; /**< Duration in milliseconds*/ uint8_t i_type; /**< Type (file, disc, ...) */ + bool b_prefers_tree; /**< Do we prefer being displayed as tree*/ int i_categories; /**< Number of info categories */ info_category_t **pp_categories; /**< Pointer to the first info category */ diff --git a/src/input/item.c b/src/input/item.c index d5c154e972..91d30deff3 100644 --- a/src/input/item.c +++ b/src/input/item.c @@ -543,6 +543,7 @@ input_item_t *input_item_NewWithType( vlc_object_t *p_obj, const char *psz_uri, p_input->psz_uri = NULL; p_input->i_type = i_type; + p_input->b_prefers_tree = false; if( p_input->i_type == ITEM_TYPE_UNKNOWN ) GuessType( p_input ); diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index 1f2d9bf25b..13b01bb64a 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -355,6 +355,9 @@ int playlist_ServicesDiscoveryAdd( playlist_t *p_playlist, const char *psz_modu p_sds = malloc( sizeof(struct playlist_services_discovery_support_t) ); if( !p_sds ) return VLC_ENOMEM; + + /* We want tree-view for service directory */ + p_one->p_input->b_prefers_tree = true; p_sds->p_sd = p_sd; p_sds->p_one = p_one; p_sds->p_cat = p_cat; diff --git a/src/playlist/tree.c b/src/playlist/tree.c index 1a8d0cc924..4f7f7f2479 100644 --- a/src/playlist/tree.c +++ b/src/playlist/tree.c @@ -336,7 +336,7 @@ playlist_item_t * playlist_GetPreferredNode( playlist_t *p_playlist, int i; if( p_node->p_parent == p_playlist->p_root_category ) { - if( p_playlist->b_tree ) + if( p_playlist->b_tree || p_node->p_input->b_prefers_tree ) return p_node; for( i = 0 ; i< p_playlist->p_root_onelevel->i_children; i++ ) { @@ -347,7 +347,7 @@ playlist_item_t * playlist_GetPreferredNode( playlist_t *p_playlist, } else if( p_node->p_parent == p_playlist->p_root_onelevel ) { - if( !p_playlist->b_tree ) + if( !p_playlist->b_tree || !p_node->p_input->b_prefers_tree ) return p_node; for( i = 0 ; i< p_playlist->p_root_category->i_children; i++ ) {