]> git.sesse.net Git - vlc/commitdiff
modules/gui/macosx/playlist.m: Don't use p_module directly.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Fri, 14 Dec 2007 15:02:53 +0000 (15:02 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Fri, 14 Dec 2007 15:02:53 +0000 (15:02 +0000)
modules/gui/macosx/playlist.m

index 471e8c5da29991444279ad73805e3e418dac274f..241c9ea24bcfd340dfa7c99c9477a3d169aa63fc 100644 (file)
 - (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" ) )
+        if( !strcmp( ppsz_services[i], "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 */
-            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)]
+                     [NSString stringWithUTF8String: name]
                                              action: @selector(servicesChange:)
                                              keyEquivalent: @""];
             [o_lmi setTarget: self];
-            [o_lmi setRepresentedObject: [NSString stringWithCString: objectname]];
+            [o_lmi setRepresentedObject: [NSString stringWithCString: 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:
-                     p_parser->psz_longname ? p_parser->psz_longname :
-                     ( p_parser->psz_shortname ? p_parser->psz_shortname:
-                     objectname)]
+                     [NSString stringWithUTF8String: name]
                                              action: @selector(servicesChange:)
                                              keyEquivalent: @""];
             [o_lmi setTarget: self];
-            [o_lmi setRepresentedObject: [NSString stringWithCString:objectname]];
+            [o_lmi setRepresentedObject: [NSString stringWithCString: ppsz_services[i]]];
             if( b_enabled ) [o_lmi setState: NSOnState];
         }
+        free( ppsz_services[i] );
+        free( ppsz_name[i] );
     }
-    vlc_list_release( p_list );
+    free( ppsz_services );
+    free( ppsz_name );
+
     vlc_object_release( p_playlist );
 
     //[self playlistUpdated];