From 7fef8b8726f85876ffe110a949e1a09251094c83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20K=C3=BChne?= Date: Sun, 17 Sep 2006 18:41:21 +0000 Subject: [PATCH] * updated all files to yield the playlist instead of finding it --- modules/gui/macosx/controls.m | 69 +++----- modules/gui/macosx/embeddedwindow.m | 7 +- modules/gui/macosx/extended.m | 6 +- modules/gui/macosx/intf.m | 110 +++++------- modules/gui/macosx/playlist.m | 253 ++++++++-------------------- modules/gui/macosx/playlistinfo.m | 36 ++-- modules/gui/macosx/wizard.m | 89 +++++----- 7 files changed, 199 insertions(+), 371 deletions(-) diff --git a/modules/gui/macosx/controls.m b/modules/gui/macosx/controls.m index b5cf1dfc3c..1e1627d60a 100644 --- a/modules/gui/macosx/controls.m +++ b/modules/gui/macosx/controls.m @@ -63,24 +63,21 @@ { vlc_value_t val; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist ) - { - vlc_mutex_lock( &p_playlist->object_lock ); - if( p_playlist->i_size <= 0 ) - { - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - [o_main intfOpenFileGeneric: (id)sender]; - } - else - { - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - } + playlist_t * p_playlist = pl_Yield( p_intf ); + vlc_mutex_lock( &p_playlist->object_lock ); + if( p_playlist->i_size <= 0 ) + { + vlc_mutex_unlock( &p_playlist->object_lock ); + vlc_object_release( p_playlist ); + [o_main intfOpenFileGeneric: (id)sender]; + } + else + { + vlc_mutex_unlock( &p_playlist->object_lock ); + vlc_object_release( p_playlist ); } + val.i_int = config_GetInt( p_intf, "key-play-pause" ); var_Set( p_intf->p_libvlc, "key-pressed", val ); } @@ -155,12 +152,7 @@ { vlc_value_t val; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( p_intf ); var_Get( p_playlist, "random", &val ); val.b_bool = !val.b_bool; @@ -185,12 +177,7 @@ { vlc_value_t val; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( p_intf ); var_Get( p_playlist, "repeat", &val ); if (!val.b_bool) @@ -219,12 +206,7 @@ { vlc_value_t val; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( p_intf ); var_Get( p_playlist, "loop", &val ); if (!val.b_bool) @@ -345,17 +327,17 @@ } else { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); - if( p_playlist && ( [o_title isEqualToString: _NS("Fullscreen")] || - [sender isKindOfClass:[NSButton class]] ) ) + if( [o_title isEqualToString: _NS("Fullscreen")] || + [sender isKindOfClass:[NSButton class]] ) { vlc_value_t val; var_Get( p_playlist, "fullscreen", &val ); var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool ); } - if( p_playlist ) vlc_object_release( (vlc_object_t *)p_playlist ); + + vlc_object_release( p_playlist ); } } @@ -697,14 +679,9 @@ BOOL bEnabled = TRUE; vlc_value_t val; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); - if( p_playlist != NULL ) - { - vlc_mutex_lock( &p_playlist->object_lock ); - } - else return FALSE; + vlc_mutex_lock( &p_playlist->object_lock ); #define p_input p_playlist->p_input diff --git a/modules/gui/macosx/embeddedwindow.m b/modules/gui/macosx/embeddedwindow.m index eb28ac833f..53553025ee 100644 --- a/modules/gui/macosx/embeddedwindow.m +++ b/modules/gui/macosx/embeddedwindow.m @@ -87,12 +87,7 @@ - (BOOL)windowShouldClose:(id)sender { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return NO; - } + playlist_t * p_playlist = pl_Yield( VLCIntf ); playlist_Stop( p_playlist ); vlc_object_release( p_playlist ); diff --git a/modules/gui/macosx/extended.m b/modules/gui/macosx/extended.m index 545277f61c..e8247825be 100644 --- a/modules/gui/macosx/extended.m +++ b/modules/gui/macosx/extended.m @@ -369,8 +369,7 @@ static VLCExtended *_o_sharedInstance = nil; id o_window = [NSApp keyWindow]; NSArray *o_windows = [NSApp orderedWindows]; NSEnumerator *o_enumerator = [o_windows objectEnumerator]; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT, FIND_ANYWHERE ); vout_thread_t *p_real_vout; @@ -848,8 +847,7 @@ static VLCExtended *_o_sharedInstance = nil; { /* save the preferences to make sure that our module-changes will up on * next launch again */ - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); int returnedValue; NSArray * theModules; theModules = [[NSArray alloc] initWithObjects: @"main", @"headphone", diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 3a114fa686..ed4d5cb53f 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -456,25 +456,22 @@ static VLCMain *_o_sharedMainInstance = nil; o_size_with_playlist = [o_window frame].size; - p_playlist = (playlist_t *) vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); + p_playlist = pl_Yield( p_intf ); - if( p_playlist ) + /* Check if we need to start playing */ + if( p_intf->b_play ) { - /* Check if we need to start playing */ - if( p_intf->b_play ) - { - playlist_LockControl( p_playlist, PLAYLIST_AUTOPLAY ); - } - var_Create( p_playlist, "fullscreen", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); - val.b_bool = VLC_FALSE; + playlist_LockControl( p_playlist, PLAYLIST_AUTOPLAY ); + } + var_Create( p_playlist, "fullscreen", VLC_VAR_BOOL | VLC_VAR_DOINHERIT); + val.b_bool = VLC_FALSE; - var_AddCallback( p_playlist, "fullscreen", FullscreenChanged, self); - var_AddCallback( p_playlist, "intf-show", ShowController, self); + var_AddCallback( p_playlist, "fullscreen", FullscreenChanged, self); + var_AddCallback( p_playlist, "intf-show", ShowController, self); - [o_embedded_window setFullscreen: var_GetBool( p_playlist, - "fullscreen" )]; - vlc_object_release( p_playlist ); - } + [o_embedded_window setFullscreen: var_GetBool( p_playlist, + "fullscreen" )]; + vlc_object_release( p_playlist ); var_Create( p_intf, "interaction", VLC_VAR_ADDRESS ); var_AddCallback( p_intf, "interaction", InteractCallback, self ); @@ -741,7 +738,7 @@ static VLCMain *_o_sharedMainInstance = nil; case kRemoteButtonVolume_Plus: /* there are two events when the plus or minus button is pressed one when the button is pressed down and one when the button is released */ - if (pressedDown) + if( pressedDown ) { [o_controls volumeUp: self]; } @@ -749,7 +746,8 @@ static VLCMain *_o_sharedMainInstance = nil; case kRemoteButtonVolume_Minus: /* there are two events when the plus or minus button is pressed one when the button is pressed down and one when the button is released */ - if (pressedDown) { + if( pressedDown ) + { [o_controls volumeDown: self]; } break; @@ -763,7 +761,8 @@ static VLCMain *_o_sharedMainInstance = nil; case kRemoteButtonLeft_Hold: /* simulate an event as long as the user holds the button */ b_left_right_remote_button_hold = pressedDown; - if (pressedDown) { + if( pressedDown ) + { NSNumber* buttonIdentifierNumber = [NSNumber numberWithInt: buttonIdentifier]; [self performSelector:@selector(triggerMovieStepForRemoteButton:) withObject:buttonIdentifierNumber]; @@ -917,11 +916,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (id)getPlaylist { - if ( o_playlist ) - { - return o_playlist; - } - return nil; + return o_playlist; } - (id)getInfo @@ -999,19 +994,15 @@ static VLCMain *_o_sharedMainInstance = nil; vlc_thread_set_priority( p_intf, VLC_THREAD_PRIORITY_LOW ); - p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + p_playlist = pl_Yield( p_intf ); - if( p_playlist != NULL ) - { - var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self ); - var_AddCallback( p_playlist, "item-change", PlaylistChanged, self ); - var_AddCallback( p_playlist, "item-append", PlaylistChanged, self ); - var_AddCallback( p_playlist, "item-deleted", PlaylistChanged, self ); - var_AddCallback( p_playlist, "playlist-current", PlaylistChanged, self ); + var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self ); + var_AddCallback( p_playlist, "item-change", PlaylistChanged, self ); + var_AddCallback( p_playlist, "item-append", PlaylistChanged, self ); + var_AddCallback( p_playlist, "item-deleted", PlaylistChanged, self ); + var_AddCallback( p_playlist, "playlist-current", PlaylistChanged, self ); - vlc_object_release( p_playlist ); - } + vlc_object_release( p_playlist ); while( !p_intf->b_die ) { @@ -1073,8 +1064,7 @@ static VLCMain *_o_sharedMainInstance = nil; vlc_bool_t b_seekable = VLC_FALSE; vlc_bool_t b_chapters = VLC_FALSE; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); b_plmul = p_playlist->i_size > 1; vlc_object_release( p_playlist ); @@ -1122,8 +1112,7 @@ static VLCMain *_o_sharedMainInstance = nil; if( p_intf->p_sys->b_fullscreen_update ) { - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); var_Get( p_playlist, "fullscreen", &val ); [o_embedded_window setFullscreen: val.b_bool]; vlc_object_release( p_playlist ); @@ -1146,11 +1135,11 @@ static VLCMain *_o_sharedMainInstance = nil; { NSString *o_temp; vout_thread_t *p_vout; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); - if( p_playlist == NULL || p_playlist->status.p_item == NULL ) + if( p_playlist->status.p_item == NULL ) { + vlc_object_release( p_playlist ); return; } o_temp = [NSString stringWithUTF8String: @@ -1344,12 +1333,8 @@ static VLCMain *_o_sharedMainInstance = nil; if( p_intf->p_sys->p_input && !p_intf->p_sys->p_input->b_die ) { NSString *o_temp; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( p_intf ); + o_temp = [NSString stringWithUTF8String: p_playlist->status.p_item->p_input->psz_name]; if( o_temp == NULL ) @@ -1536,12 +1521,9 @@ static VLCMain *_o_sharedMainInstance = nil; #undef p_input /* Stop playback */ - if( ( p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ) ) ) - { - playlist_Stop( p_playlist ); - vlc_object_release( p_playlist ); - } + p_playlist = pl_Yield( p_intf ); + playlist_Stop( p_playlist ); + vlc_object_release( p_playlist ); /* FIXME - Wait here until all vouts are terminated because libvlc's VLC_CleanUp destroys interfaces before vouts, which isn't @@ -1647,7 +1629,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)intfOpenFile:(id)sender { - if (!nib_open_loaded) + if ( !nib_open_loaded ) { nib_open_loaded = [NSBundle loadNibNamed:@"Open" owner:self]; [o_open awakeFromNib]; @@ -1659,7 +1641,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)intfOpenFileGeneric:(id)sender { - if (!nib_open_loaded) + if ( !nib_open_loaded ) { nib_open_loaded = [NSBundle loadNibNamed:@"Open" owner:self]; [o_open awakeFromNib]; @@ -1671,7 +1653,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)intfOpenDisc:(id)sender { - if (!nib_open_loaded) + if ( !nib_open_loaded ) { nib_open_loaded = [NSBundle loadNibNamed:@"Open" owner:self]; [o_open awakeFromNib]; @@ -1683,7 +1665,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)intfOpenNet:(id)sender { - if (!nib_open_loaded) + if ( !nib_open_loaded ) { nib_open_loaded = [NSBundle loadNibNamed:@"Open" owner:self]; [o_open awakeFromNib]; @@ -1695,7 +1677,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)showWizard:(id)sender { - if (!nib_wizard_loaded) + if ( !nib_wizard_loaded ) { nib_wizard_loaded = [NSBundle loadNibNamed:@"Wizard" owner:self]; [o_wizard initStrings]; @@ -1713,7 +1695,7 @@ static VLCMain *_o_sharedMainInstance = nil; { o_extended = [[VLCExtended alloc] init]; } - if (!nib_extended_loaded) + if ( !nib_extended_loaded ) { nib_extended_loaded = [NSBundle loadNibNamed:@"Extended" owner:self]; [o_extended initStrings]; @@ -1729,7 +1711,7 @@ static VLCMain *_o_sharedMainInstance = nil; { o_sfilters = [[VLCsFilters alloc] init]; } - if (!nib_sfilters_loaded) + if ( !nib_sfilters_loaded ) { nib_sfilters_loaded = [NSBundle loadNibNamed:@"SFilters" owner:self]; [o_sfilters initStrings]; @@ -1742,13 +1724,13 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)showBookmarks:(id)sender { /* we need the wizard-nib for the bookmarks's extract functionality */ - if (!nib_wizard_loaded) + if ( !nib_wizard_loaded ) { nib_wizard_loaded = [NSBundle loadNibNamed:@"Wizard" owner:self]; [o_wizard initStrings]; } - if (!nib_bookmarks_loaded) + if ( !nib_bookmarks_loaded ) { nib_bookmarks_loaded = [NSBundle loadNibNamed:@"Bookmarks" owner:self]; [o_bookmarks showBookmarks]; @@ -1759,7 +1741,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)viewAbout:(id)sender { - if (!nib_about_loaded) + if ( !nib_about_loaded ) { nib_about_loaded = [NSBundle loadNibNamed:@"About" owner:self]; [o_about showPanel]; @@ -1778,7 +1760,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (IBAction)checkForUpdate:(id)sender { - if (!nib_update_loaded) + if ( !nib_update_loaded ) { nib_update_loaded = [NSBundle loadNibNamed:@"Update" owner:self]; [o_update showUpdateWindow]; diff --git a/modules/gui/macosx/playlist.m b/modules/gui/macosx/playlist.m index cfebbe8c3a..a7af30c958 100644 --- a/modules/gui/macosx/playlist.m +++ b/modules/gui/macosx/playlist.m @@ -114,8 +114,7 @@ } - (void)awakeFromNib { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); [o_outline_view setTarget: self]; [o_outline_view setDelegate: self]; [o_outline_view setDataSource: self]; @@ -151,10 +150,7 @@ { int i_return = 0; playlist_item_t *p_item = NULL; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - return 0; + playlist_t * p_playlist = pl_Yield( VLCIntf ); if( outlineView != o_outline_view ) { vlc_object_release( p_playlist ); @@ -185,11 +181,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name ); { playlist_item_t *p_return = NULL, *p_item = NULL; NSValue *o_value; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - - if( p_playlist == NULL ) - return nil; + playlist_t * p_playlist = pl_Yield( VLCIntf ); if( item == nil ) { @@ -206,11 +198,13 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name ); vlc_object_release( p_playlist ); o_value = [o_outline_dict objectForKey:[NSString stringWithFormat: @"%p", p_return]]; + #if 0 NSLog( @"%s", p_return->p_input->psz_name); + #endif if( o_value == nil ) { o_value = [[NSValue valueWithPointer: p_return] retain]; - NSLog( @"error missing value" ); + msg_Err( VLCIntf, @"missing playlist item's pointer value" ); } return o_value; } @@ -219,10 +213,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name ); - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item { int i_return = 0; - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - return NO; + playlist_t *p_playlist = pl_Yield( VLCIntf ); if( item == nil ) { @@ -252,16 +243,10 @@ NSLog( @"expandable" ); { id o_value = nil; intf_thread_t *p_intf = VLCIntf; - playlist_t *p_playlist; playlist_item_t *p_item; if( item == nil || ![item isKindOfClass: [NSValue class]] ) return( @"error" ); - /* Check to see if the playlist is present */ - p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist == NULL ) return( @"error"); - vlc_object_release( p_playlist); - p_item = (playlist_item_t *)[item pointerValue]; if( p_item == NULL ) { @@ -354,8 +339,7 @@ NSLog( @"expandable" ); - (void)awakeFromNib { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); vlc_list_t *p_list = vlc_list_find( p_playlist, VLC_OBJECT_MODULE, FIND_ANYWHERE ); @@ -478,10 +462,7 @@ NSLog( @"expandable" ); [[[[VLCMain sharedInstance] getWizard] getPlaylistWizard] reloadOutlineView]; [[[[VLCMain sharedInstance] getBookmarks] getDataTable] reloadData]; - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if(! p_playlist ) - return; + playlist_t *p_playlist = pl_Yield( VLCIntf ); if( p_playlist->i_size >= 2 ) { @@ -504,15 +485,9 @@ NSLog( @"expandable" ); - (void)playModeUpdated { - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); vlc_value_t val, val2; - if( p_playlist == NULL ) - { - return; - } - var_Get( p_playlist, "loop", &val2 ); var_Get( p_playlist, "repeat", &val ); if( val.b_bool == VLC_TRUE ) @@ -539,14 +514,10 @@ NSLog( @"expandable" ); int i_row; unsigned int j; - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); playlist_item_t *p_item, *p_temp_item; NSMutableArray *o_array = [NSMutableArray array]; - if( p_playlist == NULL ) - return; - p_item = p_playlist->status.p_item; if( p_item == NULL ) { @@ -587,7 +558,7 @@ NSLog( @"expandable" ); [o_outline_view selectRow: i_row byExtendingSelection: NO]; [o_outline_view scrollRowToVisible: i_row]; - vlc_object_release(p_playlist); + vlc_object_release( p_playlist ); /* update our info-panel to reflect the new item */ [[[VLCMain sharedInstance] getInfo] updatePanel]; @@ -602,15 +573,9 @@ NSLog( @"expandable" ); checkItemExistence:(BOOL)b_check { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); playlist_item_t *p_temp_item = p_item; - if( p_playlist == NULL ) - { - return NO; - } - if( p_node == p_item ) { vlc_object_release(p_playlist); @@ -693,8 +658,7 @@ NSLog( @"expandable" ); - (IBAction)savePlaylist:(id)sender { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); NSSavePanel *o_save_panel = [NSSavePanel savePanel]; NSString * o_name = [NSString stringWithFormat: @"%@", _NS("Untitled")]; @@ -757,39 +721,35 @@ NSLog( @"expandable" ); - (IBAction)playItem:(id)sender { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); - if( p_playlist != NULL ) - { - playlist_item_t *p_item; - playlist_item_t *p_node = NULL; + playlist_item_t *p_item; + playlist_item_t *p_node = NULL; - p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue]; + p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue]; - if( p_item ) + if( p_item ) + { + if( p_item->i_children == -1 ) { - if( p_item->i_children == -1 ) - { - p_node = p_item->p_parent; + p_node = p_item->p_parent; + } + else + { + p_node = p_item; + if( p_node->i_children > 0 && p_node->pp_children[0]->i_children == -1 ) + { + p_item = p_node->pp_children[0]; } else { - p_node = p_item; - if( p_node->i_children > 0 && p_node->pp_children[0]->i_children == -1 ) - { - p_item = p_node->pp_children[0]; - } - else - { - p_item = NULL; - } + p_item = NULL; } - playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, p_node, p_item ); } - vlc_object_release( p_playlist ); + playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, p_node, p_item ); } + vlc_object_release( p_playlist ); } /* When called retrieves the selected outlineview row and plays that node or item */ @@ -798,40 +758,36 @@ NSLog( @"expandable" ); int i_count; NSMutableArray *o_to_preparse; intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); o_to_preparse = [NSMutableArray arrayWithArray:[[o_outline_view selectedRowEnumerator] allObjects]]; i_count = [o_to_preparse count]; - if( p_playlist != NULL ) + int i, i_row; + NSNumber *o_number; + playlist_item_t *p_item = NULL; + + for( i = 0; i < i_count; i++ ) { - int i, i_row; - NSNumber *o_number; - playlist_item_t *p_item = NULL; + o_number = [o_to_preparse lastObject]; + i_row = [o_number intValue]; + p_item = [[o_outline_view itemAtRow:i_row] pointerValue]; + [o_to_preparse removeObject: o_number]; + [o_outline_view deselectRow: i_row]; - for( i = 0; i < i_count; i++ ) + if( p_item ) { - o_number = [o_to_preparse lastObject]; - i_row = [o_number intValue]; - p_item = [[o_outline_view itemAtRow:i_row] pointerValue]; - [o_to_preparse removeObject: o_number]; - [o_outline_view deselectRow: i_row]; - - if( p_item ) + if( p_item->i_children == -1 ) { - if( p_item->i_children == -1 ) - { - playlist_PreparseEnqueue( p_playlist, p_item->p_input ); - } - else - { - msg_Dbg( p_intf, "preparse of nodes not yet implemented" ); - } + playlist_PreparseEnqueue( p_playlist, p_item->p_input ); + } + else + { + msg_Dbg( p_intf, "preparse of nodes not yet implemented" ); } } - vlc_object_release( p_playlist ); } + vlc_object_release( p_playlist ); [self playlistUpdated]; } @@ -839,8 +795,7 @@ NSLog( @"expandable" ); { NSMenuItem *o_mi = (NSMenuItem *)sender; NSString *o_string = [o_mi representedObject]; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); if( !playlist_IsServicesDiscoveryLoaded( p_playlist, [o_string cString] ) ) playlist_ServicesDiscoveryAdd( p_playlist, [o_string cString] ); else @@ -868,13 +823,8 @@ NSLog( @"expandable" ); playlist_t * p_playlist; intf_thread_t * p_intf = VLCIntf; - p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + p_playlist = pl_Yield( p_intf ); - if ( p_playlist == NULL ) - { - return; - } o_to_delete = [NSMutableArray arrayWithArray:[[o_outline_view selectedRowEnumerator] allObjects]]; i_count = [o_to_delete count]; @@ -924,15 +874,9 @@ NSLog( @"expandable" ); - (void)sortNode:(int)i_mode { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); playlist_item_t * p_item; - if (p_playlist == NULL) - { - return; - } - if( [o_outline_view selectedRow] > -1 ) { p_item = [[o_outline_view itemAtRow: [o_outline_view selectedRow]] @@ -964,13 +908,8 @@ NSLog( @"expandable" ); - (input_item_t *)createItem:(NSDictionary *)o_one_item { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); - if( p_playlist == NULL ) - { - return NULL; - } input_item_t *p_input; int i; BOOL b_rem = FALSE, b_dir = FALSE; @@ -1056,12 +995,7 @@ NSLog( @"expandable" ); - (void)appendArray:(NSArray*)o_array atPos:(int)i_position enqueue:(BOOL)b_enqueue { int i_item; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( VLCIntf ); for( i_item = 0; i_item < (int)[o_array count]; i_item++ ) { @@ -1100,12 +1034,7 @@ NSLog( @"expandable" ); - (void)appendNodeArray:(NSArray*)o_array inNode:(playlist_item_t *)p_node atPos:(int)i_position enqueue:(BOOL)b_enqueue { int i_item; - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( VLCIntf ); for( i_item = 0; i_item < (int)[o_array count]; i_item++ ) { @@ -1149,12 +1078,7 @@ NSLog( @"expandable" ); { intf_thread_t * p_intf = VLCIntf; vlc_value_t val1,val2; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t * p_playlist = pl_Yield( p_intf ); switch( [o_loop_popup indexOfSelectedItem] ) { @@ -1193,14 +1117,10 @@ NSLog( @"expandable" ); - (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item { - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); playlist_item_t *p_selected_item; int i_current, i_selected_row; - if( !p_playlist ) - return NULL; - i_selected_row = [o_outline_view selectedRow]; if (i_selected_row < 0) i_selected_row = 0; @@ -1264,8 +1184,7 @@ NSLog( @"expandable" ); - (IBAction)searchItem:(id)sender { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); id o_result; unsigned int i; @@ -1273,9 +1192,6 @@ NSLog( @"expandable" ); b_selected_item_met = NO; - if( p_playlist == NULL ) - return; - /*First, only search after the selected item:* *(b_selected_item_met = NO) */ o_result = [self subSearchItem:p_playlist->p_root_category]; @@ -1360,12 +1276,7 @@ NSLog( @"expandable" ); int i_mode = 0, i_type; intf_thread_t *p_intf = VLCIntf; - playlist_t *p_playlist = (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } + playlist_t *p_playlist = pl_Yield( p_intf ); /* Check whether the selected table column header corresponds to a sortable table column*/ @@ -1430,13 +1341,10 @@ NSLog( @"expandable" ); forTableColumn:(NSTableColumn *)tableColumn item:(id)item { - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); id o_playing_item; - if( !p_playlist ) return; - o_playing_item = [o_outline_dict objectForKey: [NSString stringWithFormat:@"%p", p_playlist->status.p_item]]; @@ -1468,15 +1376,9 @@ NSLog( @"expandable" ); NSAutoreleasePool * ourPool = [[NSAutoreleasePool alloc] init]; /* simply adds a new node to the end of the playlist */ - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); vlc_thread_set_priority( p_playlist, VLC_THREAD_PRIORITY_LOW ); - if( !p_playlist ) - { - return; - } - int ret_v; char *psz_name = NULL; playlist_item_t * p_item; @@ -1503,10 +1405,10 @@ NSLog( @"expandable" ); - (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item { id o_value = [super outlineView: outlineView child: index ofItem: item]; - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); - if( !p_playlist ) return nil; + /* FIXME: playlist->i_size doesn't provide the correct number of items anymore + * check the playlist API for the fixed function, once zorglub implemented it -- fpk, 9/17/06 */ if( p_playlist->i_size >= 2 ) { @@ -1528,7 +1430,7 @@ NSLog( @"expandable" ); [o_outline_dict setObject:o_value forKey:[NSString stringWithFormat:@"%p", [o_value pointerValue]]]; -NSLog( @"add item %p", [o_value pointerValue] ); + msg_Dbg( VLCIntf, "adding item %p", [o_value pointerValue] ); return o_value; } @@ -1537,16 +1439,13 @@ NSLog( @"add item %p", [o_value pointerValue] ); - (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pboard { unsigned int i; - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); /* First remove the items that were moved during the last drag & drop operation */ [o_items_array removeAllObjects]; [o_nodes_array removeAllObjects]; - if( !p_playlist ) return NO; - for( i = 0 ; i < [items count] ; i++ ) { id o_item = [items objectAtIndex: i]; @@ -1584,8 +1483,7 @@ NSLog( @"add item %p", [o_value pointerValue] ); - (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id )info proposedItem:(id)item proposedChildIndex:(int)index { - playlist_t *p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = pl_Yield( VLCIntf ); NSPasteboard *o_pasteboard = [info draggingPasteboard]; if( !p_playlist ) return NSDragOperationNone; @@ -1626,28 +1524,25 @@ NSLog( @"add item %p", [o_value pointerValue] ); return NSDragOperationNone; } } - vlc_object_release(p_playlist); + vlc_object_release( p_playlist ); return NSDragOperationMove; } /* Drop from the Finder */ else if( [[o_pasteboard types] containsObject: NSFilenamesPboardType] ) { - vlc_object_release(p_playlist); + vlc_object_release( p_playlist ); return NSDragOperationGeneric; } - vlc_object_release(p_playlist); + vlc_object_release( p_playlist ); return NSDragOperationNone; } - (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id )info item:(id)item childIndex:(int)index { - playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( VLCIntf ); NSPasteboard *o_pasteboard = [info draggingPasteboard]; - if( !p_playlist ) return NO; - /* Drag & Drop inside the playlist */ if( [[o_pasteboard types] containsObject: @"VLCPlaylistItemPboardType"] ) { @@ -1733,7 +1628,7 @@ NSLog( @"add item %p", [o_value pointerValue] ); [o_outline_view selectRow: i_row byExtendingSelection: NO]; [o_outline_view scrollRowToVisible: i_row]; - vlc_object_release(p_playlist); + vlc_object_release( p_playlist ); return YES; } diff --git a/modules/gui/macosx/playlistinfo.m b/modules/gui/macosx/playlistinfo.m index 3b5384e362..79fa529e3d 100644 --- a/modules/gui/macosx/playlistinfo.m +++ b/modules/gui/macosx/playlistinfo.m @@ -135,15 +135,11 @@ else { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - - if( p_playlist ) - { - p_item = p_playlist->status.p_item; - vlc_object_release( p_playlist ); - } + playlist_t * p_playlist = pl_Yield( p_intf ); + p_item = p_playlist->status.p_item; + vlc_object_release( p_playlist ); + [self initPanel:sender]; } } @@ -173,14 +169,10 @@ { /* make sure that we got the current item and not an outdated one */ intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); - if( p_playlist ) - { - p_item = p_playlist->status.p_item; - vlc_object_release( p_playlist ); - } + p_item = p_playlist->status.p_item; + vlc_object_release( p_playlist ); /* check whether our item is valid, because we would crash if not */ if(! [self isItemInPlaylist: p_item] ) return; @@ -287,8 +279,7 @@ - (IBAction)infoOk:(id)sender { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); vlc_value_t val; if( [self isItemInPlaylist: p_item] ) @@ -316,15 +307,9 @@ - (BOOL)isItemInPlaylist:(playlist_item_t *)p_local_item { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t * p_playlist = pl_Yield( p_intf ); int i; - if( p_playlist == NULL ) - { - return NO; - } - for( i = 0 ; i < p_playlist->i_all_size ; i++ ) { if( p_playlist->pp_all_items[i] == p_local_item ) @@ -430,7 +415,8 @@ static VLCInfoTreeItem *o_root_item = nil; } + (VLCInfoTreeItem *)rootItem { - if (o_root_item == nil) o_root_item = [[VLCInfoTreeItem alloc] initWithName:@"main" value: @"" ID: 0 parent:nil]; + if( o_root_item == nil ) + o_root_item = [[VLCInfoTreeItem alloc] initWithName:@"main" value: @"" ID: 0 parent:nil]; return o_root_item; } diff --git a/modules/gui/macosx/wizard.m b/modules/gui/macosx/wizard.m index 8e6c66d07b..f8caf0eef2 100644 --- a/modules/gui/macosx/wizard.m +++ b/modules/gui/macosx/wizard.m @@ -1277,63 +1277,58 @@ static VLCWizard *_o_sharedInstance = nil; { intf_thread_t * p_intf = VLCIntf; - playlist_t * p_playlist = (playlist_t *)vlc_object_find( p_intf, - VLC_OBJECT_PLAYLIST, FIND_ANYWHERE); - if( p_playlist ) + playlist_t * p_playlist = pl_Yield( p_intf ); + + int x = 0; + int y = [[o_userSelections objectForKey:@"pathToStrm"] count]; + while( x != y ) { - int x = 0; - int y = [[o_userSelections objectForKey:@"pathToStrm"] count]; - while( x != y ) + /* we need a temp. variable here to work-around a GCC4-bug */ + NSString *tempString = [NSString stringWithFormat: \ + @"%@ (%i/%i)", _NS("Streaming/Transcoding Wizard"), \ + ( x + 1 ), y]; + input_item_t *p_input = input_ItemNew( p_playlist, \ + [[[o_userSelections objectForKey:@"pathToStrm"] \ + objectAtIndex:x] UTF8String], \ + [tempString UTF8String] ); + vlc_input_item_AddOption( p_input, [[[o_userSelections \ + objectForKey:@"opts"] objectAtIndex: x] UTF8String]); + + if(! [[o_userSelections objectForKey:@"partExtractFrom"] \ + isEqualToString:@""] ) { - /* we need a temp. variable here to work-around a GCC4-bug */ - NSString *tempString = [NSString stringWithFormat: \ - @"%@ (%i/%i)", _NS("Streaming/Transcoding Wizard"), \ - ( x + 1 ), y]; - input_item_t *p_input = input_ItemNew( p_playlist, \ - [[[o_userSelections objectForKey:@"pathToStrm"] \ - objectAtIndex:x] UTF8String], \ - [tempString UTF8String] ); - vlc_input_item_AddOption( p_input, [[[o_userSelections \ - objectForKey:@"opts"] objectAtIndex: x] UTF8String]); - - if(! [[o_userSelections objectForKey:@"partExtractFrom"] \ - isEqualToString:@""] ) - { - vlc_input_item_AddOption( p_input, [[NSString \ - stringWithFormat: @"start-time=%@", [o_userSelections \ - objectForKey: @"partExtractFrom"]] UTF8String] ); - } - - if(! [[o_userSelections objectForKey:@"partExtractTo"] \ - isEqualToString:@""] ) - { - vlc_input_item_AddOption( p_input, [[NSString \ - stringWithFormat: @"stop-time=%@", [o_userSelections \ - objectForKey: @"partExtractTo"]] UTF8String] ); - } + vlc_input_item_AddOption( p_input, [[NSString \ + stringWithFormat: @"start-time=%@", [o_userSelections \ + objectForKey: @"partExtractFrom"]] UTF8String] ); + } - vlc_input_item_AddOption( p_input, [[NSString stringWithFormat: \ - @"ttl=%@", [o_userSelections objectForKey:@"ttl"]] \ - UTF8String] ); + if(! [[o_userSelections objectForKey:@"partExtractTo"] \ + isEqualToString:@""] ) + { + vlc_input_item_AddOption( p_input, [[NSString \ + stringWithFormat: @"stop-time=%@", [o_userSelections \ + objectForKey: @"partExtractTo"]] UTF8String] ); + } - playlist_PlaylistAddInput( p_playlist, p_input, PLAYLIST_STOP, PLAYLIST_END ); + vlc_input_item_AddOption( p_input, [[NSString stringWithFormat: \ + @"ttl=%@", [o_userSelections objectForKey:@"ttl"]] \ + UTF8String] ); - if( x == 0 ) - { - /* play the first item and add the others afterwards */ - playlist_item_t *p_item = playlist_ItemGetByInput( p_playlist, p_input ); - playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, NULL, - p_item ); - } + playlist_PlaylistAddInput( p_playlist, p_input, PLAYLIST_STOP, PLAYLIST_END ); - x += 1; + if( x == 0 ) + { + /* play the first item and add the others afterwards */ + playlist_item_t *p_item = playlist_ItemGetByInput( p_playlist, p_input ); + playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, NULL, + p_item ); } - vlc_object_release(p_playlist); - } else { - msg_Err( p_intf, "unable to find playlist" ); + x += 1; } + vlc_object_release( p_playlist ); + /* close the window, since we are done */ [o_wizard_window close]; } -- 2.39.5