vlc | branch: master | Felix Paul Kühne <[email protected]> | Sun Mar 24 19:10:11 2019 +0100| [6704d90efaf77a536a12553e7d2ba25dc3da5337] | committer: Felix Paul Kühne
macosx/track synchronization: update to new playlist > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6704d90efaf77a536a12553e7d2ba25dc3da5337 --- .../gui/macosx/coreinteraction/VLCInputManager.m | 12 --- .../VLCTrackSynchronizationWindowController.h | 5 +- .../VLCTrackSynchronizationWindowController.m | 107 ++++++++++----------- 3 files changed, 54 insertions(+), 70 deletions(-) diff --git a/modules/gui/macosx/coreinteraction/VLCInputManager.m b/modules/gui/macosx/coreinteraction/VLCInputManager.m index dcce15adb6..4928f6d955 100644 --- a/modules/gui/macosx/coreinteraction/VLCInputManager.m +++ b/modules/gui/macosx/coreinteraction/VLCInputManager.m @@ -36,7 +36,6 @@ @interface VLCInputManager() - (void)updateMainMenu; - (void)updateMainWindow; -- (void)updateDelays; @end #pragma mark Callbacks @@ -98,11 +97,6 @@ static int InputEvent(vlc_object_t *p_this, const char *psz_var, case INPUT_EVENT_SIGNAL: break; - case INPUT_EVENT_AUDIO_DELAY: - case INPUT_EVENT_SUBTITLE_DELAY: - [inputManager performSelectorOnMainThread:@selector(updateDelays) withObject:nil waitUntilDone:NO]; - break; - case INPUT_EVENT_DEAD: [inputManager performSelectorOnMainThread:@selector(updateName) withObject: nil waitUntilDone:NO]; break; @@ -220,7 +214,6 @@ static int InputEvent(vlc_object_t *p_this, const char *psz_var, } [self updateMainWindow]; - [self updateDelays]; [self updateMainMenu]; /* @@ -274,11 +267,6 @@ static int InputEvent(vlc_object_t *p_this, const char *psz_var, [[o_main mainWindow] updateName]; } -- (void)updateDelays -{ - [[[VLCMain sharedInstance] trackSyncPanel] updateValues]; -} - - (void)updateMainMenu { [[o_main mainMenu] setupMenus]; diff --git a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.h b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.h index 4775a176ba..3f1d97788d 100644 --- a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.h +++ b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.h @@ -2,7 +2,7 @@ * VLCTrackSynchronizationWindowController.h: MacOS X interface module ***************************************************************************** * Copyright (C) 2011-2012 VLC authors and VideoLAN - * Copyright (C) 2011-2015 Felix Paul Kühne + * Copyright (C) 2011-2019 Felix Paul Kühne * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> * @@ -46,11 +46,10 @@ @property (readwrite, weak) IBOutlet NSTextField *sv_durTextField; @property (readwrite, weak) IBOutlet NSStepper *sv_durStepper; - - (void)updateCocoaWindowLevel:(NSInteger)i_level; + - (IBAction)toggleWindow:(id)sender; - (IBAction)resetValues:(id)sender; -- (void)updateValues; - (IBAction)avValueChanged:(id)sender; diff --git a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m index 31ccbd07a0..c73f978112 100644 --- a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m +++ b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m @@ -2,7 +2,7 @@ * VLCTrackSynchronizationWindowController.m: MacOS X interface module ***************************************************************************** * Copyright (C) 2011-2014 VLC authors and VideoLAN - * Copyright (C) 2011-2015 Felix Paul Kühne + * Copyright (C) 2011-2019 Felix Paul Kühne * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> * @@ -23,11 +23,7 @@ #import "VLCTrackSynchronizationWindowController.h" -#import <vlc_common.h> -#import <vlc_playlist_legacy.h> - #import "coreinteraction/VLCVideoFilterHelper.h" -#import "main/CompatibilityFixes.h" #import "main/VLCMain.h" #import "playlist/VLCPlaylistController.h" #import "playlist/VLCPlayerController.h" @@ -38,17 +34,46 @@ #define SUBSDELAY_MODE_RELATIVE_SOURCE_DELAY 1 #define SUBSDELAY_MODE_RELATIVE_SOURCE_CONTENT 2 +@interface VLCTrackSynchronizationWindowController() +{ + VLCPlayerController *_playerController; +} +@end + @implementation VLCTrackSynchronizationWindowController - (id)init { self = [super initWithWindowNibName:@"SyncTracks"]; - return self; } +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + - (void)windowDidLoad { + _playerController = [[[VLCMain sharedInstance] playlistController] playerController]; + NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; + [notificationCenter addObserver:self + selector:@selector(updateValues:) + name:VLCPlayerCurrentMediaItemChanged + object:nil]; + [notificationCenter addObserver:self + selector:@selector(updateValues:) + name:VLCPlayerAudioDelayChanged + object:nil]; + [notificationCenter addObserver:self + selector:@selector(updateValues:) + name:VLCPlayerSubtitlesDelayChanged + object:nil]; + [notificationCenter addObserver:self + selector:@selector(updateValues:) + name:VLCPlayerSubtitlesFPSChanged + object:nil]; + [self.window setTitle:_NS("Track Synchronization")]; [_resetButton setTitle:_NS("Reset")]; [_avLabel setStringValue:_NS("Audio/Video")]; @@ -104,7 +129,7 @@ [self.window setLevel: [[[VLCMain sharedInstance] voutProvider] currentStatusWindowLevel]]; [self.window makeKeyAndOrderFront:sender]; - [self updateValues]; + [self updateValues:nil]; } } @@ -119,27 +144,19 @@ [_sv_speedStepper setFloatValue:1.0]; [_sv_durStepper setFloatValue:0.0]; - input_thread_t * p_input = pl_CurrentInput(getIntf()); + _playerController.audioDelay = 0; + _playerController.subtitlesDelay = 0; + _playerController.subtitlesFPS = 1.; - if (p_input) { - var_SetInteger(p_input, "audio-delay", 0); - var_SetInteger(p_input, "spu-delay", 0); - var_SetFloat(p_input, "sub-fps", 1.0); - [self svDurationValueChanged:nil]; - input_Release(p_input); - } + [self svDurationValueChanged:nil]; } -- (void)updateValues +- (void)updateValues:(NSNotification *)aNotification { - input_thread_t * p_input = pl_CurrentInput(getIntf()); + [_av_advanceTextField setDoubleValue: secf_from_vlc_tick(_playerController.audioDelay)]; + [_sv_advanceTextField setDoubleValue: secf_from_vlc_tick(_playerController.subtitlesDelay)]; + [_sv_speedTextField setFloatValue: _playerController.subtitlesFPS]; - if (p_input) { - [_av_advanceTextField setDoubleValue: secf_from_vlc_tick(var_GetInteger(p_input, "audio-delay"))]; - [_sv_advanceTextField setDoubleValue: secf_from_vlc_tick(var_GetInteger(p_input, "spu-delay"))]; - [_sv_speedTextField setFloatValue: var_GetFloat(p_input, "sub-fps")]; - input_Release(p_input); - } [_avStepper setDoubleValue: [_av_advanceTextField doubleValue]]; [_sv_advanceStepper setDoubleValue: [_sv_advanceTextField doubleValue]]; [_sv_speedStepper setDoubleValue: [_sv_speedTextField doubleValue]]; @@ -152,12 +169,7 @@ else [_avStepper setDoubleValue: [_av_advanceTextField doubleValue]]; - input_thread_t * p_input = pl_CurrentInput(getIntf()); - - if (p_input) { - var_SetInteger(p_input, "audio-delay", vlc_tick_from_sec([_av_advanceTextField doubleValue])); - input_Release(p_input); - } + _playerController.audioDelay = vlc_tick_from_sec([_av_advanceTextField doubleValue]); } - (IBAction)svAdvanceValueChanged:(id)sender @@ -167,12 +179,7 @@ else [_sv_advanceStepper setDoubleValue: [_sv_advanceTextField doubleValue]]; - input_thread_t * p_input = pl_CurrentInput(getIntf()); - - if (p_input) { - var_SetInteger(p_input, "spu-delay", vlc_tick_from_sec([_sv_advanceTextField doubleValue])); - input_Release(p_input); - } + _playerController.subtitlesDelay = vlc_tick_from_sec([_sv_advanceTextField doubleValue]); } - (IBAction)svSpeedValueChanged:(id)sender @@ -182,12 +189,7 @@ else [_sv_speedStepper setFloatValue: [_sv_speedTextField floatValue]]; - input_thread_t * p_input = pl_CurrentInput(getIntf()); - - if (p_input) { - var_SetFloat(p_input, "sub-fps", [_sv_speedTextField floatValue]); - input_Release(p_input); - } + _playerController.subtitlesFPS = [_sv_speedTextField floatValue]; } - (IBAction)svDurationValueChanged:(id)sender @@ -197,23 +199,18 @@ else [_sv_durStepper setFloatValue: [_sv_durTextField floatValue]]; - input_thread_t * p_input = pl_CurrentInput(getIntf()); - - if (p_input) { - float f_factor = [_sv_durTextField floatValue]; - NSArray<NSValue *> *vouts = [[[[VLCMain sharedInstance] playlistController] playerController] allVideoOutputThreads]; - - if (vouts) - for (NSValue *ptr in vouts) { - vout_thread_t *p_vout = [ptr pointerValue]; + float f_factor = [_sv_durTextField floatValue]; + NSArray<NSValue *> *vouts = [_playerController allVideoOutputThreads]; - var_SetFloat(p_vout, SUBSDELAY_CFG_FACTOR, f_factor); - vout_Release(p_vout); - } - [VLCVideoFilterHelper setVideoFilter: "subsdelay" on: f_factor > 0]; + if (vouts) { + for (NSValue *ptr in vouts) { + vout_thread_t *p_vout = [ptr pointerValue]; - input_Release(p_input); + var_SetFloat(p_vout, SUBSDELAY_CFG_FACTOR, f_factor); + vout_Release(p_vout); + } } + [VLCVideoFilterHelper setVideoFilter: "subsdelay" on: f_factor > 0]; } @end _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
