]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/prefs.m
Removes trailing spaces. Removes tabs.
[vlc] / modules / gui / macosx / prefs.m
index 924699f97bd0962985d59a0679e96b6ecd2faa35..cce4386f19e6e037f24e76dfe435c58813baafc3 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * prefs.m: MacOS X module for vlc
  *****************************************************************************
- * Copyright (C) 2002-2005 the VideoLAN team
+ * Copyright (C) 2002-2006 the VideoLAN team
  * $Id$
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
@@ -22,7 +22,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-/* VLCPrefs manages the main preferences dialog 
+/* VLCPrefs manages the main preferences dialog
    the class is related to wxwindows intf, PrefsPanel */
 /* VLCTreeItem should contain:
    - the children of the treeitem
@@ -196,7 +196,7 @@ static VLCPrefs *_o_sharedMainInstance = nil;
 
 - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
 {
-    return (item == nil) ? YES : ( ([item numberOfChildren] != -1) && 
+    return (item == nil) ? YES : ( ([item numberOfChildren] != -1) &&
                                    ([item numberOfChildren] != 0));
 }
 
@@ -272,13 +272,19 @@ static VLCTreeItem *o_root_item = nil;
         intf_thread_t   *p_intf = VLCIntf;
         vlc_list_t      *p_list;
         module_t        *p_module = NULL;
-        module_config_t *p_item;
-        int             i_index;
+        module_t        *p_parser;
+        module_config_t *p_item,
+                        *p_end;
+        int             i_index = 0;
 
         /* List the modules */
         p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE );
         if( !p_list ) return nil;
 
+        /* get parser */
+        p_parser = (module_t *)p_list->p_values[i_index].p_object;
+        p_end = p_parser->p_config + p_parser->confsize;
         if( [[self getName] isEqualToString: @"main"] )
         {
             /*
@@ -303,7 +309,7 @@ static VLCTreeItem *o_root_item = nil;
                  * generate their config panel them when it is asked by the user. */
                 VLCTreeItem *p_last_category = NULL;
                 p_item = p_module->p_config;
-                o_children = [[NSMutableArray alloc] initWithCapacity:20];
+                o_children = [[NSMutableArray alloc] initWithCapacity:10];
                 if( p_item ) do
                 {
                     NSString *o_child_name;
@@ -312,58 +318,58 @@ static VLCTreeItem *o_root_item = nil;
                     switch( p_item->i_type )
                     {
                     case CONFIG_CATEGORY:
-                                   if( p_item->i_value == -1 ) break;
+                        if( p_item->value.i == -1 ) break;
 
                         o_child_name = [[VLCMain sharedInstance]
-                            localizedString: config_CategoryNameGet( p_item->i_value ) ];
+                            localizedString: config_CategoryNameGet( p_item->value.i )];
                         o_child_title = o_child_name;
                         o_child_help = [[VLCMain sharedInstance]
-                            localizedString: config_CategoryHelpGet( p_item->i_value ) ];
+                            localizedString: config_CategoryHelpGet( p_item->value.i )];
                         p_last_category = [VLCTreeItem alloc];
                         [o_children addObject:[p_last_category
                             initWithName: o_child_name
                             withTitle: o_child_title
                             withHelp: o_child_help
-                            ID: p_item->i_value
+                            ID: p_item->value.i
                             parent:self
                             children:[[NSMutableArray alloc]
                                 initWithCapacity:10]
                             whithCategory: p_item - p_module->p_config]];
                         break;
                     case CONFIG_SUBCATEGORY:
-                                   if( p_item->i_value == -1 ) break;
-
-                        if( p_item->i_value != SUBCAT_PLAYLIST_GENERAL &&
-                            p_item->i_value != SUBCAT_VIDEO_GENERAL &&
-                            p_item->i_value != SUBCAT_INPUT_GENERAL &&
-                            p_item->i_value != SUBCAT_INTERFACE_GENERAL &&
-                            p_item->i_value != SUBCAT_SOUT_GENERAL &&
-                            p_item->i_value != SUBCAT_ADVANCED_MISC &&
-                            p_item->i_value != SUBCAT_AUDIO_GENERAL )
+                        if( p_item->value.i == -1 ) break;
+
+                        if( p_item->value.i != SUBCAT_PLAYLIST_GENERAL &&
+                            p_item->value.i != SUBCAT_VIDEO_GENERAL &&
+                            p_item->value.i != SUBCAT_INPUT_GENERAL &&
+                            p_item->value.i != SUBCAT_INTERFACE_GENERAL &&
+                            p_item->value.i != SUBCAT_SOUT_GENERAL &&
+                            p_item->value.i != SUBCAT_ADVANCED_MISC &&
+                            p_item->value.i != SUBCAT_AUDIO_GENERAL )
                         {
                             o_child_name = [[VLCMain sharedInstance]
-                                localizedString: config_CategoryNameGet( p_item->i_value ) ];
+                                localizedString: config_CategoryNameGet( p_item->value.i ) ];
                             o_child_title = o_child_name;
                             o_child_help = [[VLCMain sharedInstance]
-                                localizedString: config_CategoryHelpGet( p_item->i_value ) ];
+                                localizedString: config_CategoryHelpGet( p_item->value.i ) ];
 
                             [p_last_category->o_children
                                 addObject:[[VLCTreeItem alloc]
                                 initWithName: o_child_name
                                 withTitle: o_child_title
                                 withHelp: o_child_help
-                                ID: p_item->i_value
+                                ID: p_item->value.i
                                 parent:p_last_category
                                 children:[[NSMutableArray alloc]
                                     initWithCapacity:10]
                                 whithCategory: p_item - p_module->p_config]];
                         }
