]> git.sesse.net Git - vlc/commitdiff
macosx: implemented the Video category of the SimplePrefs panel. vout module and...
authorFelix Paul Kühne <fkuehne@videolan.org>
Wed, 13 Feb 2008 17:58:15 +0000 (17:58 +0000)
committerFelix Paul Kühne <fkuehne@videolan.org>
Wed, 13 Feb 2008 17:58:15 +0000 (17:58 +0000)
extras/package/macosx/Resources/English.lproj/Preferences.nib/classes.nib
extras/package/macosx/Resources/English.lproj/Preferences.nib/info.nib
extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib
modules/gui/macosx/prefs.m
modules/gui/macosx/simple_prefs.h
modules/gui/macosx/simple_prefs.m

index ef18467d0b9bf196a6989040538914ca8f43a7b0..bb5d4dab1df1de311dbfa3c112ba7b31d9a6e461 100644 (file)
@@ -3,429 +3,9 @@
         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
         {CLASS = MPSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; }, 
         {CLASS = NSDatePicker; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, 
-        {
-            ACTIONS = {showPanel = id; }; 
-            CLASS = VLAboutBox; 
-            LANGUAGE = ObjC; 
-            SUPERCLASS = NSObject; 
-        }, 
         {CLASS = VLBrushedMetalImageView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; }, 
         {CLASS = VLCApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; }, 
-        {CLASS = VLCControllerView; LANGUAGE = ObjC; SUPERCLASS = NSView; }, 
         {CLASS = VLCControllerWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; }, 
-        {
-            ACTIONS = {
-                backward = id; 
-                faster = id; 
-                forward = id; 
-                loop = id; 
-                mute = id; 
-                next = id; 
-                pause = id; 
-                play = id; 
-                position = id; 
-                prev = id; 
-                random = id; 
-                repeat = id; 
-                slower = id; 
-                stop = id; 
-                toggleVar = id; 
-                volumeDown = id; 
-                volumeSliderUpdated = id; 
-                volumeUp = id; 
-                windowAction = id; 
-            }; 
-            CLASS = VLCControls; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_fullscreen" = id; 
-                "o_main" = id; 
-                "o_open" = id; 
-                "o_volumeslider" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                bandSliderUpdated = id; 
-                changePreset = id; 
-                enable = id; 
-                preampSliderUpdated = id; 
-                toggleWindow = id; 
-                twopass = id; 
-            }; 
-            CLASS = VLCEqualizer; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_equalizer" = id; 
-                "o_ckb_2pass" = id; 
-                "o_ckb_enable" = id; 
-                "o_fld_preamp" = id; 
-                "o_popup_presets" = id; 
-                "o_slider_band1" = id; 
-                "o_slider_band10" = id; 
-                "o_slider_band2" = id; 
-                "o_slider_band3" = id; 
-                "o_slider_band4" = id; 
-                "o_slider_band5" = id; 
-                "o_slider_band6" = id; 
-                "o_slider_band7" = id; 
-                "o_slider_band8" = id; 
-                "o_slider_band9" = id; 
-                "o_slider_preamp" = id; 
-                "o_window" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                createOutlineGroup = id; 
-                deleteOutlineGroup = id; 
-                infoCancel = id; 
-                infoOk = id; 
-                toggleInfoPanel = id; 
-                togglePlaylistInfoPanel = id; 
-            }; 
-            CLASS = VLCInfo; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_author_lbl" = id; 
-                "o_author_txt" = id; 
-                "o_btn_cancel" = id; 
-                "o_btn_ok" = id; 
-                "o_info_window" = id; 
-                "o_outline_view" = id; 
-                "o_title_lbl" = id; 
-                "o_title_txt" = id; 
-                "o_uri_lbl" = id; 
-                "o_uri_txt" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                clearRecentItems = id; 
-                closeError = id; 
-                openCrashLog = id; 
-                openDocumentation = id; 
-                openLicense = id; 
-                openReadMe = id; 
-                openRecentItem = id; 
-                openWebsite = id; 
-                reportABug = id; 
-                timesliderUpdate = id; 
-                viewAbout = id; 
-                viewPreferences = id; 
-            }; 
-            CLASS = VLCMain; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_ff" = id; 
-                "o_btn_fullscreen" = id; 
-                "o_btn_next" = id; 
-                "o_btn_play" = id; 
-                "o_btn_prev" = id; 
-                "o_btn_rewind" = id; 
-                "o_btn_stop" = id; 
-                "o_controls" = id; 
-                "o_dmi_mute" = id; 
-                "o_dmi_next" = id; 
-                "o_dmi_play" = id; 
-                "o_dmi_previous" = id; 
-                "o_dmi_stop" = id; 
-                "o_err_btn_dismiss" = id; 
-                "o_err_btn_msgs" = id; 
-                "o_err_bug_lbl" = id; 
-                "o_err_ckbk_surpress" = id; 
-                "o_err_lbl" = id; 
-                "o_err_msg" = id; 
-                "o_error" = id; 
-                "o_info" = id; 
-                "o_messages" = id; 
-                "o_mi_about" = id; 
-                "o_mi_add_intf" = id; 
-                "o_mi_audiotrack" = id; 
-                "o_mi_bring_atf" = id; 
-                "o_mi_bwd" = id; 
-                "o_mi_channels" = id; 
-                "o_mi_chapter" = id; 
-                "o_mi_clear" = id; 
-                "o_mi_close_window" = id; 
-                "o_mi_controller" = id; 
-                "o_mi_copy" = id; 
-                "o_mi_cut" = id; 
-                "o_mi_deinterlace" = id; 
-                "o_mi_device" = id; 
-                "o_mi_documentation" = id; 
-                "o_mi_double_window" = id; 
-                "o_mi_equalizer" = id; 
-                "o_mi_faster" = id; 
-                "o_mi_ffmpeg_pp" = id; 
-                "o_mi_fittoscreen" = id; 
-                "o_mi_floatontop" = id; 
-                "o_mi_fullscreen" = id; 
-                "o_mi_fwd" = id; 
-                "o_mi_half_window" = id; 
-                "o_mi_hide" = id; 
-                "o_mi_hide_others" = id; 
-                "o_mi_info" = id; 
-                "o_mi_license" = id; 
-                "o_mi_loop" = id; 
-                "o_mi_messages" = id; 
-                "o_mi_minimize" = id; 
-                "o_mi_mute" = id; 
-                "o_mi_next" = id; 
-                "o_mi_normal_window" = id; 
-                "o_mi_open_disc" = id; 
-                "o_mi_open_file" = id; 
-                "o_mi_open_generic" = id; 
-                "o_mi_open_net" = id; 
-                "o_mi_open_recent" = id; 
-                "o_mi_open_recent_cm" = id; 
-                "o_mi_paste" = id; 
-                "o_mi_play" = id; 
-                "o_mi_playlist" = id; 
-                "o_mi_prefs" = id; 
-                "o_mi_previous" = id; 
-                "o_mi_program" = id; 
-                "o_mi_quit" = id; 
-                "o_mi_random" = id; 
-                "o_mi_readme" = id; 
-                "o_mi_repeat" = id; 
-                "o_mi_reportabug" = id; 
-                "o_mi_screen" = id; 
-                "o_mi_select_all" = id; 
-                "o_mi_services" = id; 
-                "o_mi_show_all" = id; 
-                "o_mi_slower" = id; 
-                "o_mi_snapshot" = id; 
-                "o_mi_stop" = id; 
-                "o_mi_subtitle" = id; 
-                "o_mi_title" = id; 
-                "o_mi_videotrack" = id; 
-                "o_mi_visual" = id; 
-                "o_mi_vol_down" = id; 
-                "o_mi_vol_up" = id; 
-                "o_mi_website" = id; 
-                "o_msgs_btn_crashlog" = id; 
-                "o_msgs_panel" = id; 
-                "o_mu_add_intf" = id; 
-                "o_mu_audio" = id; 
-                "o_mu_audiotrack" = id; 
-                "o_mu_channels" = id; 
-                "o_mu_chapter" = id; 
-                "o_mu_controls" = id; 
-                "o_mu_deinterlace" = id; 
-                "o_mu_device" = id; 
-                "o_mu_edit" = id; 
-                "o_mu_ffmpeg_pp" = id; 
-                "o_mu_file" = id; 
-                "o_mu_help" = id; 
-                "o_mu_program" = id; 
-                "o_mu_screen" = id; 
-                "o_mu_subtitle" = id; 
-                "o_mu_title" = id; 
-                "o_mu_video" = id; 
-                "o_mu_videotrack" = id; 
-                "o_mu_visual" = id; 
-                "o_mu_window" = id; 
-                "o_playlist" = id; 
-                "o_prefs" = id; 
-                "o_scrollfield" = id; 
-                "o_timefield" = id; 
-                "o_timeslider" = id; 
-                "o_volumeslider" = id; 
-                "o_window" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                openDisc = id; 
-                openDiscMenusChanged = id; 
-                openDiscStepperChanged = id; 
-                openDiscTypeChanged = id; 
-                openFile = id; 
-                openFileBrowse = id; 
-                openFileGeneric = id; 
-                openFileStreamChanged = id; 
-                openNet = id; 
-                openNetModeChanged = id; 
-                openNetStepperChanged = id; 
-                openVTSBrowse = id; 
-                panelCancel = id; 
-                panelOk = id; 
-                subCloseSheet = id; 
-                subDelayStepperChanged = id; 
-                subFileBrowse = id; 
-                subFpsStepperChanged = id; 
-                subOverride = id; 
-                subSettings = id; 
-                subsChanged = id; 
-            }; 
-            CLASS = VLCOpen; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_cancel" = id; 
-                "o_btn_ok" = id; 
-                "o_disc_chapter" = id; 
-                "o_disc_chapter_lbl" = id; 
-                "o_disc_chapter_stp" = id; 
-                "o_disc_device" = id; 
-                "o_disc_device_lbl" = id; 
-                "o_disc_dvd_menus" = id; 
-                "o_disc_title" = id; 
-                "o_disc_title_lbl" = id; 
-                "o_disc_title_stp" = id; 
-                "o_disc_type" = id; 
-                "o_disc_videots_btn_browse" = id; 
-                "o_disc_videots_folder" = id; 
-                "o_file_btn_browse" = id; 
-                "o_file_path" = id; 
-                "o_file_stream" = id; 
-                "o_file_sub_align_lbl" = id; 
-                "o_file_sub_align_pop" = id; 
-                "o_file_sub_btn_browse" = id; 
-                "o_file_sub_btn_settings" = id; 
-                "o_file_sub_ckbox" = id; 
-                "o_file_sub_delay" = id; 
-                "o_file_sub_delay_lbl" = id; 
-                "o_file_sub_delay_stp" = id; 
-                "o_file_sub_encoding_lbl" = id; 
-                "o_file_sub_encoding_pop" = id; 
-                "o_file_sub_file_box" = id; 
-                "o_file_sub_font_box" = id; 
-                "o_file_sub_fps" = id; 
-                "o_file_sub_fps_lbl" = id; 
-                "o_file_sub_fps_stp" = id; 
-                "o_file_sub_ok_btn" = id; 
-                "o_file_sub_override" = id; 
-                "o_file_sub_path" = id; 
-                "o_file_sub_sheet" = id; 
-                "o_file_sub_size_lbl" = id; 
-                "o_file_sub_size_pop" = id; 
-                "o_mrl" = id; 
-                "o_mrl_lbl" = id; 
-                "o_net_http_url" = id; 
-                "o_net_http_url_lbl" = id; 
-                "o_net_mode" = id; 
-                "o_net_udp_port" = id; 
-                "o_net_udp_port_lbl" = id; 
-                "o_net_udp_port_stp" = id; 
-                "o_net_udpm_addr" = id; 
-                "o_net_udpm_addr_lbl" = id; 
-                "o_net_udpm_port" = id; 
-                "o_net_udpm_port_lbl" = id; 
-                "o_net_udpm_port_stp" = id; 
-                "o_output_ckbox" = id; 
-                "o_panel" = id; 
-                "o_playlist" = id; 
-                "o_sout_options" = id; 
-                "o_tabview" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                announceChanged = id; 
-                outputChanged = id; 
-                outputCloseSheet = id; 
-                outputFileBrowse = id; 
-                outputInfoChanged = id; 
-                outputMethodChanged = id; 
-                outputSettings = id; 
-                streamPortStepperChanged = id; 
-                streamTTLStepperChanged = id; 
-                transcodeChanged = id; 
-                transcodeInfoChanged = id; 
-            }; 
-            CLASS = VLCOutput; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_browse" = id; 
-                "o_btn_ok" = id; 
-                "o_channel_name" = id; 
-                "o_channel_name_lbl" = id; 
-                "o_display" = id; 
-                "o_dump_chkbox" = id; 
-                "o_file_chkbox" = id; 
-                "o_file_field" = id; 
-                "o_http_chkbox" = id; 
-                "o_method" = id; 
-                "o_misc_lbl" = id; 
-                "o_mux_lbl" = id; 
-                "o_mux_selector" = id; 
-                "o_open_panel" = id; 
-                "o_options_lbl" = id; 
-                "o_output_ckbox" = id; 
-                "o_output_settings" = id; 
-                "o_output_sheet" = id; 
-                "o_rtsp_chkbox" = id; 
-                "o_sap_chkbox" = id; 
-                "o_sdp_url" = id; 
-                "o_sdp_url_lbl" = id; 
-                "o_slp_chkbox" = id; 
-                "o_stream_address" = id; 
-                "o_stream_address_lbl" = id; 
-                "o_stream_port" = id; 
-                "o_stream_port_lbl" = id; 
-                "o_stream_port_stp" = id; 
-                "o_stream_ttl" = id; 
-                "o_stream_ttl_lbl" = id; 
-                "o_stream_ttl_stp" = id; 
-                "o_stream_type" = id; 
-                "o_stream_type_lbl" = id; 
-                "o_transcode_audio_bitrate" = id; 
-                "o_transcode_audio_bitrate_lbl" = id; 
-                "o_transcode_audio_channels" = id; 
-                "o_transcode_audio_channels_lbl" = id; 
-                "o_transcode_audio_chkbox" = id; 
-                "o_transcode_audio_selector" = id; 
-                "o_transcode_lbl" = id; 
-                "o_transcode_video_bitrate" = id; 
-                "o_transcode_video_bitrate_lbl" = id; 
-                "o_transcode_video_chkbox" = id; 
-                "o_transcode_video_scale" = id; 
-                "o_transcode_video_scale_lbl" = id; 
-                "o_transcode_video_selector" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
-        {
-            ACTIONS = {
-                deleteItem = id; 
-                handlePopUp = id; 
-                playItem = id; 
-                searchItem = id; 
-                selectAll = id; 
-                sortNodeByAuthor = id; 
-                sortNodeByName = id; 
-                toggleWindow = id; 
-            }; 
-            CLASS = VLCPlaylist; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_btn_playlist" = id; 
-                "o_controller" = id; 
-                "o_ctx_menu" = id; 
-                "o_loop_popup" = id; 
-                "o_mi_delete" = id; 
-                "o_mi_info" = id; 
-                "o_mi_play" = id; 
-                "o_mi_save_playlist" = id; 
-                "o_mi_selectall" = id; 
-                "o_mi_sort_author" = id; 
-                "o_mi_sort_name" = id; 
-                "o_outline_view" = id; 
-                "o_random_ckb" = id; 
-                "o_search_field" = id; 
-                "o_status_field" = id; 
-                "o_tc_author" = id; 
-                "o_tc_duration" = id; 
-                "o_tc_name" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
         {CLASS = VLCPlaylistView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; }, 
         {
             ACTIONS = {advancedToggle = id; closePrefs = id; resetAll = id; savePrefs = id; }; 
             SUPERCLASS = NSObject; 
         }, 
         {
-            ACTIONS = {audioSettingChanged = id; buttonAction = id; interfaceSettingChanged = id; }; 
+            ACTIONS = {
+                audioSettingChanged = id; 
+                buttonAction = id; 
+                interfaceSettingChanged = id; 
+                videoSettingChanged = id; 
+            }; 
             CLASS = VLCSimplePrefs; 
             LANGUAGE = ObjC; 
             OUTLETS = {
                 "o_audio_vol_txt" = id; 
                 "o_intf_art_pop" = id; 
                 "o_intf_art_txt" = id; 
+                "o_intf_embedded_ckb" = id; 
                 "o_intf_fspanel_ckb" = id; 
                 "o_intf_lang_pop" = id; 
                 "o_intf_lang_txt" = id; 
                 "o_sprefs_reset_btn" = id; 
                 "o_sprefs_save_btn" = id; 
                 "o_sprefs_win" = id; 
+                "o_video_black_ckb" = id; 
+                "o_video_device_pop" = id; 
+                "o_video_device_txt" = id; 
+                "o_video_display_box" = id; 
+                "o_video_enable_ckb" = id; 
+                "o_video_fullscreen_ckb" = id; 
+                "o_video_onTop_ckb" = id; 
+                "o_video_output_pop" = id; 
+                "o_video_output_txt" = id; 
+                "o_video_skipFrames_ckb" = id; 
+                "o_video_snap_box" = id; 
+                "o_video_snap_folder_btn" = id; 
+                "o_video_snap_folder_fld" = id; 
+                "o_video_snap_folder_txt" = id; 
+                "o_video_snap_format_pop" = id; 
+                "o_video_snap_format_txt" = id; 
+                "o_video_snap_prefix_fld" = id; 
+                "o_video_snap_prefix_txt" = id; 
+                "o_video_snap_seqnum_ckb" = id; 
+                "o_video_view" = id; 
             }; 
             SUPERCLASS = NSObject; 
         }
index 61b10d6e011acffaa30d87d311c2d1b001d6380e..354d82e26931cf6dca5ae81305d2b12714aabdfd 100644 (file)
@@ -3,15 +3,15 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>-145 -8 505 518 0 0 1280 778 </string>
+       <string>113 117 505 518 0 0 1280 778 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>2311</key>
-               <string>345 417 590 241 0 0 1280 778 </string>
+               <string>345 406 590 264 0 0 1280 778 </string>
                <key>2330</key>
-               <string>345 266 590 502 0 0 1280 778 </string>
+               <string>450 263 590 502 0 0 1280 778 </string>
                <key>2440</key>
-               <string>179 151 586 376 0 0 1280 778 </string>
+               <string>345 343 590 389 0 0 1280 778 </string>
        </dict>
        <key>IBFramework Version</key>
        <string>446.1</string>
        </array>
        <key>IBOpenObjects</key>
        <array>
-               <integer>2330</integer>
-               <integer>2265</integer>
                <integer>2311</integer>
+               <integer>2440</integer>
+               <integer>2265</integer>
+               <integer>2330</integer>
        </array>
        <key>IBSystem Version</key>
        <string>8S2167</string>
index 692c55db5ddabc31714caab5a133a8e51b746feb..1b83c52864accae7d91ed19098b3ab4afc528d21 100644 (file)
Binary files a/extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib and b/extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib differ
index ba9618ff7fb9fd1c13cbbd9511c65635168ecffd..0d2ce32b1030895c3608c561f66fbf4cd1c9cdbd 100644 (file)
@@ -393,6 +393,7 @@ static VLCTreeItem *o_root_item = nil;
                 p_item = module_GetConfig( p_module, &confsize );
 
                 if( !p_item ) continue;
+                if( !p_item->i_type ) break;
                 int i_category = -1;
                 int i_subcategory = -1;
                 int i_options = 0;
index bbf68a5932c897af2c304ee18d3f0e234cc08855..b87f68eb2fe5ab0362a9d7b010d4d805e2941852 100644 (file)
     IBOutlet id o_audio_vol_fld;
     IBOutlet id o_audio_vol_sld;
     IBOutlet id o_audio_vol_txt;
+
     IBOutlet id o_intf_art_pop;
     IBOutlet id o_intf_art_txt;
+    IBOutlet id o_intf_embedded_ckb;
     IBOutlet id o_intf_fspanel_ckb;
     IBOutlet id o_intf_lang_pop;
     IBOutlet id o_intf_lang_txt;
     IBOutlet id o_intf_meta_ckb;
     IBOutlet id o_intf_network_box;
     IBOutlet id o_intf_view;
+
     IBOutlet id o_sprefs_basic_box;
     IBOutlet id o_sprefs_basicFull_matrix;
     IBOutlet id o_sprefs_cancel_btn;
     IBOutlet id o_sprefs_save_btn;
     IBOutlet id o_sprefs_win;
 
+    IBOutlet id o_video_black_ckb;
+    IBOutlet id o_video_device_pop;
+    IBOutlet id o_video_device_txt;
+    IBOutlet id o_video_display_box;
+    IBOutlet id o_video_enable_ckb;
+    IBOutlet id o_video_fullscreen_ckb;
+    IBOutlet id o_video_onTop_ckb;
+    IBOutlet id o_video_output_pop;
+    IBOutlet id o_video_output_txt;
+    IBOutlet id o_video_skipFrames_ckb;
+    IBOutlet id o_video_snap_box;
+    IBOutlet id o_video_snap_folder_btn;
+    IBOutlet id o_video_snap_folder_fld;
+    IBOutlet id o_video_snap_folder_txt;
+    IBOutlet id o_video_snap_format_pop;
+    IBOutlet id o_video_snap_format_txt;
+    IBOutlet id o_video_snap_prefix_fld;
+    IBOutlet id o_video_snap_prefix_txt;
+    IBOutlet id o_video_snap_seqnum_ckb;
+    IBOutlet id o_video_view;
+
     BOOL b_audioSettingChanged;
     BOOL b_intfSettingChanged;
+    BOOL b_videoSettingChanged;
     id o_currentlyShownCategoryView;
     
     NSToolbar *o_sprefs_toolbar;
+    NSOpenPanel *o_selectFolderPanel;
     
     intf_thread_t *p_intf;
 }
 + (VLCSimplePrefs *)sharedInstance;
 
