vlc | branch: master | Marvin Scholz <[email protected]> | Tue Oct 9 12:48:57 2018 +0200| [8f20844d4454b3df0bf2354c985a9d89a01aa680] | committer: Marvin Scholz
macosx: Move input time helper to string category > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8f20844d4454b3df0bf2354c985a9d89a01aa680 --- modules/gui/macosx/NSString+Helpers.h | 12 ++++++++++++ modules/gui/macosx/NSString+Helpers.m | 20 ++++++++++++++++++++ modules/gui/macosx/VLCControlsBarCommon.m | 8 +++++--- modules/gui/macosx/VLCStatusBarIcon.m | 5 +++-- modules/gui/macosx/VLCStringUtility.h | 1 - modules/gui/macosx/VLCStringUtility.m | 17 ----------------- 6 files changed, 40 insertions(+), 23 deletions(-) diff --git a/modules/gui/macosx/NSString+Helpers.h b/modules/gui/macosx/NSString+Helpers.h index 4b570bc086..35ea1165cb 100644 --- a/modules/gui/macosx/NSString+Helpers.h +++ b/modules/gui/macosx/NSString+Helpers.h @@ -26,10 +26,22 @@ *****************************************************************************/ #import <Foundation/Foundation.h> +#import <vlc_input.h> @interface NSString (Helpers) /** + Creates an NSString with the current time of the \c input_thread_t + + This method allocates and initializes an NSString with the current + elapsed or remaining time of the given input. + + \param negative If YES, calculate remaining instead of elapsed time + */ ++ (instancetype)stringWithTimeFromInput:(input_thread_t *)input + negative:(BOOL)negative; + +/** Creates an NSString from the given null-terminated C string buffer encoded as base64 diff --git a/modules/gui/macosx/NSString+Helpers.m b/modules/gui/macosx/NSString+Helpers.m index ee5499a8f9..36773ec235 100644 --- a/modules/gui/macosx/NSString+Helpers.m +++ b/modules/gui/macosx/NSString+Helpers.m @@ -33,6 +33,26 @@ @implementation NSString (Helpers) ++ (instancetype)stringWithTimeFromInput:(input_thread_t *)input + negative:(BOOL)negative +{ + NSAssert(input != NULL, @"Input may not be NULL!"); + + char psz_time[MSTRTIME_MAX_SIZE]; + vlc_tick_t t = var_GetInteger(input, "time"); + + vlc_tick_t dur = input_item_GetDuration(input_GetItem(input)); + if (negative && dur > 0) { + vlc_tick_t remaining = (dur > t) ? (dur - t) : 0; + + return [NSString stringWithFormat:@"-%s", + secstotimestr(psz_time, (int)SEC_FROM_VLC_TICK(remaining))]; + } else { + return [NSString stringWithUTF8String: + secstotimestr(psz_time, (int)SEC_FROM_VLC_TICK(t))]; + } +} + + (instancetype)base64StringWithCString:(const char *)cstring { if (cstring == NULL) diff --git a/modules/gui/macosx/VLCControlsBarCommon.m b/modules/gui/macosx/VLCControlsBarCommon.m index 9cc83db12d..2d067d69c1 100644 --- a/modules/gui/macosx/VLCControlsBarCommon.m +++ b/modules/gui/macosx/VLCControlsBarCommon.m @@ -28,6 +28,7 @@ #import "VLCMainMenu.h" #import "VLCPlaylist.h" #import "CompatibilityFixes.h" +#import "NSString+Helpers.h" /***************************************************************************** * VLCControlsBarCommon @@ -265,7 +266,8 @@ var_Set(p_input, "position", pos); [self.timeSlider setFloatValue: f_updated]; - o_time = [[VLCStringUtility sharedInstance] getCurrentTimeAsString: p_input negative:[self.timeField timeRemaining]]; + o_time = [NSString stringWithTimeFromInput:p_input + negative:self.timeField.timeRemaining]; [self.timeField setStringValue: o_time]; vlc_object_release(p_input); } @@ -312,8 +314,8 @@ [self.timeSlider setIndefinite:buffering]; } - NSString *time = [[VLCStringUtility sharedInstance] getCurrentTimeAsString:p_input - negative:[self.timeField timeRemaining]]; + NSString *time = [NSString stringWithTimeFromInput:p_input + negative:self.timeField.timeRemaining]; [self.timeField setStringValue:time]; [self.timeField setNeedsDisplay:YES]; diff --git a/modules/gui/macosx/VLCStatusBarIcon.m b/modules/gui/macosx/VLCStatusBarIcon.m index 2fa8529d37..f6f61e50b5 100644 --- a/modules/gui/macosx/VLCStatusBarIcon.m +++ b/modules/gui/macosx/VLCStatusBarIcon.m @@ -33,6 +33,7 @@ #import "CompatibilityFixes.h" #import "VLCCoreInteraction.h" #import "VLCStringUtility.h" +#import "NSString+Helpers.h" #import "VLCApplication.h" @@ -243,8 +244,8 @@ NSString *totalTime; /* Get elapsed and remaining time */ - elapsedTime = [[VLCStringUtility sharedInstance] getCurrentTimeAsString:input negative:NO]; - remainingTime = [[VLCStringUtility sharedInstance] getCurrentTimeAsString:input negative:YES]; + elapsedTime = [NSString stringWithTimeFromInput:input negative:NO]; + remainingTime = [NSString stringWithTimeFromInput:input negative:YES]; /* Check item duration */ vlc_tick_t dur = input_item_GetDuration(input_GetItem(input)); diff --git a/modules/gui/macosx/VLCStringUtility.h b/modules/gui/macosx/VLCStringUtility.h index 6b68ff11de..f7f241954c 100644 --- a/modules/gui/macosx/VLCStringUtility.h +++ b/modules/gui/macosx/VLCStringUtility.h @@ -58,7 +58,6 @@ NSImage *imageFromRes(NSString *name); + (VLCStringUtility *)sharedInstance; -- (NSString *)getCurrentTimeAsString:(input_thread_t *)p_input negative:(BOOL)b_negative; - (NSString *)stringForTime:(long long int)time; - (NSString *)OSXStringKeyToString:(NSString *)theString; diff --git a/modules/gui/macosx/VLCStringUtility.m b/modules/gui/macosx/VLCStringUtility.m index 302d817176..bcba2110a6 100644 --- a/modules/gui/macosx/VLCStringUtility.m +++ b/modules/gui/macosx/VLCStringUtility.m @@ -68,23 +68,6 @@ NSString *const kVLCMediaUnknown = @"Unknown"; #pragma mark String utility -- (NSString *)getCurrentTimeAsString:(input_thread_t *)p_input negative:(BOOL)b_negative -{ - assert(p_input != nil); - - char psz_time[MSTRTIME_MAX_SIZE]; - vlc_tick_t t = var_GetInteger(p_input, "time"); - - vlc_tick_t dur = input_item_GetDuration(input_GetItem(p_input)); - if (b_negative && dur > 0) { - vlc_tick_t remaining = 0; - if (dur > t) - remaining = dur - t; - return [NSString stringWithFormat: @"-%s", secstotimestr(psz_time, (int)SEC_FROM_VLC_TICK(remaining))]; - } else - return toNSStr(secstotimestr(psz_time, (int)SEC_FROM_VLC_TICK(t))); -} - - (NSString *)stringForTime:(long long int)time { if (time > 0) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