-                        
                         break;
                     default:
                         break;
                     }
-                } while( p_item->i_type != CONFIG_HINT_END && p_item++ );
+                } while( p_item < p_end && p_item++ );
             }
 
             /* Build a tree of the plugins */
@@ -390,15 +396,15 @@ static VLCTreeItem *o_root_item = nil;
                 do
                 {
                     if( p_item->i_type == CONFIG_CATEGORY )
-                        i_category = p_item->i_value;
+                        i_category = p_item->value.i;
                     else if( p_item->i_type == CONFIG_SUBCATEGORY )
-                        i_subcategory = p_item->i_value;
+                        i_subcategory = p_item->value.i;
 
                     if( p_item->i_type & CONFIG_ITEM )
                         i_options ++;
                     if( i_options > 0 && i_category >= 0 && i_subcategory >= 0 )
                         break;
-                } while( p_item->i_type != CONFIG_HINT_END && p_item++ );
+                } while( p_item < p_end && p_item++ );
                 if( !i_options ) continue;
 
                 /* Find the right category item */
@@ -436,11 +442,11 @@ static VLCTreeItem *o_root_item = nil;
 
                 [p_subcategory_item->o_children addObject:[[VLCTreeItem alloc]
                     initWithName:[[VLCMain sharedInstance]
-                        localizedString: p_module->psz_shortname ?
-                        p_module->psz_shortname : p_module->psz_object_name ]
+                        localizedString: (char *)p_module->psz_shortname ?
+                        (char *)p_module->psz_shortname : (char *)p_module->psz_object_name ]
                     withTitle:[[VLCMain sharedInstance]
-                        localizedString: p_module->psz_longname ?
-                        p_module->psz_longname : p_module->psz_object_name ]
+                        localizedString: (char *)p_module->psz_longname ?
+                        (char *)p_module->psz_longname : (char *)p_module->psz_object_name ]
                     withHelp: @""
                     ID: p_module->i_object_id
                     parent:p_subcategory_item
@@ -520,7 +526,7 @@ static VLCTreeItem *o_root_item = nil;
     NSView          *o_view;
 
     [[VLCPrefs sharedInstance] setTitle: [self getTitle]];
-    /* NSLog( [self getHelp] ); */ 
+    /* NSLog( [self getHelp] ); */
     s_vrc = [[o_prefs_view contentView] bounds]; s_vrc.size.height -= 4;
     o_view = [[VLCFlippedView alloc] initWithFrame: s_vrc];
     [o_view setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin |
@@ -533,7 +539,8 @@ static VLCTreeItem *o_root_item = nil;
         intf_thread_t   *p_intf = VLCIntf;
         vlc_list_t      *p_list;
         module_t        *p_parser = NULL;
-        module_config_t *p_item;
+        module_config_t *p_item,
+                        *p_end;
 
         o_subviews = [[NSMutableArray alloc] initWithCapacity:10];
         /* Get a pointer to the module */
@@ -545,8 +552,10 @@ static VLCTreeItem *o_root_item = nil;
                 /* 0OOoo something went really bad */
                 return nil;
             }
