#include <sys/mount.h>
#include <vlc_keys.h>
-#include "intf.h"
+#import "intf.h"
#import "wizard.h"
#import "bookmarks.h"
#import "playlistinfo.h"
-#include "playlist.h"
-#include "controls.h"
-#include "vlc_osd.h"
-#include "misc.h"
+#import "playlist.h"
+#import "controls.h"
+#import "vlc_osd.h"
+#import "misc.h"
#import <vlc_interaction.h>
/*****************************************************************************
if( o_value == nil )
{
o_value = [[NSValue valueWithPointer: p_return] retain];
- msg_Err( VLCIntf, @"missing playlist item's pointer value" );
+ msg_Err( VLCIntf, "missing playlist item's pointer value" );
}
return o_value;
}
for( i_index = 0; i_index < p_list->i_count; i_index++ )
{
- NSMenuItem * o_lmi;
- module_t * p_parser = (module_t *)p_list->p_values[i_index].p_object ;
+ vlc_bool_t b_enabled;
+ char *objectname;
+ NSMenuItem *o_lmi;
+ module_t *p_parser = (module_t *)p_list->p_values[i_index].p_object ;
if( !strcmp( p_parser->psz_capability, "services_discovery" ) )
{
- /* create the menu entries used in the playlist menu */
+ /* Check for submodules */
+ int i = -1;
+ while( p_parser->pp_shortcuts[++i] != NULL ); i--;
+
+ /* Check whether to enable these menuitems */
+ objectname = i>=0 ? p_parser->pp_shortcuts[i] : p_parser->psz_object_name;
+ b_enabled = playlist_IsServicesDiscoveryLoaded( p_playlist, objectname );
+
+ /* Create the menu entries used in the playlist menu */
o_lmi = [[o_mi_services submenu] addItemWithTitle:
[NSString stringWithUTF8String:
p_parser->psz_longname ? p_parser->psz_longname :
( p_parser->psz_shortname ? p_parser->psz_shortname:
- p_parser->psz_object_name)]
+ objectname)]
action: @selector(servicesChange:)
keyEquivalent: @""];
[o_lmi setTarget: self];
- [o_lmi setRepresentedObject:
- [NSString stringWithCString: p_parser->psz_object_name]];
- if( playlist_IsServicesDiscoveryLoaded( p_playlist,
- p_parser->psz_object_name ) )
- [o_lmi setState: NSOnState];
+ [o_lmi setRepresentedObject: [NSString stringWithCString: objectname]];
+ if( b_enabled ) [o_lmi setState: NSOnState];
- /* create the menu entries for the main menu */
+ /* Create the menu entries for the main menu */
o_lmi = [[o_mm_mi_services submenu] addItemWithTitle:
[NSString stringWithUTF8String:
p_parser->psz_longname ? p_parser->psz_longname :
( p_parser->psz_shortname ? p_parser->psz_shortname:
- p_parser->psz_object_name)]
+ objectname)]
action: @selector(servicesChange:)
keyEquivalent: @""];
[o_lmi setTarget: self];
- [o_lmi setRepresentedObject:
- [NSString stringWithCString: p_parser->psz_object_name]];
- if( playlist_IsServicesDiscoveryLoaded( p_playlist,
- p_parser->psz_object_name ) )
- [o_lmi setState: NSOnState];
+ [o_lmi setRepresentedObject: [NSString stringWithCString:objectname]];
+ if( b_enabled ) [o_lmi setState: NSOnState];
}
}
vlc_list_release( p_list );
[o_status_field setStringValue: [NSString stringWithFormat:
_NS("No items in the playlist")]];
- [o_random_ckb setTitle: _NS("Random")];
#if 0
[o_search_button setTitle: _NS("Search")];
#endif
[o_search_field setToolTip: _NS("Search in Playlist")];
- [[o_loop_popup itemAtIndex:0] setTitle: _NS("Standard Play")];
- [[o_loop_popup itemAtIndex:1] setTitle: _NS("Repeat One")];
- [[o_loop_popup itemAtIndex:2] setTitle: _NS("Repeat All")];
[o_mi_addNode setTitle: _NS("Add Folder to Playlist")];
[o_save_accessory_text setStringValue: _NS("File Format:")];
playlist_t *p_playlist = pl_Yield( VLCIntf );
- if( p_playlist->i_size >= 2 )
+ if( playlist_CurrentSize( p_playlist ) >= 2 )
{
[o_status_field setStringValue: [NSString stringWithFormat:
- _NS("%i items in the playlist"), p_playlist->i_size]];
+ _NS("%i items in the playlist"),
+ playlist_CurrentSize( p_playlist )]];
}
else
{
- if( p_playlist->i_size == 0 )
+ if( playlist_IsEmpty( p_playlist ) )
{
[o_status_field setStringValue: _NS("No items in the playlist")];
}
var_Get( p_playlist, "repeat", &val );
if( val.b_bool == VLC_TRUE )
{
- [o_loop_popup selectItemAtIndex: 1];
+ [[[VLCMain sharedInstance] getControls] repeatOne];
}
else if( val2.b_bool == VLC_TRUE )
{
- [o_loop_popup selectItemAtIndex: 2];
+ [[[VLCMain sharedInstance] getControls] repeatAll];
}
else
{
- [o_loop_popup selectItemAtIndex: 0];
+ [[[VLCMain sharedInstance] getControls] repeatOff];
}
- var_Get( p_playlist, "random", &val );
- [o_random_ckb setState: val.b_bool];
+ [[[VLCMain sharedInstance] getControls] shuffle];
vlc_object_release( p_playlist );
}
/* Since outlineView: willDisplayCell:... may call this function with
p_items that don't exist anymore, first check if the item is still
in the playlist. Any cleaner solution welcomed. */
- for( i = 0; i < p_playlist->i_all_size; i++ )
+ for( i = 0; i < p_playlist->all_items.i_size; i++ )
{
- if( p_playlist->pp_all_items[i] == p_item ) break;
- else if ( i == p_playlist->i_all_size - 1 )
+ if( ARRAY_VAL( p_playlist->all_items, i) == p_item ) break;
+ else if ( i == p_playlist->all_items.i_size - 1 )
{
vlc_object_release( p_playlist );
vlc_mutex_unlock( &p_playlist->object_lock );
{
for( i = 0; i < (int)[o_options count]; i++ )
{
- vlc_input_item_AddOption( p_input, strdup( [[o_options objectAtIndex:i] UTF8String] ) );
+ input_ItemAddOption( p_input, strdup( [[o_options objectAtIndex:i] UTF8String] ) );
}
}
vlc_object_release( p_playlist );
}
-- (IBAction)handlePopUp:(id)sender
-
-{
- intf_thread_t * p_intf = VLCIntf;
- vlc_value_t val1,val2;
- playlist_t * p_playlist = pl_Yield( p_intf );
-
- switch( [o_loop_popup indexOfSelectedItem] )
- {
- case 1:
-
- val1.b_bool = 0;
- var_Set( p_playlist, "loop", val1 );
- val1.b_bool = 1;
- var_Set( p_playlist, "repeat", val1 );
- vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat One" ) );
- break;
-
- case 2:
- val1.b_bool = 0;
- var_Set( p_playlist, "repeat", val1 );
- val1.b_bool = 1;
- var_Set( p_playlist, "loop", val1 );
- vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat All" ) );
- break;
-
- default:
- var_Get( p_playlist, "repeat", &val1 );
- var_Get( p_playlist, "loop", &val2 );
- if( val1.b_bool || val2.b_bool )
- {
- val1.b_bool = 0;
- var_Set( p_playlist, "repeat", val1 );
- var_Set( p_playlist, "loop", val1 );
- vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat Off" ) );
- }
- break;
- }
- vlc_object_release( p_playlist );
- [self playlistUpdated];
-}
-
- (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item
{
playlist_t *p_playlist = pl_Yield( VLCIntf );
vlc_mutex_lock( &p_playlist->object_lock );
o_current_name = [NSString stringWithUTF8String:
p_item->pp_children[i_current]->p_input->psz_name];
- psz_temp = vlc_input_item_GetInfo( p_item->p_input ,
+ psz_temp = input_ItemGetInfo( p_item->p_input ,
_("Meta-information"),_("Artist") );
o_current_author = [NSString stringWithUTF8String: psz_temp];
free( psz_temp);
id o_value = [super outlineView: outlineView child: index ofItem: item];
playlist_t *p_playlist = pl_Yield( VLCIntf );
- /* 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 )
+ if( playlist_CurrentSize( p_playlist ) >= 2 )
{
[o_status_field setStringValue: [NSString stringWithFormat:
- _NS("%i items in the playlist"), p_playlist->i_size]];
+ _NS("%i items in the playlist"),
+ playlist_CurrentSize( p_playlist )]];
}
else
{
- if( p_playlist->i_size == 0 )
+ if( playlist_IsEmpty( p_playlist ) )
{
[o_status_field setStringValue: _NS("No items in the playlist")];
}