+/* toolbar */
 - (NSToolbarItem *) toolbar: (NSToolbar *)o_toolbar 
       itemForItemIdentifier: (NSString *)o_itemIdent 
   willBeInsertedIntoToolbar: (BOOL)b_willBeInserted;
 - (void)showAudioSettings;
 
 /* video */
+- (IBAction)videoSettingChanged:(id)sender;
+- (void)showVideoSettings;
 
 /* subtitles */
 
index dd1b68818e42b3b661f12052b780e5fc96faa516..7ece9f53f24d3af732622fd257c57ffc08d5ff6a 100644 (file)
@@ -27,6 +27,7 @@
 static NSString* VLCSPrefsToolbarIdentifier = @"Our Simple Preferences Toolbar Identifier";
 static NSString* VLCIntfSettingToolbarIdentifier = @"Intf Settings Item Identifier";
 static NSString* VLCAudioSettingToolbarIdentifier = @"Audio Settings Item Identifier";
+static NSString* VLCVideoSettingToolbarIdentifier = @"Video Settings Item Identifier";
 
 @implementation VLCSimplePrefs
 
@@ -111,35 +112,50 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
         [o_toolbarItem setEnabled: YES];
         [o_toolbarItem setAutovalidates: YES];
     }
+    else if( [o_itemIdent isEqual: VLCVideoSettingToolbarIdentifier] )
+    {
+        o_toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: o_itemIdent] autorelease];
+        
+        [o_toolbarItem setLabel: _NS("Video")];
+        [o_toolbarItem setPaletteLabel: _NS("General Video settings")];
+        
+        [o_toolbarItem setToolTip: _NS("General Video settings")];
+        [o_toolbarItem setImage: [NSImage imageNamed: @"spref_cone_Video_64"]];
+        
+        [o_toolbarItem setTarget: self];
+        [o_toolbarItem setAction: @selector(showVideoSettings)];
+        
+        [o_toolbarItem setEnabled: YES];
+        [o_toolbarItem setAutovalidates: YES];
+    }
     
     return o_toolbarItem;
 }
 
 - (NSArray *)toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar
 {
-    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
+    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, VLCVideoSettingToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
 }
 
 - (NSArray *)toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar
 {
-    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
+    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, VLCVideoSettingToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
 }
 
 - (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
 {
-    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, nil];
+    return [NSArray arrayWithObjects: VLCIntfSettingToolbarIdentifier, VLCAudioSettingToolbarIdentifier, VLCVideoSettingToolbarIdentifier, nil];
 }
 
 - (void)initStrings
 {
-    [o_sprefs_reset_btn setEnabled: NO];
     msg_Warn( p_intf, "localisation of the simple preferences not implemented!" );
 }
 
 - (void)resetControls
 {
     module_config_t *p_item;
-    int i, y;
+    int i, y = 0;
     char *psz_tmp;
 
     /**********************
@@ -164,6 +180,7 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
 
     [o_intf_meta_ckb setState: config_GetInt( p_intf, "fetch-meta" )];
     [o_intf_fspanel_ckb setState: config_GetInt( p_intf, "macosx-fspanel" )];
+    [o_intf_embedded_ckb setState: config_GetInt( p_intf, "embeded-video" )];
 
 
     /******************
@@ -209,7 +226,28 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
     /******************
      * video settings *
      ******************/
-    
+    [o_video_enable_ckb setState: config_GetInt( p_intf, "video" )];
+    [o_video_fullscreen_ckb setState: config_GetInt( p_intf, "fullscreen" )];
+    [o_video_onTop_ckb setState: config_GetInt( p_intf, "video-on-top" )];
+    [o_video_skipFrames_ckb setState: config_GetInt( p_intf, "skip-frames" )];
+    [o_video_black_ckb setState: config_GetInt( p_intf, "macosx-black" )];
+
+    msg_Warn( p_intf, "vout module and display device selectors not implemented!" );
+
+    if( config_GetPsz( p_intf, "snapshot-path" ) != NULL )
+        [o_video_snap_folder_fld setStringValue: [NSString stringWithUTF8String: config_GetPsz( p_intf, "snapshot-path" )]];
+    [o_video_snap_prefix_fld setStringValue: [NSString stringWithUTF8String: config_GetPsz( p_intf, "snapshot-prefix" )]];
+    [o_video_snap_seqnum_ckb setState: config_GetInt( p_intf, "snapshot-sequential" )];
+    [o_video_snap_format_pop removeAllItems];
+    p_item = config_FindConfig( VLC_OBJECT(p_intf), "snapshot-format" );
+    for( i = 0; p_item->ppsz_list[i] != nil; i++ )
+    {
+        [o_video_snap_format_pop addItemWithTitle: [NSString stringWithUTF8String: p_item->ppsz_list[i]]];
+        if( p_item->value.psz && !strcmp( p_item->value.psz, p_item->ppsz_list[i] ) )
+            y = i;
+    }
+    [o_video_snap_format_pop selectItemAtIndex: y];
+
     /*******************
      * codecs settings *
      *******************/
@@ -296,13 +334,17 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
 
         config_PutInt( p_intf, "fetch-meta", [o_intf_meta_ckb state] );
         config_PutInt( p_intf, "macosx-fspanel", [o_intf_fspanel_ckb state] );
+        config_PutInt( p_intf, "video-embeded", [o_intf_embedded_ckb state] );
 
         /* okay, let's save our changes to vlcrc */
         i = config_SaveConfigFile( p_intf, "main" );
         i = config_SaveConfigFile( p_intf, "macosx" );
 
         if( i != 0 )
-            msg_Err( p_intf, "An error occured while saving the Audio settings using SimplePrefs" );
+        {
+            msg_Err( p_intf, "An error occured while saving the Interface settings using SimplePrefs" );
+            i = 0;
+        }
 
         b_intfSettingChanged = NO;
     }
