blob: e8f7ef042b8fd6303c409ee0f0ffc5940169ccd3 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTER_TIME_CONVERTER_MM_
#define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTER_TIME_CONVERTER_MM_
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterTimeConverter.h"
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine_Internal.h"
@interface FlutterTimeConverter () {
__weak FlutterEngine* _engine;
}
@end
@implementation FlutterTimeConverter
- (instancetype)initWithEngine:(FlutterEngine*)engine {
self = [super init];
if (self) {
_engine = engine;
}
return self;
}
- (uint64_t)CAMediaTimeToEngineTime:(CFTimeInterval)time {
FlutterEngine* engine = _engine;
if (!engine) {
return 0;
}
return (time - CACurrentMediaTime()) * NSEC_PER_SEC + engine.embedderAPI.GetCurrentTime();
}
- (CFTimeInterval)engineTimeToCAMediaTime:(uint64_t)time {
FlutterEngine* engine = _engine;
if (!engine) {
return 0;
}
return (static_cast<int64_t>(time) - static_cast<int64_t>(engine.embedderAPI.GetCurrentTime())) /
static_cast<double>(NSEC_PER_SEC) +
CACurrentMediaTime();
}
@end
#endif // FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTER_TIME_CONVERTER_MM_-