Changeset 496a54201d383dc056767a10b79e2a0354512e53
- Timestamp:
- 10/12/06 15:00:54 (2 years ago)
- git-parent:
- Files:
-
- include/vlc/vlc.h (modified) (1 diff)
- include/vlc_playlist.h (modified) (1 diff)
- modules/access/directory.c (modified) (3 diffs)
- modules/gui/macosx/playlist.m (modified) (1 diff)
- modules/gui/wxwidgets/dialogs/playlist.cpp (modified) (1 diff)
- modules/services_discovery/bonjour.c (modified) (1 diff)
- modules/services_discovery/podcast.c (modified) (1 diff)
- modules/services_discovery/sap.c (modified) (1 diff)
- modules/services_discovery/upnp_cc.cpp (modified) (2 diffs)
- modules/services_discovery/upnp_intel.cpp (modified) (2 diffs)
- src/input/es_out.c (modified) (1 diff)
- src/input/input.c (modified) (2 diffs)
- src/input/var.c (modified) (2 diffs)
- src/libvlc-common.c (modified) (1 diff)
- src/misc/objects.c (modified) (1 diff)
- src/playlist/engine.c (modified) (3 diffs)
- src/playlist/item.c (modified) (12 diffs)
- src/playlist/playlist_internal.h (modified) (1 diff)
- src/playlist/tree.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
include/vlc/vlc.h
rfbf4c80 r496a542 143 143 #define PLAYLIST_PREPARSE 0x0008 144 144 #define PLAYLIST_SPREPARSE 0x0010 145 #define PLAYLIST_NO_REBUILD 0x0020 145 146 146 147 #define PLAYLIST_END -666 include/vlc_playlist.h
rfbf4c80 r496a542 395 395 396 396 /* Node management */ 397 VLC_EXPORT( playlist_item_t *, playlist_NodeCreate, ( playlist_t *, const char *, playlist_item_t * p_parent ) );397 VLC_EXPORT( playlist_item_t *, playlist_NodeCreate, ( playlist_t *, const char *, playlist_item_t * p_parent, int i_flags ) ); 398 398 VLC_EXPORT( int, playlist_NodeAppend, (playlist_t *,playlist_item_t*,playlist_item_t *) ); 399 399 VLC_EXPORT( int, playlist_NodeInsert, (playlist_t *,playlist_item_t*,playlist_item_t *, int) ); modules/access/directory.c
r60672ab r496a542 238 238 DIRECTORY_ACTIVITY ); 239 239 240 playlist_Signal( p_playlist ); 241 240 242 if( psz_name ) free( psz_name ); 241 243 vlc_object_release( p_playlist ); … … 434 436 msg_Dbg(p_playlist, "creading subdirectory %s", psz_uri ); 435 437 436 p_node = playlist_NodeCreate (p_playlist, entry, 437 p_parent_category); 438 p_node = playlist_NodeCreate( p_playlist, entry, 439 p_parent_category, 440 PLAYLIST_NO_REBUILD ); 438 441 439 442 /* If we had the parent in category, the it is now node. … … 483 486 playlist_BothAddInput( p_playlist, p_input, 484 487 p_parent_category, 485 PLAYLIST_APPEND|PLAYLIST_PREPARSE, 488 PLAYLIST_APPEND|PLAYLIST_PREPARSE| 489 PLAYLIST_NO_REBUILD, 486 490 PLAYLIST_END, NULL, NULL ); 487 491 } modules/gui/macosx/playlist.m
r7614e4e r496a542 1344 1344 if( psz_name != NULL && psz_name != "" ) 1345 1345 p_item = playlist_NodeCreate( p_playlist, psz_name, 1346 p_playlist->p_local_category );1346 p_playlist->p_local_category, 0 ); 1347 1347 else 1348 1348 p_item = playlist_NodeCreate( p_playlist, _("Empty Folder"), 1349 p_playlist->p_local_category );1349 p_playlist->p_local_category, 0 ); 1350 1350 1351 1351 if(! p_item ) modules/gui/wxwidgets/dialogs/playlist.cpp
rdbcaeb3 r496a542 1637 1637 p_item = playlist_ItemGetById( p_playlist, p_wxitem->i_id, VLC_TRUE ); 1638 1638 1639 playlist_NodeCreate( p_playlist, psz_name, p_item );1639 playlist_NodeCreate( p_playlist, psz_name, p_item, 0 ); 1640 1640 1641 1641 UnlockPlaylist( p_intf->p_sys, p_playlist ); modules/services_discovery/bonjour.c
rd3fe7f2 r496a542 308 308 309 309 p_sys->p_node_cat = playlist_NodeCreate( p_sys->p_playlist, _("Bonjour"), 310 p_sys->p_playlist->p_root_category);310 p_sys->p_playlist->p_root_category, 0 ); 311 311 p_sys->p_node_one = playlist_NodeCreate( p_sys->p_playlist, _("Bonjour"), 312 p_sys->p_playlist->p_root_onelevel);312 p_sys->p_playlist->p_root_onelevel, 0 ); 313 313 p_sys->p_node_one->p_input->i_id = p_sys->p_node_cat->p_input->i_id; 314 314 modules/services_discovery/podcast.c
rd3fe7f2 r496a542 150 150 151 151 p_sys->p_node_cat = playlist_NodeCreate( p_playlist, _("Podcast"), 152 p_playlist->p_root_category );152 p_playlist->p_root_category, 0 ); 153 153 p_sys->p_node_one = playlist_NodeCreate( p_playlist, _("Podcast"), 154 p_playlist->p_root_onelevel );154 p_playlist->p_root_onelevel, 0 ); 155 155 p_sys->p_node_one->p_input->i_id = p_sys->p_node_cat->p_input->i_id; 156 156 modules/services_discovery/sap.c
rd3fe7f2 r496a542 803 803 { 804 804 p_child = playlist_NodeCreate( pl_Get( p_sd ), psz_value, 805 p_sys->p_node_cat );805 p_sys->p_node_cat, 0 ); 806 806 p_child->i_flags &= ~PLAYLIST_SKIP_FLAG; 807 807 } modules/services_discovery/upnp_cc.cpp
rd3fe7f2 r496a542 207 207 char *str = strdup( dev->getFriendlyName( ) ); 208 208 209 p_item = playlist_NodeCreate( p_sys->p_playlist, str, p_sys->p_node_cat );209 p_item = playlist_NodeCreate( p_sys->p_playlist, str, p_sys->p_node_cat,0 ); 210 210 p_item->i_flags &= ~PLAYLIST_SKIP_FLAG; 211 211 msg_Dbg( p_sd, "device %s added", str ); … … 248 248 char* p_name = strdup(title); /* See other comment on strdup */ 249 249 playlist_item_t* p_node = playlist_NodeCreate( p_sys->p_playlist, 250 p_name, p_parent );250 p_name, p_parent, 0 ); 251 251 free(p_name); 252 252 modules/services_discovery/upnp_intel.cpp
rd3fe7f2 r496a542 855 855 856 856 char* title = strdup( container->getTitle() ); 857 playlist_item_t* node = playlist_NodeCreate( p_playlist, title, parentNode );857 playlist_item_t* node = playlist_NodeCreate( p_playlist, title, parentNode, 0 ); 858 858 free( title ); 859 859 … … 917 917 playlist_item_t* node = playlist_NodeCreate( pl_Get( _cookie->serviceDiscovery ), 918 918 name, 919 _cookie->serviceDiscovery->p_sys->p_node_cat );919 _cookie->serviceDiscovery->p_sys->p_node_cat, 0 ); 920 920 free( name ); 921 921 s->setPlaylistNode( node ); src/input/es_out.c
rd3fe7f2 r496a542 178 178 p_sys->i_sub_last = val.i_int; 179 179 180 var_Get( p_input, "audio-language", &val ); 181 p_sys->ppsz_audio_language = LanguageSplit(val.psz_string); 182 if( p_sys->ppsz_audio_language ) 183 { 184 for( i = 0; p_sys->ppsz_audio_language[i]; i++ ) 185 msg_Dbg( p_input, "selected audio language[%d] %s", 186 i, p_sys->ppsz_audio_language[i] ); 187 } 188 if( val.psz_string ) free( val.psz_string ); 189 190 var_Get( p_input, "sub-language", &val ); 191 p_sys->ppsz_sub_language = LanguageSplit(val.psz_string); 192 if( p_sys->ppsz_sub_language ) 193 { 194 for( i = 0; p_sys->ppsz_sub_language[i]; i++ ) 195 msg_Dbg( p_input, "selected subtitle language[%d] %s", 196 i, p_sys->ppsz_sub_language[i] ); 197 } 198 if( val.psz_string ) free( val.psz_string ); 180 if( !p_input->b_preparsing ) 181 { 182 var_Get( p_input, "audio-language", &val ); 183 p_sys->ppsz_audio_language = LanguageSplit(val.psz_string); 184 if( p_sys->ppsz_audio_language ) 185 { 186 for( i = 0; p_sys->ppsz_audio_language[i]; i++ ) 187 msg_Dbg( p_input, "selected audio language[%d] %s", 188 i, p_sys->ppsz_audio_language[i] ); 189 } 190 if( val.psz_string ) free( val.psz_string ); 191 192 var_Get( p_input, "sub-language", &val ); 193 p_sys->ppsz_sub_language = LanguageSplit(val.psz_string); 194 if( p_sys->ppsz_sub_language ) 195 { 196 for( i = 0; p_sys->ppsz_sub_language[i]; i++ ) 197 msg_Dbg( p_input, "selected subtitle language[%d] %s", 198 i, p_sys->ppsz_sub_language[i] ); 199 } 200 if( val.psz_string ) free( val.psz_string ); 201 } 202 else 203 { 204 p_sys->ppsz_sub_language = NULL; 205 p_sys->ppsz_audio_language = NULL; 206 } 199 207 200 208 var_Get( p_input, "audio-track-id", &val ); src/input/input.c
r7c8c88f r496a542 198 198 199 199 /* Create Objects variables for public Get and Set */ 200 input_ControlVarInit( p_input ); 200 if( !p_input->b_preparsing ) 201 input_ControlVarInit( p_input ); 202 201 203 p_input->p->input.i_cr_average = var_GetInteger( p_input, "cr-average" ); 202 204 … … 1148 1150 1149 1151 /* Clean control variables */ 1150 input_ControlVarClean( p_input ); 1152 if( !p_input->b_preparsing ) 1153 input_ControlVarClean( p_input ); 1151 1154 1152 1155 /* Clean up master */ src/input/var.c
rd3fe7f2 r496a542 387 387 388 388 /* Create Object Variables for private use only */ 389 var_Create( p_input, "video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 390 var_Create( p_input, "audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 391 var_Create( p_input, "spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 392 393 var_Create( p_input, "audio-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 394 var_Create( p_input, "sub-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 395 396 var_Create( p_input, "audio-language", VLC_VAR_STRING|VLC_VAR_DOINHERIT ); 397 var_Create( p_input, "sub-language", VLC_VAR_STRING|VLC_VAR_DOINHERIT ); 398 399 var_Create( p_input, "audio-track-id", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 400 var_Create( p_input, "sub-track-id", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 401 402 var_Create( p_input, "sub-file", VLC_VAR_FILE | VLC_VAR_DOINHERIT ); 403 var_Create( p_input, "sub-autodetect-file", VLC_VAR_BOOL | 404 VLC_VAR_DOINHERIT ); 405 var_Create( p_input, "sub-autodetect-path", VLC_VAR_STRING | 406 VLC_VAR_DOINHERIT ); 407 var_Create( p_input, "sub-autodetect-fuzzy", VLC_VAR_INTEGER | 408 VLC_VAR_DOINHERIT ); 409 410 var_Create( p_input, "sout", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); 411 var_Create( p_input, "sout-all", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 412 var_Create( p_input, "sout-audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 413 var_Create( p_input, "sout-video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 414 var_Create( p_input, "sout-spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 415 var_Create( p_input, "sout-keep", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 416 417 var_Create( p_input, "input-repeat", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 418 419 var_Create( p_input, "start-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 420 var_Create( p_input, "stop-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 421 422 var_Create( p_input, "minimize-threads", VLC_VAR_BOOL|VLC_VAR_DOINHERIT ); 389 390 if( !p_input->b_preparsing ) 391 { 392 var_Create( p_input, "video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 393 var_Create( p_input, "audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 394 var_Create( p_input, "spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 395 396 var_Create( p_input, "audio-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 397 var_Create( p_input, "sub-track", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 398 399 var_Create( p_input, "audio-language", 400 VLC_VAR_STRING|VLC_VAR_DOINHERIT ); 401 var_Create( p_input, "sub-language", 402 VLC_VAR_STRING|VLC_VAR_DOINHERIT ); 403 404 var_Create( p_input, "audio-track-id", 405 VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 406 var_Create( p_input, "sub-track-id", 407 VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 408 409 var_Create( p_input, "sub-file", VLC_VAR_FILE | VLC_VAR_DOINHERIT ); 410 var_Create( p_input, "sub-autodetect-file", VLC_VAR_BOOL | 411 VLC_VAR_DOINHERIT ); 412 var_Create( p_input, "sub-autodetect-path", VLC_VAR_STRING | 413 VLC_VAR_DOINHERIT ); 414 var_Create( p_input, "sub-autodetect-fuzzy", VLC_VAR_INTEGER | 415 VLC_VAR_DOINHERIT ); 416 417 var_Create( p_input, "sout", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); 418 var_Create( p_input, "sout-all", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 419 var_Create( p_input, "sout-audio", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 420 var_Create( p_input, "sout-video", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 421 var_Create( p_input, "sout-spu", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 422 var_Create( p_input, "sout-keep", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); 423 424 var_Create( p_input, "input-repeat", 425 VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 426 var_Create( p_input, "start-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 427 var_Create( p_input, "stop-time", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); 428 429 var_Create( p_input, "input-slave", 430 VLC_VAR_STRING | VLC_VAR_DOINHERIT ); 431 432 var_Create( p_input, "minimize-threads", 433 VLC_VAR_BOOL|VLC_VAR_DOINHERIT ); 434 435 var_Create( p_input, "audio-desync", 436 VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); 437 var_Create( p_input, "cr-average", 438 VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); 439 var_Create( p_input, "clock-synchro", 440 VLC_VAR_INTEGER | VLC_VAR_DOINHERIT); 441 } 423 442 424 443 var_Create( p_input, "demuxed-id3", VLC_VAR_BOOL ); /* FIXME beurk */ … … 426 445 var_Change( p_input, "demuxed-id3", VLC_VAR_SETVALUE, &val, NULL ); 427 446 428 var_Create( p_input, "audio-desync", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );429 430 var_Create( p_input, "cr-average", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );431 var_Create( p_input, "clock-synchro", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);432 433 447 var_Create( p_input, "seekable", VLC_VAR_BOOL ); 434 448 val.b_bool = VLC_TRUE; /* Fixed later*/ 435 449 var_Change( p_input, "seekable", VLC_VAR_SETVALUE, &val, NULL ); 436 437 var_Create( p_input, "input-slave", VLC_VAR_STRING | VLC_VAR_DOINHERIT );438 450 439 451 /* */ src/libvlc-common.c
r6c464c3 r496a542 580 580 DBusConnection *p_conn; 581 581 DBusError dbus_error; 582 int i_dbus_service;583 582 584 583 dbus_threads_init_default(); src/misc/objects.c
r696f7c1 r496a542 853 853 int i_index; 854 854 855 vlc_mutex_lock( &structure_lock ); 855 856 for( i_index = 0; i_index < p_list->i_count; i_index++ ) 856 857 { 857 vlc_mutex_lock( &structure_lock );858 859 858 p_list->p_values[i_index].p_object->i_refcount--; 860 861 vlc_mutex_unlock( &structure_lock ); 862 } 859 } 860 vlc_mutex_unlock( &structure_lock ); 863 861 864 862 free( p_list->p_values ); src/playlist/engine.c
rd3fe7f2 r496a542 95 95 var_CreateGetBool( p_playlist, "auto-preparse") ; 96 96 97 p_playlist->p_root_category = playlist_NodeCreate( p_playlist, NULL, NULL); 98 p_playlist->p_root_onelevel = playlist_NodeCreate( p_playlist, NULL, NULL); 97 p_playlist->p_root_category = playlist_NodeCreate( p_playlist, NULL, NULL, 98 0 ); 99 p_playlist->p_root_onelevel = playlist_NodeCreate( p_playlist, NULL, NULL, 100 0 ); 99 101 100 102 if( !p_playlist->p_root_category || !p_playlist->p_root_onelevel ) … … 103 105 /* Create playlist and media library */ 104 106 p_playlist->p_local_category = playlist_NodeCreate( p_playlist, 105 _( "Playlist" ),p_playlist->p_root_category);107 _( "Playlist" ),p_playlist->p_root_category, 0 ); 106 108 p_playlist->p_local_onelevel = playlist_NodeCreate( p_playlist, 107 _( "Playlist" ), p_playlist->p_root_onelevel);109 _( "Playlist" ), p_playlist->p_root_onelevel, 0 ); 108 110 p_playlist->p_local_category->i_flags |= PLAYLIST_RO_FLAG; 109 111 p_playlist->p_local_onelevel->i_flags |= PLAYLIST_RO_FLAG; … … 121 123 { 122 124 p_playlist->p_ml_category = playlist_NodeCreate( p_playlist, 123 _( "Media Library" ), p_playlist->p_root_category);125 _( "Media Library" ), p_playlist->p_root_category, 0 ); 124 126 p_playlist->p_ml_onelevel = playlist_NodeCreate( p_playlist, 125 _( "Media Library" ), p_playlist->p_root_onelevel);127 _( "Media Library" ), p_playlist->p_root_onelevel, 0 ); 126 128 127 129 if(!p_playlist->p_ml_category || !p_playlist->p_ml_onelevel) src/playlist/item.c
rd3fe7f2 r496a542 27 27 #include "playlist_internal.h" 28 28 29 void AddItem( playlist_t *p_playlist, playlist_item_t *p_item,30 playlist_item_t *p_node, int i_pos );31 void GoAndPreparse( playlist_t *p_playlist, int i_mode,32 playlist_item_t *, playlist_item_t * );33 void ChangeToNode( playlist_t *p_playlist, playlist_item_t *p_item );34 int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item,35 vlc_bool_t b_stop );29 static void AddItem( playlist_t *p_playlist, playlist_item_t *p_item, 30 playlist_item_t *p_node, int i_mode, int i_pos ); 31 static void GoAndPreparse( playlist_t *p_playlist, int i_mode, 32 playlist_item_t *, playlist_item_t * ); 33 static void ChangeToNode( playlist_t *p_playlist, playlist_item_t *p_item ); 34 static int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item, 35 vlc_bool_t b_stop ); 36 36 37 37 /***************************************************************************** … … 207 207 AddItem( p_playlist, p_item_one, 208 208 b_playlist ? p_playlist->p_local_onelevel : 209 p_playlist->p_ml_onelevel , i_ pos );209 p_playlist->p_ml_onelevel , i_mode, i_pos ); 210 210 211 211 /* Add to CATEGORY */ … … 214 214 AddItem( p_playlist, p_item_cat, 215 215 b_playlist ? p_playlist->p_local_category : 216 p_playlist->p_ml_category , i_ pos );216 p_playlist->p_ml_category , i_mode, i_pos ); 217 217 218 218 GoAndPreparse( p_playlist, i_mode, p_item_cat, p_item_one ); … … 238 238 p_item_cat = playlist_ItemNewFromInput( p_playlist, p_input ); 239 239 if( p_item_cat == NULL ) return VLC_EGENERIC; 240 AddItem( p_playlist, p_item_cat, p_direct_parent, i_ pos );240 AddItem( p_playlist, p_item_cat, p_direct_parent, i_mode, i_pos ); 241 241 242 242 /* Add to onelevel */ … … 256 256 { 257 257 AddItem( p_playlist, p_item_one, 258 p_playlist->p_root_onelevel->pp_children[i_top], i_pos ); 258 p_playlist->p_root_onelevel->pp_children[i_top], 259 i_mode, i_pos ); 259 260 break; 260 261 } … … 283 284 p_item = playlist_ItemNewFromInput( p_playlist, p_input ); 284 285 if( p_item == NULL ) return NULL; 285 AddItem( p_playlist, p_item, p_parent, i_ pos );286 AddItem( p_playlist, p_item, p_parent, i_mode, i_pos ); 286 287 287 288 vlc_mutex_unlock( &p_playlist->object_lock ); … … 476 477 /** Send a notification that an item has been added to a node */ 477 478 void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, 478 int i_node_id )479 int i_node_id, vlc_bool_t b_signal ) 479 480 { 480 481 vlc_value_t val; … … 484 485 val.p_address = p_add; 485 486 p_playlist->b_reset_currently_playing = VLC_TRUE; 486 vlc_cond_signal( &p_playlist->object_wait ); 487 if( b_signal ) 488 vlc_cond_signal( &p_playlist->object_wait ); 487 489 var_Set( p_playlist, "item-append", val ); 488 490 free( p_add ); … … 510 512 511 513 /* Enqueue an item for preparsing, and play it, if needed */ 512 void GoAndPreparse( playlist_t *p_playlist, int i_mode, 513 playlist_item_t *p_item_cat, playlist_item_t *p_item_one ) 514 static void GoAndPreparse( playlist_t *p_playlist, int i_mode, 515 playlist_item_t *p_item_cat, 516 playlist_item_t *p_item_one ) 514 517 { 515 518 if( (i_mode & PLAYLIST_GO ) ) … … 557 560 558 561 /* Add the playlist item to the requested node and fire a notification */ 559 void AddItem( playlist_t *p_playlist, playlist_item_t *p_item,560 playlist_item_t *p_node, int i_pos )562 static void AddItem( playlist_t *p_playlist, playlist_item_t *p_item, 563 playlist_item_t *p_node, int i_mode, int i_pos ) 561 564 { 562 565 ARRAY_APPEND(p_playlist->items, p_item); … … 570 573 571 574 if( !p_playlist->b_doing_ml ) 572 playlist_SendAddNotify( p_playlist, p_item->i_id, p_node->i_id ); 575 playlist_SendAddNotify( p_playlist, p_item->i_id, p_node->i_id, 576 !( i_mode & PLAYLIST_NO_REBUILD ) ); 573 577 } 574 578 575 579 /* Actually convert an item to a node */ 576 void ChangeToNode( playlist_t *p_playlist, playlist_item_t *p_item )580 static void ChangeToNode( playlist_t *p_playlist, playlist_item_t *p_item ) 577 581 { 578 582 int i; … … 587 591 588 592 /* Do the actual removal */ 589 int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item,590 vlc_bool_t b_stop )593 static int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item, 594 vlc_bool_t b_stop ) 591 595 { 592 596 int i; src/playlist/playlist_internal.h
rd3fe7f2 r496a542 92 92 **********************************************************************/ 93 93 94 void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, int i_node_id ); 94 void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, 95 int i_node_id, vlc_bool_t b_signal ); 95 96 96 97 /* Tree walking */ src/playlist/tree.c
rd3fe7f2 r496a542 47 47 * \paam psz_name the name of the node 48 48 * \param p_parent the parent node to attach to or NULL if no attach 49 * \param p_flags miscellaneous flags 49 50 * \return the new node 50 51 */ 51 playlist_item_t * playlist_NodeCreate( playlist_t *p_playlist, const char *psz_name, 52 playlist_item_t *p_parent ) 52 playlist_item_t * playlist_NodeCreate( playlist_t *p_playlist, 53 const char *psz_name, 54 playlist_item_t *p_parent, int i_flags ) 53 55 { 54 56 input_item_t *p_input; … … 69 71 playlist_NodeAppend( p_playlist, p_item, p_parent ); 70 72 playlist_SendAddNotify( p_playlist, p_item->i_id, 71 p_parent ? p_parent->i_id : -1 ); 73 p_parent ? p_parent->i_id : -1, 74 !( i_flags & PLAYLIST_NO_REBUILD )); 72 75 return p_item; 73 76 } … … 290 293 { 291 294 *pp_node_cat = playlist_NodeCreate( p_playlist, psz_name, 292 p_playlist->p_root_category );295 p_playlist->p_root_category, 0 ); 293 296 *pp_node_one = playlist_NodeCreate( p_playlist, psz_name, 294 p_playlist->p_root_onelevel );297 p_playlist->p_root_onelevel, 0 ); 295 298 (*pp_node_one)->p_input->i_id = (*pp_node_cat)->p_input->i_id; 296 299 if( b_for_sd )
