/*****************************************************************************
* playlist.m: MacOS X interface module
*****************************************************************************
-* Copyright (C) 2002-2006 the VideoLAN team
+* Copyright (C) 2002-2007 the VideoLAN team
* $Id$
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
if( !EMPTY_STR( psz_title ) )
{
o_value = [NSString stringWithUTF8String: psz_title];
- if( o_value == NULL )
- o_value = [NSString stringWithCString: psz_title];
}
else
{
if( psz_name != NULL )
{
o_value = [NSString stringWithUTF8String: psz_name];
- if( o_value == NULL )
- o_value = [NSString stringWithCString: psz_name];
}
free( psz_name );
}
if( [[o_tc identifier] isEqualToString:@"2"] && !EMPTY_STR( psz_artist ) )
{
o_value = [NSString stringWithUTF8String: psz_artist];
- if( o_value == NULL )
- o_value = [NSString stringWithCString: psz_artist];
}
else if( [[o_tc identifier] isEqualToString:@"3"] )
{
- (void)awakeFromNib
{
playlist_t * p_playlist = pl_Yield( VLCIntf );
- vlc_list_t *p_list = vlc_list_find( p_playlist, VLC_OBJECT_MODULE,
- FIND_ANYWHERE );
- int i_index;
+ int i;
[super awakeFromNib];
o_tc_sortColumn = nil;
- for( i_index = 0; i_index < p_list->i_count; i_index++ )
+ char ** ppsz_name;
+ char ** ppsz_services = services_discovery_GetServicesNames( p_playlist, &ppsz_name );
+
+ for( i = 0; ppsz_services[i]; i++ )
{
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" ) )
- {
- /* Check for submodules */
- int i = -1;
- while( p_parser->pp_shortcuts[++i] != NULL ); i--;
+ char * name = ppsz_name[i] ? ppsz_name[i] : ppsz_services[i];
+ /* Check whether to enable these menuitems */
+ 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: name]
+ action: @selector(servicesChange:)
+ keyEquivalent: @""];
+ [o_lmi setTarget: self];
+ [o_lmi setRepresentedObject: [NSString stringWithUTF8String: ppsz_services[i]]];
+ if( b_enabled ) [o_lmi setState: NSOnState];
+
+ /* Create the menu entries for the main menu */
+ o_lmi = [[o_mm_mi_services submenu] addItemWithTitle:
+ [NSString stringWithUTF8String: name]
+ action: @selector(servicesChange:)
+ keyEquivalent: @""];
+ [o_lmi setTarget: self];
+ [o_lmi setRepresentedObject: [NSString stringWithUTF8String: ppsz_services[i]]];
+ if( b_enabled ) [o_lmi setState: NSOnState];
+
+ free( ppsz_services[i] );
+ free( ppsz_name[i] );
+ }
+ free( ppsz_services );
+ free( ppsz_name );
- /* Check whether to enable these menuitems */
- objectname = i>=0 ? (char *)p_parser->pp_shortcuts[i] : (char *)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:
- objectname)]
- action: @selector(servicesChange:)
- keyEquivalent: @""];
- [o_lmi setTarget: self];
- [o_lmi setRepresentedObject: [NSString stringWithCString: objectname]];
- if( b_enabled ) [o_lmi setState: NSOnState];
-
- /* 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:
- objectname)]
- action: @selector(servicesChange:)
- keyEquivalent: @""];
- [o_lmi setTarget: self];
- [o_lmi setRepresentedObject: [NSString stringWithCString:objectname]];
- if( b_enabled ) [o_lmi setState: NSOnState];
- }
- }
- vlc_list_release( p_list );
vlc_object_release( p_playlist );
//[self playlistUpdated];
{
NSMutableString *o_temp, *o_temp2;
o_temp = [NSMutableString stringWithString: o_uri];
- o_temp2 = [NSMutableString stringWithCString: mounts[i_index].f_mntfromname];
+ o_temp2 = [NSMutableString stringWithUTF8String: mounts[i_index].f_mntfromname];
[o_temp replaceOccurrencesOfString: @"/dev/rdisk" withString: @"/dev/disk" options:nil range:NSMakeRange(0, [o_temp length]) ];
[o_temp2 replaceOccurrencesOfString: @"s0" withString: @"" options:nil range:NSMakeRange(0, [o_temp2 length]) ];
[o_temp2 replaceOccurrencesOfString: @"s1" withString: @"" options:nil range:NSMakeRange(0, [o_temp2 length]) ];
if( strstr( [o_temp fileSystemRepresentation], [o_temp2 fileSystemRepresentation] ) != NULL )
{
- o_name = [[NSFileManager defaultManager] displayNameAtPath: [NSString stringWithCString:mounts[i_index].f_mntonname]];
+ o_name = [[NSFileManager defaultManager] displayNameAtPath: [NSString stringWithUTF8String:mounts[i_index].f_mntonname]];
}
}
}
buf = (struct statfs *) malloc (sizeof(struct statfs));
statfs( [o_uri fileSystemRepresentation], buf );
psz_dev = strdup(buf->f_mntfromname);
- o_temp = [NSMutableString stringWithCString: psz_dev ];
+ o_temp = [NSMutableString stringWithUTF8String: psz_dev ];
[o_temp replaceOccurrencesOfString: @"/dev/disk" withString: @"/dev/rdisk" options:nil range:NSMakeRange(0, [o_temp length]) ];
[o_temp replaceOccurrencesOfString: @"s0" withString: @"" options:nil range:NSMakeRange(0, [o_temp length]) ];
[o_temp replaceOccurrencesOfString: @"s1" withString: @"" options:nil range:NSMakeRange(0, [o_temp length]) ];
{
playlist_item_t *p_item;
p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
- playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, p_item );
+ playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, NULL, p_item );
}
else
{
{
playlist_item_t *p_item;
p_item = playlist_ItemGetByInput( p_playlist, p_input, VLC_TRUE );
- playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, p_item );
+ playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, NULL, p_item );
}
else
{
if( psz_name != NULL && psz_name != "" )
p_item = playlist_NodeCreate( p_playlist, psz_name,
- p_playlist->p_local_category, 0 );
+ p_playlist->p_local_category, 0, NULL );
else if(! config_GetInt( p_playlist, "interact" ) )
{
/* in case that the interaction is disabled, just give it a bogus name */
p_item = playlist_NodeCreate( p_playlist, _("Empty Folder"),
- p_playlist->p_local_category, 0 );
+ p_playlist->p_local_category, 0, NULL );
}
if(! p_item )
vlc_object_release( p_playlist );
return NO;
}
-
-/* Delegate method of NSWindow */
-/*- (void)windowWillClose:(NSNotification *)aNotification
-{
- [o_btn_playlist setState: NSOffState];
-}
-*/
@end