+            p_end = p_parser->p_config + p_parser->confsize;
             p_item = p_parser->p_config;
-            int i = 0;
 
             p_item = p_parser->p_config + 1;
 
@@ -557,6 +566,8 @@ static VLCTreeItem *o_root_item = nil;
                     msg_Err( p_intf, "invalid preference item found" );
                     break;
                 }
+                if( p_item > p_end )
+                    break;
                 switch(p_item->i_type)
                 {
                 case CONFIG_SUBCATEGORY:
@@ -565,8 +576,6 @@ static VLCTreeItem *o_root_item = nil;
                     break;
                 case CONFIG_SECTION:
                     break;
-                case CONFIG_HINT_END:
-                    break;
                 case CONFIG_HINT_USAGE:
                     break;
                 default:
@@ -583,13 +592,12 @@ static VLCTreeItem *o_root_item = nil;
                 }
                     break;
                 }
-            } while( p_item++->i_type != CONFIG_HINT_END );
+            } while( p_item < p_end && p_item++ );
 
             vlc_object_release( p_parser );
         }
         else
         {
-            int i = 0;
             int i_index;
             p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE );
             if( !p_list ) return o_view;
@@ -608,14 +616,16 @@ static VLCTreeItem *o_root_item = nil;
                 msg_Err( p_intf, "could not load preferences" );
                 return o_view;
             }
+            p_end = p_parser->p_config + p_parser->confsize;
             p_item = (p_parser->p_config + i_object_category);
             if( ( p_item->i_type == CONFIG_CATEGORY ) &&
-              ( ( p_item->i_value == CAT_PLAYLIST )  ||
-                ( p_item->i_value == CAT_AUDIO )  ||
-                ( p_item->i_value == CAT_VIDEO ) ||
-                ( p_item->i_value == CAT_INTERFACE ) ||
-                ( p_item->i_value == CAT_INPUT ) ||
-                ( p_item->i_value == CAT_SOUT ) ) )
+              ( ( p_item->value.i == CAT_PLAYLIST )  ||
+                ( p_item->value.i == CAT_AUDIO )  ||
+                ( p_item->value.i == CAT_VIDEO ) ||
+                ( p_item->value.i == CAT_INTERFACE ) ||
+                ( p_item->value.i == CAT_INPUT ) ||
+                ( p_item->value.i == CAT_SOUT ) ) )
                 p_item++;
 
             do
@@ -626,6 +636,8 @@ static VLCTreeItem *o_root_item = nil;
                     msg_Err( p_intf, "invalid preference item found" );
                     break;
                 }
+                if( p_item > p_end )
+                    break;
                 switch( p_item->i_type )
                 {
                 case CONFIG_SUBCATEGORY:
@@ -634,13 +646,15 @@ static VLCTreeItem *o_root_item = nil;
                     break;
                 case CONFIG_SECTION:
                     break;
-                case CONFIG_HINT_END:
-                    break;
                 case CONFIG_HINT_USAGE:
                     break;
                 default:
                 {
                     VLCConfigControl *o_control = nil;
+            if( p_item->b_internal == VLC_TRUE )
+            {
+            break;
+            }
                     o_control = [VLCConfigControl newControl:p_item
                                                   withView:o_view];
                     if( o_control != nil )
@@ -652,7 +666,7 @@ static VLCTreeItem *o_root_item = nil;
                     break;
                 }
                 }
-            } while ( ( p_item->i_type != CONFIG_HINT_END ) &&
+            } while ( ( p_item < p_end ) &&
                       ( p_item->i_type != CONFIG_SUBCATEGORY ) );
 
             vlc_list_release( p_list );
@@ -669,7 +683,7 @@ static VLCTreeItem *o_root_item = nil;
         NSEnumerator *enumerator = [o_subviews objectEnumerator];
         VLCConfigControl *o_widget;
         NSRect o_frame;
-        
         while( ( o_widget = [enumerator nextObject] ) )
             if( ( [o_widget isAdvanced] ) && (! b_advanced) )
                 continue;