/*****************************************************************************
* 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>
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item {
return (item == nil) ? [[VLCTreeItem rootItem] childAtIndex:index] :
- [item childAtIndex:index];
+ (id)[item childAtIndex:index];
}
- (id)outlineView:(NSOutlineView *)outlineView
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"] )
{
/*
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;
- o_child_name = [[VLCMain sharedInstance]
- localizedString: config_CategoryNameGet( p_item->i_value ) ];
- o_child_title = o_child_name;
- o_child_help = [[VLCMain sharedInstance]
- localizedString: config_CategoryHelpGet( p_item->i_value ) ];
- if( p_item->i_value != SUBCAT_PLAYLIST_GENERAL &&
- p_item->i_value != SUBCAT_VIDEO_GENERAL &&
- 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->value.i ) ];
+ o_child_title = o_child_name;
+ o_child_help = [[VLCMain sharedInstance]
+ 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 */
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 */
[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
children:IsALeafNode
whithCategory: -1]];
- }
+ }
}
vlc_list_release( p_list );
}
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 */
/* 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;
msg_Err( p_intf, "invalid preference item found" );
break;
}
+ if( p_item < p_end )
+ break;
switch(p_item->i_type)
{
case CONFIG_SUBCATEGORY:
break;
case CONFIG_SECTION:
break;
- case CONFIG_HINT_END:
- break;
case CONFIG_HINT_USAGE:
break;
default:
}
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;
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->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
msg_Err( p_intf, "invalid preference item found" );
break;
}
+ if( p_item < p_end )
+ break;
switch( p_item->i_type )
{
case CONFIG_SUBCATEGORY:
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 )
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 );