From 6ebb7049406173aef40bfe33e07674c6fef19208 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20Ku=CC=88hne?= Date: Thu, 15 Nov 2012 20:17:28 +0100 Subject: [PATCH] macosx: implemented A->B Loop (close #5187) --- .../Resources/English.lproj/MainMenu.xib | 1369 ++++++++++++++++- modules/gui/macosx/CoreInteraction.h | 3 + modules/gui/macosx/CoreInteraction.m | 33 + modules/gui/macosx/MainMenu.h | 2 + modules/gui/macosx/MainMenu.m | 6 + modules/gui/macosx/intf.m | 1 + 6 files changed, 1403 insertions(+), 11 deletions(-) diff --git a/extras/package/macosx/Resources/English.lproj/MainMenu.xib b/extras/package/macosx/Resources/English.lproj/MainMenu.xib index 33f9ba746b..298deb590d 100644 --- a/extras/package/macosx/Resources/English.lproj/MainMenu.xib +++ b/extras/package/macosx/Resources/English.lproj/MainMenu.xib @@ -21,10 +21,10 @@ YES - - - + + + YES @@ -1836,6 +1836,15 @@ + + + A→B Loop + L + 1048576 + 2147483647 + + + YES @@ -8016,6 +8025,22 @@ LCAuLi4 5408 + + + o_mi_AtoBloop + + + + 5410 + + + + toggleAtoBloop: + + + + 5411 + @@ -10597,6 +10622,7 @@ LCAuLi4 + @@ -11113,6 +11139,11 @@ LCAuLi4 + + 5409 + + + @@ -11927,6 +11958,7 @@ LCAuLi4 5335.IBPluginDependency 5335.IBViewBoundsToFrameTransform 5339.IBPluginDependency + 5409.IBPluginDependency 56.IBPluginDependency 56.ImportedFromIB2 57.IBEditorWindowLastContentRect @@ -11988,7 +12020,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - {{771, 542}, {197, 173}} + {{743, 801}, {197, 173}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12013,7 +12045,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - {{957, 552}, {251, 163}} + {{929, 811}, {251, 163}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12122,7 +12154,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - {{600, 612}, {137, 103}} + {{572, 871}, {137, 103}} com.apple.InterfaceBuilder.CocoaPlugin {{528, 635}, {604, 310}} @@ -12178,7 +12210,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - {{886, 432}, {243, 283}} + {{858, 691}, {243, 283}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12730,7 +12762,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{644, 352}, {222, 363}} + {{666, 591}, {222, 383}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12785,7 +12817,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{594, 642}, {260, 73}} + {{616, 901}, {260, 73}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12898,6 +12930,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin {{329, 186}, {267, 263}} com.apple.InterfaceBuilder.CocoaPlugin @@ -12910,7 +12943,7 @@ LCAuLi4 com.apple.InterfaceBuilder.CocoaPlugin - {{558, 472}, {297, 243}} + {{530, 731}, {297, 243}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -12954,7 +12987,7 @@ LCAuLi4 - 5408 + 5411 @@ -16002,6 +16035,1320 @@ LCAuLi4 + + YES + + VLCMainMenu + NSObject + + YES + + YES + createVideoSnapshot: + floatOnTop: + intfOpenCapture: + intfOpenDisc: + intfOpenFile: + intfOpenFileGeneric: + intfOpenNet: + openDocumentation: + openDonate: + openForum: + openReadMe: + openWebsite: + resizeVideoWindow: + setPlaybackRate: + showAudioEffects: + showBookmarks: + showConvertAndSave: + showInformationPanel: + showLicense: + showTrackSynchronization: + showVideoEffects: + showWizard: + toggleAtoBloop: + toggleFullscreen: + toggleFullscreenDevice: + toggleJumpButtons: + togglePlaylistColumnTable: + togglePlaymodeButtons: + toggleRecord: + toggleVar: + viewAbout: + viewErrorsAndWarnings: + viewHelp: + viewPreferences: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + createVideoSnapshot: + floatOnTop: + intfOpenCapture: + intfOpenDisc: + intfOpenFile: + intfOpenFileGeneric: + intfOpenNet: + openDocumentation: + openDonate: + openForum: + openReadMe: + openWebsite: + resizeVideoWindow: + setPlaybackRate: + showAudioEffects: + showBookmarks: + showConvertAndSave: + showInformationPanel: + showLicense: + showTrackSynchronization: + showVideoEffects: + showWizard: + toggleAtoBloop: + toggleFullscreen: + toggleFullscreenDevice: + toggleJumpButtons: + togglePlaylistColumnTable: + togglePlaymodeButtons: + toggleRecord: + toggleVar: + viewAbout: + viewErrorsAndWarnings: + viewHelp: + viewPreferences: + + + YES + + createVideoSnapshot: + id + + + floatOnTop: + id + + + intfOpenCapture: + id + + + intfOpenDisc: + id + + + intfOpenFile: + id + + + intfOpenFileGeneric: + id + + + intfOpenNet: + id + + + openDocumentation: + id + + + openDonate: + id + + + openForum: + id + + + openReadMe: + id + + + openWebsite: + id + + + resizeVideoWindow: + id + + + setPlaybackRate: + id + + + showAudioEffects: + id + + + showBookmarks: + id + + + showConvertAndSave: + id + + + showInformationPanel: + id + + + showLicense: + id + + + showTrackSynchronization: + id + + + showVideoEffects: + id + + + showWizard: + id + + + toggleAtoBloop: + id + + + toggleFullscreen: + id + + + toggleFullscreenDevice: + id + + + toggleJumpButtons: + id + + + togglePlaylistColumnTable: + id + + + togglePlaymodeButtons: + id + + + toggleRecord: + id + + + toggleVar: + id + + + viewAbout: + id + + + viewErrorsAndWarnings: + id + + + viewHelp: + id + + + viewPreferences: + id + + + + + YES + + YES + o_about + o_audioeffects + o_bookmarks + o_convertandsave + o_dmi_mute + o_dmi_next + o_dmi_play + o_dmi_previous + o_dmi_stop + o_extMgr + o_mi_AtoBloop + o_mi_about + o_mi_addSub + o_mi_add_intf + o_mi_aspect_ratio + o_mi_audioeffects + o_mi_audiotrack + o_mi_bookmarks + o_mi_bring_atf + o_mi_bwd + o_mi_channels + o_mi_chapter + o_mi_checkForUpdate + o_mi_clear + o_mi_close_window + o_mi_controller + o_mi_convertandsave + o_mi_copy + o_mi_crop + o_mi_cut + o_mi_deinterlace + o_mi_deinterlace_mode + o_mi_device + o_mi_documentation + o_mi_donation + o_mi_double_window + o_mi_errorsAndWarnings + o_mi_extensions + o_mi_ffmpeg_pp + o_mi_fittoscreen + o_mi_floatontop + o_mi_forum + o_mi_fullscreen + o_mi_fwd + o_mi_half_window + o_mi_help + o_mi_hide + o_mi_hide_others + o_mi_info + o_mi_license + o_mi_loop + o_mi_messages + o_mi_minimize + o_mi_mute + o_mi_next + o_mi_normal_window + o_mi_open_capture + o_mi_open_disc + o_mi_open_file + o_mi_open_generic + o_mi_open_net + o_mi_open_recent + o_mi_open_wizard + o_mi_paste + o_mi_play + o_mi_player + o_mi_playlist + o_mi_prefs + o_mi_previous + o_mi_program + o_mi_quit + o_mi_quitAfterPB + o_mi_random + o_mi_rate + o_mi_rate_faster_lbl + o_mi_rate_fld + o_mi_rate_lbl + o_mi_rate_lbl_gray + o_mi_rate_normal_lbl + o_mi_rate_sld + o_mi_rate_slower_lbl + o_mi_rate_view + o_mi_readme + o_mi_record + o_mi_repeat + o_mi_screen + o_mi_select_all + o_mi_services + o_mi_show_all + o_mi_snapshot + o_mi_stop + o_mi_subtitle + o_mi_teletext + o_mi_teletext_blue + o_mi_teletext_green + o_mi_teletext_index + o_mi_teletext_red + o_mi_teletext_transparent + o_mi_teletext_yellow + o_mi_title + o_mi_toggleJumpButtons + o_mi_togglePlaymodeButtons + o_mi_trackSynchronization + o_mi_videoeffects + o_mi_videotrack + o_mi_visual + o_mi_vol_down + o_mi_vol_up + o_mi_website + o_mu_add_intf + o_mu_aspect_ratio + o_mu_audio + o_mu_audiotrack + o_mu_channels + o_mu_chapter + o_mu_controls + o_mu_crop + o_mu_deinterlace + o_mu_deinterlace_mode + o_mu_device + o_mu_edit + o_mu_extensions + o_mu_ffmpeg_pp + o_mu_file + o_mu_help + o_mu_playlistTableColumns + o_mu_program + o_mu_screen + o_mu_subtitle + o_mu_title + o_mu_video + o_mu_videotrack + o_mu_view + o_mu_visual + o_mu_window + o_trackSynchronization + o_videoeffects + o_vmi_fullscreen + o_vmi_mute + o_vmi_next + o_vmi_play + o_vmi_prev + o_vmi_snapshot + o_vmi_stop + o_vmi_voldown + o_vmi_volup + o_vout_menu + + + YES + id + id + id + id + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + id + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + id + id + id + id + id + id + id + NSView + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + NSMenu + id + id + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenu + + + + YES + + YES + o_about + o_audioeffects + o_bookmarks + o_convertandsave + o_dmi_mute + o_dmi_next + o_dmi_play + o_dmi_previous + o_dmi_stop + o_extMgr + o_mi_AtoBloop + o_mi_about + o_mi_addSub + o_mi_add_intf + o_mi_aspect_ratio + o_mi_audioeffects + o_mi_audiotrack + o_mi_bookmarks + o_mi_bring_atf + o_mi_bwd + o_mi_channels + o_mi_chapter + o_mi_checkForUpdate + o_mi_clear + o_mi_close_window + o_mi_controller + o_mi_convertandsave + o_mi_copy + o_mi_crop + o_mi_cut + o_mi_deinterlace + o_mi_deinterlace_mode + o_mi_device + o_mi_documentation + o_mi_donation + o_mi_double_window + o_mi_errorsAndWarnings + o_mi_extensions + o_mi_ffmpeg_pp + o_mi_fittoscreen + o_mi_floatontop + o_mi_forum + o_mi_fullscreen + o_mi_fwd + o_mi_half_window + o_mi_help + o_mi_hide + o_mi_hide_others + o_mi_info + o_mi_license + o_mi_loop + o_mi_messages + o_mi_minimize + o_mi_mute + o_mi_next + o_mi_normal_window + o_mi_open_capture + o_mi_open_disc + o_mi_open_file + o_mi_open_generic + o_mi_open_net + o_mi_open_recent + o_mi_open_wizard + o_mi_paste + o_mi_play + o_mi_player + o_mi_playlist + o_mi_prefs + o_mi_previous + o_mi_program + o_mi_quit + o_mi_quitAfterPB + o_mi_random + o_mi_rate + o_mi_rate_faster_lbl + o_mi_rate_fld + o_mi_rate_lbl + o_mi_rate_lbl_gray + o_mi_rate_normal_lbl + o_mi_rate_sld + o_mi_rate_slower_lbl + o_mi_rate_view + o_mi_readme + o_mi_record + o_mi_repeat + o_mi_screen + o_mi_select_all + o_mi_services + o_mi_show_all + o_mi_snapshot + o_mi_stop + o_mi_subtitle + o_mi_teletext + o_mi_teletext_blue + o_mi_teletext_green + o_mi_teletext_index + o_mi_teletext_red + o_mi_teletext_transparent + o_mi_teletext_yellow + o_mi_title + o_mi_toggleJumpButtons + o_mi_togglePlaymodeButtons + o_mi_trackSynchronization + o_mi_videoeffects + o_mi_videotrack + o_mi_visual + o_mi_vol_down + o_mi_vol_up + o_mi_website + o_mu_add_intf + o_mu_aspect_ratio + o_mu_audio + o_mu_audiotrack + o_mu_channels + o_mu_chapter + o_mu_controls + o_mu_crop + o_mu_deinterlace + o_mu_deinterlace_mode + o_mu_device + o_mu_edit + o_mu_extensions + o_mu_ffmpeg_pp + o_mu_file + o_mu_help + o_mu_playlistTableColumns + o_mu_program + o_mu_screen + o_mu_subtitle + o_mu_title + o_mu_video + o_mu_videotrack + o_mu_view + o_mu_visual + o_mu_window + o_trackSynchronization + o_videoeffects + o_vmi_fullscreen + o_vmi_mute + o_vmi_next + o_vmi_play + o_vmi_prev + o_vmi_snapshot + o_vmi_stop + o_vmi_voldown + o_vmi_volup + o_vout_menu + + + YES + + o_about + id + + + o_audioeffects + id + + + o_bookmarks + id + + + o_convertandsave + id + + + o_dmi_mute + NSMenuItem + + + o_dmi_next + NSMenuItem + + + o_dmi_play + NSMenuItem + + + o_dmi_previous + NSMenuItem + + + o_dmi_stop + NSMenuItem + + + o_extMgr + id + + + o_mi_AtoBloop + NSMenuItem + + + o_mi_about + NSMenuItem + + + o_mi_addSub + NSMenuItem + + + o_mi_add_intf + NSMenuItem + + + o_mi_aspect_ratio + NSMenuItem + + + o_mi_audioeffects + NSMenuItem + + + o_mi_audiotrack + NSMenuItem + + + o_mi_bookmarks + NSMenuItem + + + o_mi_bring_atf + NSMenuItem + + + o_mi_bwd + NSMenuItem + + + o_mi_channels + NSMenuItem + + + o_mi_chapter + NSMenuItem + + + o_mi_checkForUpdate + NSMenuItem + + + o_mi_clear + NSMenuItem + + + o_mi_close_window + NSMenuItem + + + o_mi_controller + NSMenuItem + + + o_mi_convertandsave + NSMenuItem + + + o_mi_copy + NSMenuItem + + + o_mi_crop + NSMenuItem + + + o_mi_cut + NSMenuItem + + + o_mi_deinterlace + NSMenuItem + + + o_mi_deinterlace_mode + NSMenuItem + + + o_mi_device + NSMenuItem + + + o_mi_documentation + NSMenuItem + + + o_mi_donation + NSMenuItem + + + o_mi_double_window + NSMenuItem + + + o_mi_errorsAndWarnings + NSMenuItem + + + o_mi_extensions + NSMenuItem + + + o_mi_ffmpeg_pp + NSMenuItem + + + o_mi_fittoscreen + NSMenuItem + + + o_mi_floatontop + NSMenuItem + + + o_mi_forum + NSMenuItem + + + o_mi_fullscreen + NSMenuItem + + + o_mi_fwd + NSMenuItem + + + o_mi_half_window + NSMenuItem + + + o_mi_help + NSMenuItem + + + o_mi_hide + NSMenuItem + + + o_mi_hide_others + NSMenuItem + + + o_mi_info + NSMenuItem + + + o_mi_license + NSMenuItem + + + o_mi_loop + NSMenuItem + + + o_mi_messages + NSMenuItem + + + o_mi_minimize + NSMenuItem + + + o_mi_mute + NSMenuItem + + + o_mi_next + NSMenuItem + + + o_mi_normal_window + NSMenuItem + + + o_mi_open_capture + NSMenuItem + + + o_mi_open_disc + NSMenuItem + + + o_mi_open_file + NSMenuItem + + + o_mi_open_generic + NSMenuItem + + + o_mi_open_net + NSMenuItem + + + o_mi_open_recent + NSMenuItem + + + o_mi_open_wizard + NSMenuItem + + + o_mi_paste + NSMenuItem + + + o_mi_play + NSMenuItem + + + o_mi_player + NSMenuItem + + + o_mi_playlist + NSMenuItem + + + o_mi_prefs + NSMenuItem + + + o_mi_previous + NSMenuItem + + + o_mi_program + NSMenuItem + + + o_mi_quit + NSMenuItem + + + o_mi_quitAfterPB + NSMenuItem + + + o_mi_random + NSMenuItem + + + o_mi_rate + NSMenuItem + + + o_mi_rate_faster_lbl + id + + + o_mi_rate_fld + id + + + o_mi_rate_lbl + id + + + o_mi_rate_lbl_gray + id + + + o_mi_rate_normal_lbl + id + + + o_mi_rate_sld + id + + + o_mi_rate_slower_lbl + id + + + o_mi_rate_view + NSView + + + o_mi_readme + NSMenuItem + + + o_mi_record + NSMenuItem + + + o_mi_repeat + NSMenuItem + + + o_mi_screen + NSMenuItem + + + o_mi_select_all + NSMenuItem + + + o_mi_services + NSMenuItem + + + o_mi_show_all + NSMenuItem + + + o_mi_snapshot + NSMenuItem + + + o_mi_stop + NSMenuItem + + + o_mi_subtitle + NSMenuItem + + + o_mi_teletext + NSMenuItem + + + o_mi_teletext_blue + NSMenuItem + + + o_mi_teletext_green + NSMenuItem + + + o_mi_teletext_index + NSMenuItem + + + o_mi_teletext_red + NSMenuItem + + + o_mi_teletext_transparent + NSMenuItem + + + o_mi_teletext_yellow + NSMenuItem + + + o_mi_title + NSMenuItem + + + o_mi_toggleJumpButtons + NSMenuItem + + + o_mi_togglePlaymodeButtons + NSMenuItem + + + o_mi_trackSynchronization + NSMenuItem + + + o_mi_videoeffects + NSMenuItem + + + o_mi_videotrack + NSMenuItem + + + o_mi_visual + NSMenuItem + + + o_mi_vol_down + NSMenuItem + + + o_mi_vol_up + NSMenuItem + + + o_mi_website + NSMenuItem + + + o_mu_add_intf + NSMenu + + + o_mu_aspect_ratio + NSMenu + + + o_mu_audio + NSMenu + + + o_mu_audiotrack + NSMenu + + + o_mu_channels + NSMenu + + + o_mu_chapter + NSMenu + + + o_mu_controls + NSMenu + + + o_mu_crop + NSMenu + + + o_mu_deinterlace + NSMenu + + + o_mu_deinterlace_mode + NSMenu + + + o_mu_device + NSMenu + + + o_mu_edit + NSMenu + + + o_mu_extensions + NSMenu + + + o_mu_ffmpeg_pp + NSMenu + + + o_mu_file + NSMenu + + + o_mu_help + NSMenu + + + o_mu_playlistTableColumns + NSMenu + + + o_mu_program + NSMenu + + + o_mu_screen + NSMenu + + + o_mu_subtitle + NSMenu + + + o_mu_title + NSMenu + + + o_mu_video + NSMenu + + + o_mu_videotrack + NSMenu + + + o_mu_view + NSMenu + + + o_mu_visual + NSMenu + + + o_mu_window + NSMenu + + + o_trackSynchronization + id + + + o_videoeffects + id + + + o_vmi_fullscreen + NSMenuItem + + + o_vmi_mute + NSMenuItem + + + o_vmi_next + NSMenuItem + + + o_vmi_play + NSMenuItem + + + o_vmi_prev + NSMenuItem + + + o_vmi_snapshot + NSMenuItem + + + o_vmi_stop + NSMenuItem + + + o_vmi_voldown + NSMenuItem + + + o_vmi_volup + NSMenuItem + + + o_vout_menu + NSMenu + + + + + IBDocumentRelativeSource + ../../../../../modules/gui/macosx/MainMenu.h + + + YES diff --git a/modules/gui/macosx/CoreInteraction.h b/modules/gui/macosx/CoreInteraction.h index 066a109c20..f992d1ad48 100644 --- a/modules/gui/macosx/CoreInteraction.h +++ b/modules/gui/macosx/CoreInteraction.h @@ -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; diff --git a/modules/gui/macosx/CoreInteraction.m b/modules/gui/macosx/CoreInteraction.m index 334e076aa7..d0e4e2adb0 100644 --- a/modules/gui/macosx/CoreInteraction.m +++ b/modules/gui/macosx/CoreInteraction.m @@ -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; diff --git a/modules/gui/macosx/MainMenu.h b/modules/gui/macosx/MainMenu.h index eb295af8c3..ace9c0fd3e 100644 --- a/modules/gui/macosx/MainMenu.h +++ b/modules/gui/macosx/MainMenu.h @@ -102,6 +102,7 @@ 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; @@ -231,6 +232,7 @@ - (void)updateRecordState:(BOOL)b_value; - (IBAction)setPlaybackRate:(id)sender; - (void)updatePlaybackRate; +- (IBAction)toggleAtoBloop:(id)sender; - (IBAction)toggleFullscreen:(id)sender; - (IBAction)resizeVideoWindow:(id)sender; diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m index 6619e7d594..df3a74fe91 100644 --- a/modules/gui/macosx/MainMenu.m +++ b/modules/gui/macosx/MainMenu.m @@ -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 diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 898b123117..f809686477 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -1328,6 +1328,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (void)updatePlaybackPosition { [o_mainwindow updateTimeSlider]; + [[VLCCoreInteraction sharedInstance] updateAtoB]; } - (void)updateVolume -- 2.39.2