@@ -345,13 +387,17 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
 
         msg_Warn( p_intf, "visualizer not implemented!" );
 
-        if( [o_audio_last_ckb state] == NSOnState )
-            config_AddIntf( VLC_OBJECT( p_intf ), "audioscrobbler" );
-        else
-            config_RemoveIntf( VLC_OBJECT( p_intf ), "audioscrobbler" );
+        /* Last.FM is optional */
+        if( module_Exists( p_intf, "audioscrobbler" ) )
+        {            
+            if( [o_audio_last_ckb state] == NSOnState )
+                config_AddIntf( VLC_OBJECT( p_intf ), "audioscrobbler" );
+            else
+                config_RemoveIntf( VLC_OBJECT( p_intf ), "audioscrobbler" );
 
-        config_PutPsz( p_intf, "lastfm-username", [[o_audio_lastuser_fld stringValue] UTF8String] );
-        config_PutPsz( p_intf, "lastfm-password", [[o_audio_lastuser_fld stringValue] UTF8String] );
+            config_PutPsz( p_intf, "lastfm-username", [[o_audio_lastuser_fld stringValue] UTF8String] );
+            config_PutPsz( p_intf, "lastfm-password", [[o_audio_lastuser_fld stringValue] UTF8String] );
+        }
 
         /* okay, let's save our changes to vlcrc */
         i = config_SaveConfigFile( p_intf, "main" );
