diff foosdk/sdk/foobar2000/helpers-mac/fooTimeFormatter.mm @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/foobar2000/helpers-mac/fooTimeFormatter.mm	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,37 @@
+//
+//  fooTimeFormatter.m
+//  foo_abx
+//
+//  Created by P on 06/09/2023.
+//
+
+#import "stdafx.h"
+#import "fooTimeFormatter.h"
+
+@implementation fooTimeFormatter
+
+- (NSString *)stringForObjectValue:(id)obj {
+    double v = 0;
+    if ( [obj respondsToSelector: @selector(doubleValue)]) v = [obj doubleValue];
+    else if ( [obj respondsToSelector: @selector(longValue)]) v = [obj longValue];
+    else if ( [obj respondsToSelector: @selector(intValue)]) v = [obj intValue];
+
+    unsigned digits = 3;
+    if ( _digits ) digits = _digits.unsignedIntValue;
+    return [NSString stringWithUTF8String: pfc::format_time_ex(v, digits)];
+}
+
+- (NSString *)editingStringForObjectValue:(id)obj {
+    return [self stringForObjectValue: obj];
+}
+- (BOOL)getObjectValue:(out id  _Nullable __autoreleasing *)obj forString:(NSString *)string errorDescription:(out NSString * _Nullable __autoreleasing *)error {
+    if ( string == nil ) return NO;
+    try {
+        double v = pfc::parse_timecode( string.UTF8String );
+        *obj = [NSNumber numberWithDouble: v];
+        return YES;
+    } catch(...) {
+        return NO;
+    }
+}
+@end