be5ec69b02
* Fix building iOS without Reanimated * Conditionally compile Frame Processors (gradle) * Conditionally use externalNativeBuild * Remove Reanimated import * fix: Conditionally load REA/VisionCamera libraries * fix: Add disable FP to docs * fix: Fix dummy placeholder for Scheduler.mm * fix: Fix dummy `Scheduler` declaration * fix: Only init `CameraView` C++ side if frame processors are enabled * fix: Install JSI Bindings on Frame Processor Manager ctor * fix: Wrong conditional * whoops
40 lines
996 B
Plaintext
40 lines
996 B
Plaintext
//
|
|
// VisionCameraScheduler.mm
|
|
// VisionCamera
|
|
//
|
|
// Created by Marc Rousavy on 23.07.21.
|
|
// Copyright © 2021 mrousavy. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import "VisionCameraScheduler.h"
|
|
|
|
#import <React-callinvoker/ReactCommon/CallInvoker.h>
|
|
|
|
// Forward declarations for the Swift classes
|
|
__attribute__((objc_runtime_name("_TtC12VisionCamera12CameraQueues")))
|
|
@interface CameraQueues : NSObject
|
|
@property (nonatomic, class, readonly, strong) dispatch_queue_t _Nonnull frameProcessorQueue;
|
|
@end
|
|
|
|
namespace vision {
|
|
|
|
using namespace facebook;
|
|
|
|
VisionCameraScheduler::VisionCameraScheduler(std::shared_ptr<react::CallInvoker> jsInvoker) {
|
|
this->jsCallInvoker_ = jsInvoker;
|
|
}
|
|
|
|
// does not schedule on UI thread but rather on Frame Processor Thread
|
|
void VisionCameraScheduler::scheduleOnUI(std::function<void()> job) {
|
|
dispatch_async(CameraQueues.frameProcessorQueue, ^{
|
|
job();
|
|
});
|
|
}
|
|
|
|
VisionCameraScheduler::~VisionCameraScheduler(){
|
|
}
|
|
|
|
|
|
} // namespace vision
|