@@ -359,14 +405,47 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
         i = i + config_SaveConfigFile( p_intf, "volnorm" );
 
         if( i != 0 )
+        {
             msg_Err( p_intf, "An error occured while saving the Audio settings using SimplePrefs" );
+            i = 0;
+        }
         b_audioSettingChanged = NO;
     }
+    
+    /******************
+     * video settings *
+     ******************/
+    if( b_videoSettingChanged )
+    {
+        config_PutInt( p_intf, "video", [o_video_enable_ckb state] );
+        config_PutInt( p_intf, "fullscreen", [o_video_fullscreen_ckb state] );
+        config_PutInt( p_intf, "video-on-top", [o_video_onTop_ckb state] );
+        config_PutInt( p_intf, "skip-frames", [o_video_skipFrames_ckb state] );
+        config_PutInt( p_intf, "macosx-black", [o_video_black_ckb state] );
+
+        msg_Warn( p_intf, "vout module and display device selectors not implemented!" );
+
+        config_PutPsz( p_intf, "snapshot-path", [[o_video_snap_folder_fld stringValue] UTF8String] );
+        config_PutPsz( p_intf, "snapshot-prefix", [[o_video_snap_prefix_fld stringValue] UTF8String] );
+        config_PutInt( p_intf, "snapshot-sequential", [o_video_snap_seqnum_ckb state] );
+
+        if( [o_video_snap_format_pop indexOfSelectedItem] >= 0 )
+            config_PutPsz( p_intf, "snapshot-format", [[[o_video_snap_format_pop selectedItem] title] UTF8String] );
+
+        i = config_SaveConfigFile( p_intf, "main" );
+        i = i + config_SaveConfigFile( p_intf, "macosx" );
+        
+        if( i != 0 )
+        {
+            msg_Err( p_intf, "An error occured while saving the Video settings using SimplePrefs" );
+            i = 0;
+        }
+        b_videoSettingChanged = NO;
+    }
 }
 
 - (void)showSettingsForCategory: (id)o_new_category_view
 {
-    msg_Dbg( p_intf, "switching to another category" );
     NSRect o_win_rect, o_view_rect, o_old_view_rect;
     o_win_rect = [o_sprefs_win frame];
     o_view_rect = [o_new_category_view frame];
@@ -427,4 +506,42 @@ static VLCSimplePrefs *_o_sharedInstance = nil;
     msg_Dbg( p_intf, "showing audio settings" );
     [self showSettingsForCategory: o_audio_view];
 }
