+ psz = input_item_GetURL( p_node->p_input );
+ mvar_AppendNewVar( itm, "url", psz );
+ free( psz );
+
+ psz = input_item_GetLanguage( p_node->p_input );
+ mvar_AppendNewVar( itm, "language", psz );
+ free( psz );
+
+ psz = input_item_GetNowPlaying( p_node->p_input );
+ mvar_AppendNewVar( itm, "now_playing", psz );
+ free( psz );
+
+ psz = input_item_GetPublisher( p_node->p_input );
+ mvar_AppendNewVar( itm, "publisher", psz );
+ free( psz );
+
+ psz = input_item_GetEncodedBy( p_node->p_input );
+ mvar_AppendNewVar( itm, "encoded_by", psz );
+ free( psz );
+
+ psz = input_item_GetArtURL( p_node->p_input );
+ mvar_AppendNewVar( itm, "art_url", psz );
+ free( psz );
+
+ psz = input_item_GetTrackID( p_node->p_input );
+ mvar_AppendNewVar( itm, "track_id", psz );
+ free( psz );
+
+ mvar_AppendVar( s, itm );
+ }
+ else
+ {
+ char value[512];
+ int i_child;
+ mvar_t *itm = mvar_New( name, "set" );
+
+ mvar_AppendNewVar( itm, "name", p_node->p_input->psz_name );
+ mvar_AppendNewVar( itm, "uri", p_node->p_input->psz_name );
+
+ mvar_AppendNewVar( itm, "type", "Node" );
+
+ sprintf( value, "%d", p_node->i_id );
+ mvar_AppendNewVar( itm, "index", value );
+
+ sprintf( value, "%d", p_node->i_children);
+ mvar_AppendNewVar( itm, "i_children", value );
+
+ sprintf( value, "%d", i_depth );
+ mvar_AppendNewVar( itm, "depth", value );
+
+ if( p_node->i_flags & PLAYLIST_RO_FLAG )
+ mvar_AppendNewVar( itm, "ro", "ro" );
+ else
+ mvar_AppendNewVar( itm, "ro", "rw" );
+
+ mvar_AppendVar( s, itm );
+
+ for( i_child = 0 ; i_child < p_node->i_children ; i_child++ )
+ PlaylistListNode( p_intf, p_pl, p_node->pp_children[i_child],
+ name, s, i_depth + 1);