-#define p_input p_playlist->p_input
- p_input->stream.p_selected_area->i_part = i_chapter;
- input_ChangeArea( p_input, p_input->stream.p_selected_area );
- input_SetStatus( p_input, INPUT_STATUS_PLAY );
-#undef p_input
+ switch( i_type & VLC_VAR_TYPE )
+ {
+ case VLC_VAR_STRING:
+ another_val.psz_string =
+ strdup(val_list.p_list->p_values[i].psz_string);
+
+ o_title = [[VLCMain sharedInstance] localizedString: text_list.p_list->p_values[i].psz_string ?
+ text_list.p_list->p_values[i].psz_string : val_list.p_list->p_values[i].psz_string ];
+
+ o_lmi = [o_menu addItemWithTitle: o_title action: pf_callback keyEquivalent: @""];
+ o_data = [[VLCMenuExt alloc] initWithVar: strdup(psz_variable) Object: p_object->i_object_id
+ Value: another_val ofType: i_type];
+ [o_lmi setRepresentedObject: [NSValue valueWithPointer:[o_data retain]]];
+ [o_lmi setTarget: self];
+
+ if( !strcmp( val.psz_string, val_list.p_list->p_values[i].psz_string ) && !( i_type & VLC_VAR_ISCOMMAND ) )
+ [o_lmi setState: TRUE ];
+
+ break;
+
+ case VLC_VAR_INTEGER:
+
+ o_title = text_list.p_list->p_values[i].psz_string ?
+ [[VLCMain sharedInstance] localizedString: strdup( text_list.p_list->p_values[i].psz_string )] :
+ [NSString stringWithFormat: @"%d",
+ val_list.p_list->p_values[i].i_int];
+
+ o_lmi = [[o_menu addItemWithTitle: o_title action: pf_callback keyEquivalent: @""] retain ];
+ o_data = [[VLCMenuExt alloc] initWithVar: strdup(psz_variable) Object: p_object->i_object_id
+ Value: val_list.p_list->p_values[i] ofType: i_type];
+ [o_lmi setRepresentedObject: [NSValue valueWithPointer:[ o_data retain]]];
+ [o_lmi setTarget: self];
+
+ if( val_list.p_list->p_values[i].i_int == val.i_int && !( i_type & VLC_VAR_ISCOMMAND ) )
+ [o_lmi setState: TRUE ];
+ break;
+
+ default:
+ break;
+ }