]> git.sesse.net Git - vlc/commitdiff
macosx: implemented A->B Loop (close #5187)
authorFelix Paul Kühne <fkuehne@videolan.org>
Thu, 15 Nov 2012 19:17:28 +0000 (20:17 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Thu, 15 Nov 2012 19:17:28 +0000 (20:17 +0100)
extras/package/macosx/Resources/English.lproj/MainMenu.xib
modules/gui/macosx/CoreInteraction.h
modules/gui/macosx/CoreInteraction.m
modules/gui/macosx/MainMenu.h
modules/gui/macosx/MainMenu.m
modules/gui/macosx/intf.m

index 33f9ba746bb2b38b4f9cefbee8bf9b55ac448493..298deb590da8fae421e0970dd67fec244f178244 100644 (file)
     </object>
     <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
       <bool key="EncodedWithXMLCoder">YES</bool>
-      <integer value="4850"/>
-      <integer value="334"/>
-      <integer value="4756"/>
       <integer value="2730"/>
+      <integer value="5132"/>
+      <integer value="4756"/>
+      <integer value="4850"/>
     </object>
     <object class="NSArray" key="IBDocument.PluginDependencies">
       <bool key="EncodedWithXMLCoder">YES</bool>
                   <reference key="NSOnImage" ref="447396056"/>
                   <reference key="NSMixedImage" ref="100133332"/>
                 </object>
+                <object class="NSMenuItem" id="634067619">
+                  <reference key="NSMenu" ref="1056513052"/>
+                  <string key="NSTitle">A→B Loop</string>
+                  <string key="NSKeyEquiv">L</string>
+                  <int key="NSKeyEquivModMask">1048576</int>
+                  <int key="NSMnemonicLoc">2147483647</int>
+                  <reference key="NSOnImage" ref="447396056"/>
+                  <reference key="NSMixedImage" ref="100133332"/>
+                </object>
                 <object class="NSMenuItem" id="76083632">
                   <reference key="NSMenu" ref="1056513052"/>
                   <bool key="NSIsDisabled">YES</bool>
@@ -8016,6 +8025,22 @@ LCAuLi4</string>
           </object>
           <int key="connectionID">5408</int>
         </object>
+        <object class="IBConnectionRecord">
+          <object class="IBOutletConnection" key="connection">
+            <string key="label">o_mi_AtoBloop</string>
+            <reference key="source" ref="651263286"/>
+            <reference key="destination" ref="634067619"/>
+          </object>
+          <int key="connectionID">5410</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">toggleAtoBloop:</string>
+            <reference key="source" ref="651263286"/>
+            <reference key="destination" ref="634067619"/>
+          </object>
+          <int key="connectionID">5411</int>
+        </object>
       </object>
       <object class="IBMutableOrderedSet" key="objectRecords">
         <object class="NSArray" key="orderedObjects">
@@ -10597,6 +10622,7 @@ LCAuLi4</string>
               <reference ref="467297210"/>
               <reference ref="989908818"/>
               <reference ref="43809748"/>
+              <reference ref="634067619"/>
             </object>
             <reference key="parent" ref="565445175"/>
           </object>
@@ -11113,6 +11139,11 @@ LCAuLi4</string>
             <reference key="object" ref="878580547"/>
             <reference key="parent" ref="0"/>
           </object>
+          <object class="IBObjectRecord">
+            <int key="objectID">5409</int>
+            <reference key="object" ref="634067619"/>
+            <reference key="parent" ref="1056513052"/>
+          </object>
         </object>
       </object>
       <object class="NSMutableDictionary" key="flattenedProperties">
@@ -11927,6 +11958,7 @@ LCAuLi4</string>
           <string>5335.IBPluginDependency</string>
           <string>5335.IBViewBoundsToFrameTransform</string>
           <string>5339.IBPluginDependency</string>
+          <string>5409.IBPluginDependency</string>
           <string>56.IBPluginDependency</string>
           <string>56.ImportedFromIB2</string>
           <string>57.IBEditorWindowLastContentRect</string>
@@ -11988,7 +12020,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{771, 542}, {197, 173}}</string>
+          <string>{{743, 801}, {197, 173}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12013,7 +12045,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{957, 552}, {251, 163}}</string>
+          <string>{{929, 811}, {251, 163}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12122,7 +12154,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{600, 612}, {137, 103}}</string>
+          <string>{{572, 871}, {137, 103}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>{{528, 635}, {604, 310}}</string>
@@ -12178,7 +12210,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{886, 432}, {243, 283}}</string>
+          <string>{{858, 691}, {243, 283}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12730,7 +12762,7 @@ LCAuLi4</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{644, 352}, {222, 363}}</string>
+          <string>{{666, 591}, {222, 383}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12785,7 +12817,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-          <string>{{594, 642}, {260, 73}}</string>
+          <string>{{616, 901}, {260, 73}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12898,6 +12930,7 @@ LCAuLi4</string>
           </object>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+          <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>{{329, 186}, {267, 263}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12910,7 +12943,7 @@ LCAuLi4</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
-          <string>{{558, 472}, {297, 243}}</string>
+          <string>{{530, 731}, {297, 243}}</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12954,7 +12987,7 @@ LCAuLi4</string>
         </object>
       </object>
       <nil key="sourceID"/>
-      <int key="maxID">5408</int>
+      <int key="maxID">5411</int>
     </object>
     <object class="IBClassDescriber" key="IBDocument.Classes">
       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -16002,6 +16035,1320 @@ LCAuLi4</string>
           <reference key="sourceIdentifier" ref="925772039"/>
         </object>
       </object>
+      <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
+        <bool key="EncodedWithXMLCoder">YES</bool>
+        <object class="IBPartialClassDescription">
+          <string key="className">VLCMainMenu</string>
+          <string key="superclassName">NSObject</string>
+          <object class="NSMutableDictionary" key="actions">
+            <bool key="EncodedWithXMLCoder">YES</bool>
+            <object class="NSArray" key="dict.sortedKeys">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>createVideoSnapshot:</string>
+              <string>floatOnTop:</string>
+              <string>intfOpenCapture:</string>
+              <string>intfOpenDisc:</string>
+              <string>intfOpenFile:</string>
+              <string>intfOpenFileGeneric:</string>
+              <string>intfOpenNet:</string>
+              <string>openDocumentation:</string>
+              <string>openDonate:</string>
+              <string>openForum:</string>
+              <string>openReadMe:</string>
+              <string>openWebsite:</string>
+              <string>resizeVideoWindow:</string>
+              <string>setPlaybackRate:</string>
+              <string>showAudioEffects:</string>
+              <string>showBookmarks:</string>
+              <string>showConvertAndSave:</string>
+              <string>showInformationPanel:</string>
+              <string>showLicense:</string>
+              <string>showTrackSynchronization:</string>
+              <string>showVideoEffects:</string>
+              <string>showWizard:</string>
+              <string>toggleAtoBloop:</string>
+              <string>toggleFullscreen:</string>
+              <string>toggleFullscreenDevice:</string>
+              <string>toggleJumpButtons:</string>
+              <string>togglePlaylistColumnTable:</string>
+              <string>togglePlaymodeButtons:</string>
+              <string>toggleRecord:</string>
+              <string>toggleVar:</string>
+              <string>viewAbout:</string>
+              <string>viewErrorsAndWarnings:</string>
+              <string>viewHelp:</string>
+              <string>viewPreferences:</string>
+            </object>
+            <object class="NSMutableArray" key="dict.values">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+            </object>
+          </object>
+          <object class="NSMutableDictionary" key="actionInfosByName">
+            <bool key="EncodedWithXMLCoder">YES</bool>
+            <object class="NSArray" key="dict.sortedKeys">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>createVideoSnapshot:</string>
+              <string>floatOnTop:</string>
+              <string>intfOpenCapture:</string>
+              <string>intfOpenDisc:</string>
+              <string>intfOpenFile:</string>
+              <string>intfOpenFileGeneric:</string>
+              <string>intfOpenNet:</string>
+              <string>openDocumentation:</string>
+              <string>openDonate:</string>
+              <string>openForum:</string>
+              <string>openReadMe:</string>
+              <string>openWebsite:</string>
+              <string>resizeVideoWindow:</string>
+              <string>setPlaybackRate:</string>
+              <string>showAudioEffects:</string>
+              <string>showBookmarks:</string>
+              <string>showConvertAndSave:</string>
+              <string>showInformationPanel:</string>
+              <string>showLicense:</string>
+              <string>showTrackSynchronization:</string>
+              <string>showVideoEffects:</string>
+              <string>showWizard:</string>
+              <string>toggleAtoBloop:</string>
+              <string>toggleFullscreen:</string>
+              <string>toggleFullscreenDevice:</string>
+              <string>toggleJumpButtons:</string>
+              <string>togglePlaylistColumnTable:</string>
+              <string>togglePlaymodeButtons:</string>
+              <string>toggleRecord:</string>
+              <string>toggleVar:</string>
+              <string>viewAbout:</string>
+              <string>viewErrorsAndWarnings:</string>
+              <string>viewHelp:</string>
+              <string>viewPreferences:</string>
+            </object>
+            <object class="NSMutableArray" key="dict.values">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <object class="IBActionInfo">
+                <string key="name">createVideoSnapshot:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">floatOnTop:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">intfOpenCapture:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">intfOpenDisc:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">intfOpenFile:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">intfOpenFileGeneric:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">intfOpenNet:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">openDocumentation:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">openDonate:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">openForum:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">openReadMe:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">openWebsite:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">resizeVideoWindow:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">setPlaybackRate:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showAudioEffects:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showBookmarks:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showConvertAndSave:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showInformationPanel:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showLicense:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showTrackSynchronization:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showVideoEffects:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">showWizard:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleAtoBloop:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleFullscreen:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleFullscreenDevice:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleJumpButtons:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">togglePlaylistColumnTable:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">togglePlaymodeButtons:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleRecord:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleVar:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">viewAbout:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">viewErrorsAndWarnings:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">viewHelp:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">viewPreferences:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+            </object>
+          </object>
+          <object class="NSMutableDictionary" key="outlets">
+            <bool key="EncodedWithXMLCoder">YES</bool>
+            <object class="NSArray" key="dict.sortedKeys">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>o_about</string>
+              <string>o_audioeffects</string>
+              <string>o_bookmarks</string>
+              <string>o_convertandsave</string>
+              <string>o_dmi_mute</string>
+              <string>o_dmi_next</string>
+              <string>o_dmi_play</string>
+              <string>o_dmi_previous</string>
+              <string>o_dmi_stop</string>
+              <string>o_extMgr</string>
+              <string>o_mi_AtoBloop</string>
+              <string>o_mi_about</string>
+              <string>o_mi_addSub</string>
+              <string>o_mi_add_intf</string>
+              <string>o_mi_aspect_ratio</string>
+              <string>o_mi_audioeffects</string>
+              <string>o_mi_audiotrack</string>
+              <string>o_mi_bookmarks</string>
+              <string>o_mi_bring_atf</string>
+              <string>o_mi_bwd</string>
+              <string>o_mi_channels</string>
+              <string>o_mi_chapter</string>
+              <string>o_mi_checkForUpdate</string>
+              <string>o_mi_clear</string>
+              <string>o_mi_close_window</string>
+              <string>o_mi_controller</string>
+              <string>o_mi_convertandsave</string>
+              <string>o_mi_copy</string>
+              <string>o_mi_crop</string>
+              <string>o_mi_cut</string>
+              <string>o_mi_deinterlace</string>
+              <string>o_mi_deinterlace_mode</string>
+              <string>o_mi_device</string>
+              <string>o_mi_documentation</string>
+              <string>o_mi_donation</string>
+              <string>o_mi_double_window</string>
+              <string>o_mi_errorsAndWarnings</string>
+              <string>o_mi_extensions</string>
+              <string>o_mi_ffmpeg_pp</string>
+              <string>o_mi_fittoscreen</string>
+              <string>o_mi_floatontop</string>
+              <string>o_mi_forum</string>
+              <string>o_mi_fullscreen</string>
+              <string>o_mi_fwd</string>
+              <string>o_mi_half_window</string>
+              <string>o_mi_help</string>
+              <string>o_mi_hide</string>
+              <string>o_mi_hide_others</string>
+              <string>o_mi_info</string>
+              <string>o_mi_license</string>
+              <string>o_mi_loop</string>
+              <string>o_mi_messages</string>
+              <string>o_mi_minimize</string>
+              <string>o_mi_mute</string>
+              <string>o_mi_next</string>
+              <string>o_mi_normal_window</string>
+              <string>o_mi_open_capture</string>
+              <string>o_mi_open_disc</string>
+              <string>o_mi_open_file</string>
+              <string>o_mi_open_generic</string>
+              <string>o_mi_open_net</string>
+              <string>o_mi_open_recent</string>
+              <string>o_mi_open_wizard</string>
+              <string>o_mi_paste</string>
+              <string>o_mi_play</string>
+              <string>o_mi_player</string>
+              <string>o_mi_playlist</string>
+              <string>o_mi_prefs</string>
+              <string>o_mi_previous</string>
+              <string>o_mi_program</string>
+              <string>o_mi_quit</string>
+              <string>o_mi_quitAfterPB</string>
+              <string>o_mi_random</string>
+              <string>o_mi_rate</string>
+              <string>o_mi_rate_faster_lbl</string>
+              <string>o_mi_rate_fld</string>
+              <string>o_mi_rate_lbl</string>
+              <string>o_mi_rate_lbl_gray</string>
+              <string>o_mi_rate_normal_lbl</string>
+              <string>o_mi_rate_sld</string>
+              <string>o_mi_rate_slower_lbl</string>
+              <string>o_mi_rate_view</string>
+              <string>o_mi_readme</string>
+              <string>o_mi_record</string>
+              <string>o_mi_repeat</string>
+              <string>o_mi_screen</string>
+              <string>o_mi_select_all</string>
+              <string>o_mi_services</string>
+              <string>o_mi_show_all</string>
+              <string>o_mi_snapshot</string>
+              <string>o_mi_stop</string>
+              <string>o_mi_subtitle</string>
+              <string>o_mi_teletext</string>
+              <string>o_mi_teletext_blue</string>
+              <string>o_mi_teletext_green</string>
+              <string>o_mi_teletext_index</string>
+              <string>o_mi_teletext_red</string>
+              <string>o_mi_teletext_transparent</string>
+              <string>o_mi_teletext_yellow</string>
+              <string>o_mi_title</string>
+              <string>o_mi_toggleJumpButtons</string>
+              <string>o_mi_togglePlaymodeButtons</string>
+              <string>o_mi_trackSynchronization</string>
+              <string>o_mi_videoeffects</string>
+              <string>o_mi_videotrack</string>
+              <string>o_mi_visual</string>
+              <string>o_mi_vol_down</string>
+              <string>o_mi_vol_up</string>
+              <string>o_mi_website</string>
+              <string>o_mu_add_intf</string>
+              <string>o_mu_aspect_ratio</string>
+              <string>o_mu_audio</string>
+              <string>o_mu_audiotrack</string>
+              <string>o_mu_channels</string>
+              <string>o_mu_chapter</string>
+              <string>o_mu_controls</string>
+              <string>o_mu_crop</string>
+              <string>o_mu_deinterlace</string>
+              <string>o_mu_deinterlace_mode</string>
+              <string>o_mu_device</string>
+              <string>o_mu_edit</string>
+              <string>o_mu_extensions</string>
+              <string>o_mu_ffmpeg_pp</string>
+              <string>o_mu_file</string>
+              <string>o_mu_help</string>
+              <string>o_mu_playlistTableColumns</string>
+              <string>o_mu_program</string>
+              <string>o_mu_screen</string>
+              <string>o_mu_subtitle</string>
+              <string>o_mu_title</string>
+              <string>o_mu_video</string>
+              <string>o_mu_videotrack</string>
+              <string>o_mu_view</string>
+              <string>o_mu_visual</string>
+              <string>o_mu_window</string>
+              <string>o_trackSynchronization</string>
+              <string>o_videoeffects</string>
+              <string>o_vmi_fullscreen</string>
+              <string>o_vmi_mute</string>
+              <string>o_vmi_next</string>
+              <string>o_vmi_play</string>
+              <string>o_vmi_prev</string>
+              <string>o_vmi_snapshot</string>
+              <string>o_vmi_stop</string>
+              <string>o_vmi_voldown</string>
+              <string>o_vmi_volup</string>
+              <string>o_vout_menu</string>
+            </object>
+            <object class="NSMutableArray" key="dict.values">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>id</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>NSView</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>NSMenu</string>
+              <string>id</string>
+              <string>id</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenuItem</string>
+              <string>NSMenu</string>
+            </object>
+          </object>
+          <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+            <bool key="EncodedWithXMLCoder">YES</bool>
+            <object class="NSArray" key="dict.sortedKeys">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>o_about</string>
+              <string>o_audioeffects</string>
+              <string>o_bookmarks</string>
+              <string>o_convertandsave</string>
+              <string>o_dmi_mute</string>
+              <string>o_dmi_next</string>
+              <string>o_dmi_play</string>
+              <string>o_dmi_previous</string>
+              <string>o_dmi_stop</string>
+              <string>o_extMgr</string>
+              <string>o_mi_AtoBloop</string>
+              <string>o_mi_about</string>
+              <string>o_mi_addSub</string>
+              <string>o_mi_add_intf</string>
+              <string>o_mi_aspect_ratio</string>
+              <string>o_mi_audioeffects</string>
+              <string>o_mi_audiotrack</string>
+              <string>o_mi_bookmarks</string>
+              <string>o_mi_bring_atf</string>
+              <string>o_mi_bwd</string>
+              <string>o_mi_channels</string>
+              <string>o_mi_chapter</string>
+              <string>o_mi_checkForUpdate</string>
+              <string>o_mi_clear</string>
+              <string>o_mi_close_window</string>
+              <string>o_mi_controller</string>
+              <string>o_mi_convertandsave</string>
+              <string>o_mi_copy</string>
+              <string>o_mi_crop</string>
+              <string>o_mi_cut</string>
+              <string>o_mi_deinterlace</string>
+              <string>o_mi_deinterlace_mode</string>
+              <string>o_mi_device</string>
+              <string>o_mi_documentation</string>
+              <string>o_mi_donation</string>
+              <string>o_mi_double_window</string>
+              <string>o_mi_errorsAndWarnings</string>
+              <string>o_mi_extensions</string>
+              <string>o_mi_ffmpeg_pp</string>
+              <string>o_mi_fittoscreen</string>
+              <string>o_mi_floatontop</string>
+              <string>o_mi_forum</string>
+              <string>o_mi_fullscreen</string>
+              <string>o_mi_fwd</string>
+              <string>o_mi_half_window</string>
+              <string>o_mi_help</string>
+              <string>o_mi_hide</string>
+              <string>o_mi_hide_others</string>
+              <string>o_mi_info</string>
+              <string>o_mi_license</string>
+              <string>o_mi_loop</string>
+              <string>o_mi_messages</string>
+              <string>o_mi_minimize</string>
+              <string>o_mi_mute</string>
+              <string>o_mi_next</string>
+              <string>o_mi_normal_window</string>
+              <string>o_mi_open_capture</string>
+              <string>o_mi_open_disc</string>
+              <string>o_mi_open_file</string>
+              <string>o_mi_open_generic</string>
+              <string>o_mi_open_net</string>
+              <string>o_mi_open_recent</string>
+              <string>o_mi_open_wizard</string>
+              <string>o_mi_paste</string>
+              <string>o_mi_play</string>
+              <string>o_mi_player</string>
+              <string>o_mi_playlist</string>
+              <string>o_mi_prefs</string>
+              <string>o_mi_previous</string>
+              <string>o_mi_program</string>
+              <string>o_mi_quit</string>
+              <string>o_mi_quitAfterPB</string>
+              <string>o_mi_random</string>
+              <string>o_mi_rate</string>
+              <string>o_mi_rate_faster_lbl</string>
+              <string>o_mi_rate_fld</string>
+              <string>o_mi_rate_lbl</string>
+              <string>o_mi_rate_lbl_gray</string>
+              <string>o_mi_rate_normal_lbl</string>
+              <string>o_mi_rate_sld</string>
+              <string>o_mi_rate_slower_lbl</string>
+              <string>o_mi_rate_view</string>
+              <string>o_mi_readme</string>
+              <string>o_mi_record</string>
+              <string>o_mi_repeat</string>
+              <string>o_mi_screen</string>
+              <string>o_mi_select_all</string>
+              <string>o_mi_services</string>
+              <string>o_mi_show_all</string>
+              <string>o_mi_snapshot</string>
+              <string>o_mi_stop</string>
+              <string>o_mi_subtitle</string>
+              <string>o_mi_teletext</string>
+              <string>o_mi_teletext_blue</string>
+              <string>o_mi_teletext_green</string>
+              <string>o_mi_teletext_index</string>
+              <string>o_mi_teletext_red</string>
+              <string>o_mi_teletext_transparent</string>
+              <string>o_mi_teletext_yellow</string>
+              <string>o_mi_title</string>
+              <string>o_mi_toggleJumpButtons</string>
+              <string>o_mi_togglePlaymodeButtons</string>
+              <string>o_mi_trackSynchronization</string>
+              <string>o_mi_videoeffects</string>
+              <string>o_mi_videotrack</string>
+              <string>o_mi_visual</string>
+              <string>o_mi_vol_down</string>
+              <string>o_mi_vol_up</string>
+              <string>o_mi_website</string>
+              <string>o_mu_add_intf</string>
+              <string>o_mu_aspect_ratio</string>
+              <string>o_mu_audio</string>
+              <string>o_mu_audiotrack</string>
+              <string>o_mu_channels</string>
+              <string>o_mu_chapter</string>
+              <string>o_mu_controls</string>
+              <string>o_mu_crop</string>
+              <string>o_mu_deinterlace</string>
+              <string>o_mu_deinterlace_mode</string>
+              <string>o_mu_device</string>
+              <string>o_mu_edit</string>
+              <string>o_mu_extensions</string>
+              <string>o_mu_ffmpeg_pp</string>
+              <string>o_mu_file</string>
+              <string>o_mu_help</string>
+              <string>o_mu_playlistTableColumns</string>
+              <string>o_mu_program</string>
+              <string>o_mu_screen</string>
+              <string>o_mu_subtitle</string>
+              <string>o_mu_title</string>
+              <string>o_mu_video</string>
+              <string>o_mu_videotrack</string>
+              <string>o_mu_view</string>
+              <string>o_mu_visual</string>
+              <string>o_mu_window</string>
+              <string>o_trackSynchronization</string>
+              <string>o_videoeffects</string>
+              <string>o_vmi_fullscreen</string>
+              <string>o_vmi_mute</string>
+              <string>o_vmi_next</string>
+              <string>o_vmi_play</string>
+              <string>o_vmi_prev</string>
+              <string>o_vmi_snapshot</string>
+              <string>o_vmi_stop</string>
+              <string>o_vmi_voldown</string>
+              <string>o_vmi_volup</string>
+              <string>o_vout_menu</string>
+            </object>
+            <object class="NSMutableArray" key="dict.values">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_about</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_audioeffects</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_bookmarks</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_convertandsave</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_dmi_mute</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_dmi_next</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_dmi_play</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_dmi_previous</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_dmi_stop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_extMgr</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_AtoBloop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_about</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_addSub</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_add_intf</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_aspect_ratio</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_audioeffects</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_audiotrack</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_bookmarks</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_bring_atf</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_bwd</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_channels</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_chapter</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_checkForUpdate</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_clear</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_close_window</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_controller</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_convertandsave</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_copy</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_crop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_cut</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_deinterlace</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_deinterlace_mode</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_device</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_documentation</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_donation</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_double_window</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_errorsAndWarnings</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_extensions</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_ffmpeg_pp</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_fittoscreen</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_floatontop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_forum</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_fullscreen</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_fwd</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_half_window</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_help</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_hide</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_hide_others</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_info</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_license</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_loop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_messages</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_minimize</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_mute</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_next</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_normal_window</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_capture</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_disc</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_file</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_generic</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_net</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_recent</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_open_wizard</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_paste</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_play</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_player</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_playlist</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_prefs</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_previous</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_program</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_quit</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_quitAfterPB</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_random</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_faster_lbl</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_fld</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_lbl</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_lbl_gray</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_normal_lbl</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_sld</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_slower_lbl</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_rate_view</string>
+                <string key="candidateClassName">NSView</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_readme</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_record</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_repeat</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_screen</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_select_all</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_services</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_show_all</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_snapshot</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_stop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_subtitle</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_blue</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_green</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_index</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_red</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_transparent</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_teletext_yellow</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_title</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_toggleJumpButtons</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_togglePlaymodeButtons</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_trackSynchronization</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_videoeffects</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_videotrack</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_visual</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_vol_down</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_vol_up</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mi_website</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_add_intf</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_aspect_ratio</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_audio</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_audiotrack</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_channels</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_chapter</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_controls</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_crop</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_deinterlace</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_deinterlace_mode</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_device</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_edit</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_extensions</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_ffmpeg_pp</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_file</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_help</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_playlistTableColumns</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_program</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_screen</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_subtitle</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_title</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_video</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_videotrack</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_view</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_visual</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_mu_window</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_trackSynchronization</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_videoeffects</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_fullscreen</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_mute</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_next</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_play</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_prev</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_snapshot</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_stop</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_voldown</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vmi_volup</string>
+                <string key="candidateClassName">NSMenuItem</string>
+              </object>
+              <object class="IBToOneOutletInfo">
+                <string key="name">o_vout_menu</string>
+                <string key="candidateClassName">NSMenu</string>
+              </object>
+            </object>
+          </object>
+          <object class="IBClassDescriptionSource" key="sourceIdentifier">
+            <string key="majorKey">IBDocumentRelativeSource</string>
+            <string key="minorKey">../../../../../modules/gui/macosx/MainMenu.h</string>
+          </object>
+        </object>
+      </object>
       <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
         <bool key="EncodedWithXMLCoder">YES</bool>
         <object class="IBPartialClassDescription">
index 066a109c204db19304991f7da2cf78b16040e986..f992d1ad48b28a96165d2aa14b7f067a4046c323 100644 (file)
@@ -27,6 +27,7 @@
 
 @interface VLCCoreInteraction : NSObject {
     int i_currentPlaybackRate;
+    mtime_t timeA, timeB;
 }
 + (VLCCoreInteraction *)sharedInstance;
 @property (readwrite) int volume;
@@ -61,6 +62,8 @@
 - (void)repeatAll;
 - (void)repeatOff;
 - (void)shuffle;
+- (void)setAtoB;
+- (void)updateAtoB;
 
 - (void)volumeUp;
 - (void)volumeDown;
index 334e076aa76c4cf609ea2fb00cd2d5b0f56f0d0e..d0e4e2adb0fe469142aafc98d2f2099be956e551 100644 (file)
@@ -417,6 +417,39 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
     }
 }
 
+- (void)setAtoB
+{
+    if (!timeA) {
+        input_thread_t * p_input = pl_CurrentInput(VLCIntf);
+        if (p_input) {
+            timeA = var_GetTime(p_input, "time");
+            vlc_object_release(p_input);
+        }
+    } else if (!timeB) {
+        input_thread_t * p_input = pl_CurrentInput(VLCIntf);
+        if (p_input) {
+            timeB = var_GetTime(p_input, "time");
+            vlc_object_release(p_input);
+        }
+    } else {
+        timeA = 0;
+        timeB = 0;
+    }
+}
+
+- (void)updateAtoB
+{
+    if (timeB) {
+        input_thread_t * p_input = pl_CurrentInput(VLCIntf);
+        if (p_input) {
+            mtime_t currentTime = var_GetTime(p_input, "time");
+            if ( currentTime >= timeB || currentTime < timeA)
+                var_SetTime(p_input, "time", timeA);
+            vlc_object_release(p_input);
+        }
+    }
+}
+
 - (void)volumeUp
 {
     intf_thread_t *p_intf = VLCIntf;
index eb295af8c3703bd3192e609b5771f6eb99497c92..ace9c0fd3ef8410e81c4e8edad84e2a978b1edc8 100644 (file)
     IBOutlet NSMenuItem * o_mi_random;
     IBOutlet NSMenuItem * o_mi_repeat;
     IBOutlet NSMenuItem * o_mi_loop;
+    IBOutlet NSMenuItem * o_mi_AtoBloop;
     IBOutlet NSMenuItem * o_mi_quitAfterPB;
     IBOutlet NSMenuItem * o_mi_fwd;
     IBOutlet NSMenuItem * o_mi_bwd;
 - (void)updateRecordState:(BOOL)b_value;
 - (IBAction)setPlaybackRate:(id)sender;
 - (void)updatePlaybackRate;
+- (IBAction)toggleAtoBloop:(id)sender;
 
 - (IBAction)toggleFullscreen:(id)sender;
 - (IBAction)resizeVideoWindow:(id)sender;
index 6619e7d594e7291e87e81b971e56e4fb27d34a05..df3a74fe910f4c027cb2f3b737ccac999348d672 100644 (file)
@@ -320,6 +320,7 @@ static VLCMainMenu *_o_sharedInstance = nil;
     [o_mi_random setTitle: _NS("Random")];
     [o_mi_repeat setTitle: _NS("Repeat One")];
     [o_mi_loop setTitle: _NS("Repeat All")];
+    [o_mi_AtoBloop setTitle: _NS("A→B Loop")];
     [o_mi_quitAfterPB setTitle: _NS("Quit after Playback")];
     [o_mi_fwd setTitle: _NS("Step Forward")];
     [o_mi_bwd setTitle: _NS("Step Backward")];
@@ -693,6 +694,11 @@ static VLCMainMenu *_o_sharedInstance = nil;
     [o_mi_rate_sld setIntValue: i];
 }
 
+- (IBAction)toggleAtoBloop:(id)sender
+{
+    [[VLCCoreInteraction sharedInstance] setAtoB];
+}
+
 #pragma mark -
 #pragma mark video menu
 
index 898b1231175762be024c249358ee1586327e66d8..f80968647728c1e50fb2e358d90b4dc69c904ce9 100644 (file)
@@ -1328,6 +1328,7 @@ static VLCMain *_o_sharedMainInstance = nil;
 - (void)updatePlaybackPosition
 {
     [o_mainwindow updateTimeSlider];
+    [[VLCCoreInteraction sharedInstance] updateAtoB];
 }
 
 - (void)updateVolume