+
+- (IBAction)videoSettingChanged:(id)sender
+{
+    if( sender == o_video_snap_folder_btn )
+    {
+        o_selectFolderPanel = [[NSOpenPanel alloc] init];
+        [o_selectFolderPanel setCanChooseDirectories: YES];
+        [o_selectFolderPanel setCanChooseFiles: NO];
+        [o_selectFolderPanel setResolvesAliases: YES];
+        [o_selectFolderPanel setAllowsMultipleSelection: NO];
+        [o_selectFolderPanel setMessage: _NS("Choose the Folder to save your video snapshots to.")];
+        [o_selectFolderPanel setCanCreateDirectories: YES];
+        [o_selectFolderPanel setPrompt: _NS("Choose")];
+        [o_selectFolderPanel beginSheetForDirectory: nil file: nil modalForWindow: o_sprefs_win 
+                                      modalDelegate: self 
+                                     didEndSelector: @selector(savePanelDidEnd:returnCode:contextInfo:)
+                                        contextInfo: nil];
+    }
+    else
+        b_videoSettingChanged = YES;
+}
+
+- (void)savePanelDidEnd:(NSOpenPanel * )panel returnCode: (int)returnCode contextInfo: (void *)contextInfo
+{
+    if( returnCode == NSOKButton )
+    {
+        [o_video_snap_folder_fld setStringValue: [o_selectFolderPanel filename]];
+        b_videoSettingChanged = YES;
+    }
+
+    [o_selectFolderPanel release];
+}
+
+- (void)showVideoSettings
+{
+    msg_Dbg( p_intf, "showing video settings" );
+    [self showSettingsForCategory: o_video_view];
+}
 @end