diff --git a/docs/docs/guides/FRAME_PROCESSORS.mdx b/docs/docs/guides/FRAME_PROCESSORS.mdx index 1ceefc5f7c..2f751639f5 100644 --- a/docs/docs/guides/FRAME_PROCESSORS.mdx +++ b/docs/docs/guides/FRAME_PROCESSORS.mdx @@ -159,8 +159,8 @@ A Frame Processor Plugin is a single native class which contains an initializer public class FaceDetectorPlugin: FrameProcessorPlugin { private let sensitivity: Double - public override init(proxy: VisionCameraProxyHolder, options: [AnyHashable: Any]) { - super.init(proxy: proxy, options: options) + public override init(context: VisionCameraContext, options: [AnyHashable: Any]) { + super.init(context: context, options: options) sensitivity = options["sensitivity"] as Double } @@ -180,7 +180,7 @@ public class FaceDetectorPlugin: FrameProcessorPlugin { public class FaceDetectorPlugin extends FrameProcessorPlugin { private final Double sensitivity; - public FaceDetectorPlugin(VisionCameraProxyHolder proxy, Map options) { + public FaceDetectorPlugin(VisionCameraContext context, Map options) { super(); sensitivity = options.get("sensitivity") as Double; } diff --git a/docs/docs/guides/FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx b/docs/docs/guides/FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx index 75b0628dd7..ee8a811677 100644 --- a/docs/docs/guides/FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx +++ b/docs/docs/guides/FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx @@ -51,9 +51,9 @@ For reference see the [CLI's docs](https://github.com/mateusz1913/vision-camera- @implementation FaceDetectorFrameProcessorPlugin -- (instancetype) initWithProxy:(VisionCameraProxyHolder*)proxy - withOptions:(NSDictionary* _Nullable)options { - self = [super initWithProxy:proxy options:options]; +- (instancetype) initWithContext:(VisionCameraContext*)context + withOptions:(NSDictionary* _Nullable)options { + self = [super initWithContext:context options:options]; return self; } @@ -92,8 +92,8 @@ import VisionCamera @objc(FaceDetectorFrameProcessorPlugin) public class FaceDetectorFrameProcessorPlugin: FrameProcessorPlugin { - public override init(proxy: VisionCameraProxyHolder, options: [AnyHashable : Any]! = [:]) { - super.init(proxy: proxy, options: options) + public override init(context: VisionCameraContext, options: [AnyHashable : Any]! = [:]) { + super.init(context: context, options: options) } public override func callback(_ frame: Frame, withArguments arguments: [AnyHashable : Any]?) -> Any { diff --git a/package/VisionCamera.podspec b/package/VisionCamera.podspec index f258d5e7b0..8da72ab882 100644 --- a/package/VisionCamera.podspec +++ b/package/VisionCamera.podspec @@ -93,7 +93,7 @@ Pod::Spec.new do |s| "ios/FrameProcessors/FrameProcessorPluginRegistry.h", "ios/FrameProcessors/SharedArray.h", "ios/FrameProcessors/VisionCameraProxyDelegate.h", - "ios/FrameProcessors/VisionCameraProxyHolder.h", + "ios/FrameProcessors/VisionCameraContext.h", "ios/FrameProcessors/VisionCameraInstaller.h", ] diff --git a/package/example/ios/Frame Processor Plugins/Example Plugin/ExampleFrameProcessorPlugin.m b/package/example/ios/Frame Processor Plugins/Example Plugin/ExampleFrameProcessorPlugin.m index 9233113d09..f98c3e2338 100644 --- a/package/example/ios/Frame Processor Plugins/Example Plugin/ExampleFrameProcessorPlugin.m +++ b/package/example/ios/Frame Processor Plugins/Example Plugin/ExampleFrameProcessorPlugin.m @@ -20,11 +20,11 @@ @implementation ExampleFrameProcessorPlugin { SharedArray* _sharedArray; } -- (instancetype)initWithProxy:(VisionCameraProxyHolder*)proxy - withOptions:(NSDictionary* _Nullable)options { - if (self = [super initWithProxy:proxy withOptions:options]) { - _sharedArray = [[SharedArray alloc] initWithProxy:proxy - allocateWithSize:5]; +- (instancetype)initWithContext:(VisionCameraContext*)context + withOptions:(NSDictionary* _Nullable)options { + if (self = [super initWithContext:context withOptions:options]) { + _sharedArray = [[SharedArray alloc] initWithContext:context + allocateWithSize:5]; NSLog(@"ExampleFrameProcessorPlugin initialized with options: %@", options); } return self; diff --git a/package/example/ios/Frame Processor Plugins/Example Swift Plugin/ExampleSwiftFrameProcessor.swift b/package/example/ios/Frame Processor Plugins/Example Swift Plugin/ExampleSwiftFrameProcessor.swift index f9403c2335..132e21bc0c 100644 --- a/package/example/ios/Frame Processor Plugins/Example Swift Plugin/ExampleSwiftFrameProcessor.swift +++ b/package/example/ios/Frame Processor Plugins/Example Swift Plugin/ExampleSwiftFrameProcessor.swift @@ -11,8 +11,8 @@ import VisionCamera // Example for a Swift Frame Processor plugin @objc(ExampleSwiftFrameProcessorPlugin) public class ExampleSwiftFrameProcessorPlugin: FrameProcessorPlugin { - public override init(proxy: VisionCameraProxyHolder, options: [AnyHashable: Any]! = [:]) { - super.init(proxy: proxy, options: options) + public override init(context: VisionCameraContext, options: [AnyHashable: Any]! = [:]) { + super.init(context: context, options: options) print("ExampleSwiftFrameProcessorPlugin initialized with options: \(String(describing: options))") } diff --git a/package/ios/FrameProcessors/FrameProcessorPlugin.h b/package/ios/FrameProcessors/FrameProcessorPlugin.h index 4fe0ee4802..219dff725b 100644 --- a/package/ios/FrameProcessors/FrameProcessorPlugin.h +++ b/package/ios/FrameProcessors/FrameProcessorPlugin.h @@ -10,7 +10,7 @@ #import "Frame.h" #import "FrameProcessorPluginRegistry.h" -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #import NS_ASSUME_NONNULL_BEGIN @@ -32,11 +32,11 @@ NS_ASSUME_NONNULL_BEGIN * This is called everytime this Frame Processor Plugin is loaded from the JS side (`initFrameProcessorPlugin(..)`). * Optionally override this method to implement custom initialization logic. * - Parameters: - * - proxy: The VisionCameraProxy instance for using the Frame Processor Context, e.g. to initialize SharedArrays. + * - context: The VisionCameraContext instance, e.g. to initialize SharedArrays. * - options: An options dictionary passed from the JS side, or `nil` if none. */ -- (instancetype _Nonnull)initWithProxy:(VisionCameraProxyHolder*)proxy - withOptions:(NSDictionary* _Nullable)options NS_SWIFT_NAME(init(proxy:options:)); +- (instancetype _Nonnull)initWithContext:(VisionCameraContext*)context + withOptions:(NSDictionary* _Nullable)options NS_SWIFT_NAME(init(context:options:)); - (instancetype _Nonnull)init NS_UNAVAILABLE; @@ -65,8 +65,8 @@ NS_ASSUME_NONNULL_END +(void)load { \ [FrameProcessorPluginRegistry \ addFrameProcessorPlugin:@ #frame_processor_plugin_name \ - withInitializer:^FrameProcessorPlugin*(VisionCameraProxyHolder* _Nonnull proxy, NSDictionary* _Nullable options) { \ - return [[frame_processor_class alloc] initWithProxy:proxy withOptions:options]; \ + withInitializer:^FrameProcessorPlugin*(VisionCameraContext* _Nonnull context, NSDictionary* _Nullable options) { \ + return [[frame_processor_class alloc] initWithContext:context withOptions:options]; \ }]; \ } @@ -79,9 +79,9 @@ NS_ASSUME_NONNULL_END \ __attribute__((constructor)) static void VISION_CONCAT(initialize_, frame_processor_plugin_name)(void) { \ [FrameProcessorPluginRegistry addFrameProcessorPlugin:@ #frame_processor_plugin_name \ - withInitializer:^FrameProcessorPlugin* _Nonnull(VisionCameraProxyHolder* _Nonnull proxy, \ + withInitializer:^FrameProcessorPlugin* _Nonnull(VisionCameraContext* _Nonnull context, \ NSDictionary* _Nullable options) { \ - return [[frame_processor_class alloc] initWithProxy:proxy withOptions:options]; \ + return [[frame_processor_class alloc] initWithContext:context withOptions:options]; \ }]; \ } \ \ diff --git a/package/ios/FrameProcessors/FrameProcessorPlugin.m b/package/ios/FrameProcessors/FrameProcessorPlugin.m index 1bdc79048a..297aaaf58a 100644 --- a/package/ios/FrameProcessors/FrameProcessorPlugin.m +++ b/package/ios/FrameProcessors/FrameProcessorPlugin.m @@ -11,7 +11,7 @@ // Base implementation (empty) @implementation FrameProcessorPlugin -- (instancetype)initWithProxy:(VisionCameraProxyHolder* _Nonnull)proxy withOptions:(NSDictionary* _Nullable)options { +- (instancetype)initWithContext:(VisionCameraContext* _Nonnull)context withOptions:(NSDictionary* _Nullable)options { self = [super init]; return self; } diff --git a/package/ios/FrameProcessors/FrameProcessorPluginRegistry.h b/package/ios/FrameProcessors/FrameProcessorPluginRegistry.h index f3990bb035..22b764598e 100644 --- a/package/ios/FrameProcessors/FrameProcessorPluginRegistry.h +++ b/package/ios/FrameProcessors/FrameProcessorPluginRegistry.h @@ -10,7 +10,7 @@ #import "Frame.h" #import "FrameProcessorPlugin.h" -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #import NS_ASSUME_NONNULL_BEGIN @@ -20,12 +20,12 @@ NS_ASSUME_NONNULL_BEGIN @interface FrameProcessorPluginRegistry : NSObject -typedef FrameProcessorPlugin* _Nonnull (^PluginInitializerFunction)(VisionCameraProxyHolder* proxy, NSDictionary* _Nullable options); +typedef FrameProcessorPlugin* _Nonnull (^PluginInitializerFunction)(VisionCameraContext* context, NSDictionary* _Nullable options); + (void)addFrameProcessorPlugin:(NSString*)name withInitializer:(PluginInitializerFunction)pluginInitializer; + (FrameProcessorPlugin* _Nullable)getPlugin:(NSString*)name - withProxy:(VisionCameraProxyHolder*)proxy + withContext:(VisionCameraContext*)context withOptions:(NSDictionary* _Nullable)options; @end diff --git a/package/ios/FrameProcessors/FrameProcessorPluginRegistry.m b/package/ios/FrameProcessors/FrameProcessorPluginRegistry.m index 97a3aad927..fb7441772a 100644 --- a/package/ios/FrameProcessors/FrameProcessorPluginRegistry.m +++ b/package/ios/FrameProcessors/FrameProcessorPluginRegistry.m @@ -32,7 +32,7 @@ + (void)addFrameProcessorPlugin:(NSString*)name withInitializer:(PluginInitializ } + (FrameProcessorPlugin*)getPlugin:(NSString* _Nonnull)name - withProxy:(VisionCameraProxyHolder* _Nonnull)proxy + withContext:(VisionCameraContext* _Nonnull)context withOptions:(NSDictionary* _Nullable)options { NSLog(@"Looking up Frame Processor Plugin \"%@\"...", name); PluginInitializerFunction initializer = [[FrameProcessorPluginRegistry frameProcessorPlugins] objectForKey:name]; @@ -42,7 +42,7 @@ + (FrameProcessorPlugin*)getPlugin:(NSString* _Nonnull)name } NSLog(@"Frame Processor Plugin \"%@\" found! Initializing...", name); - return initializer(proxy, options); + return initializer(context, options); } @end diff --git a/package/ios/FrameProcessors/SharedArray.h b/package/ios/FrameProcessors/SharedArray.h index 44d6992966..58ec46687d 100644 --- a/package/ios/FrameProcessors/SharedArray.h +++ b/package/ios/FrameProcessors/SharedArray.h @@ -8,7 +8,7 @@ #pragma once -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #import #ifdef __cplusplus @@ -29,16 +29,16 @@ NS_ASSUME_NONNULL_BEGIN * Allocates a new SharedArray with the given size. * Use `data` to write to the SharedArray. */ -- (instancetype)initWithProxy:(VisionCameraProxyHolder*)proxy allocateWithSize:(NSInteger)size; +- (instancetype)initWithContext:(VisionCameraContext*)context allocateWithSize:(NSInteger)size; /** * Wraps the given data in a SharedArray without copying. * Use `data` to write to the SharedArray. */ -- (instancetype)initWithProxy:(VisionCameraProxyHolder*)proxy - wrapData:(uint8_t*)data - withSize:(NSInteger)size - freeOnDealloc:(BOOL)freeOnDealloc; +- (instancetype)initWithContext:(VisionCameraContext*)context + wrapData:(uint8_t*)data + withSize:(NSInteger)size + freeOnDealloc:(BOOL)freeOnDealloc; #ifdef __cplusplus /** diff --git a/package/ios/FrameProcessors/SharedArray.mm b/package/ios/FrameProcessors/SharedArray.mm index ad00d9a98f..55e9cd8a57 100644 --- a/package/ios/FrameProcessors/SharedArray.mm +++ b/package/ios/FrameProcessors/SharedArray.mm @@ -19,17 +19,17 @@ @implementation SharedArray { std::shared_ptr _arrayBuffer; } -- (instancetype)initWithProxy:(VisionCameraProxyHolder*)proxy allocateWithSize:(NSInteger)size { +- (instancetype)initWithContext:(VisionCameraContext*)context allocateWithSize:(NSInteger)size { uint8_t* data = (uint8_t*)malloc(size * sizeof(uint8_t)); - return [self initWithProxy:proxy wrapData:data withSize:size freeOnDealloc:YES]; + return [self initWithContext:context wrapData:data withSize:size freeOnDealloc:YES]; } -- (instancetype)initWithProxy:(VisionCameraProxyHolder*)proxy - wrapData:(uint8_t*)data - withSize:(NSInteger)size - freeOnDealloc:(BOOL)freeOnDealloc { +- (instancetype)initWithContext:(VisionCameraContext*)context + wrapData:(uint8_t*)data + withSize:(NSInteger)size + freeOnDealloc:(BOOL)freeOnDealloc { if (self = [super init]) { - jsi::Runtime& runtime = proxy.proxy->getWorkletRuntime(); + jsi::Runtime& runtime = context.context->getWorkletRuntime(); auto mutableBuffer = std::make_shared(data, size, freeOnDealloc); _arrayBuffer = std::make_shared(runtime, mutableBuffer); diff --git a/package/ios/FrameProcessors/VisionCameraProxyHolder.h b/package/ios/FrameProcessors/VisionCameraContext.h similarity index 71% rename from package/ios/FrameProcessors/VisionCameraProxyHolder.h rename to package/ios/FrameProcessors/VisionCameraContext.h index 4c0b8c95df..db672139b1 100644 --- a/package/ios/FrameProcessors/VisionCameraProxyHolder.h +++ b/package/ios/FrameProcessors/VisionCameraContext.h @@ -1,5 +1,5 @@ // -// VisionCameraProxyHolder.h +// VisionCameraContext.h // Pods // // Created by Marc Rousavy on 20.04.24. @@ -17,9 +17,9 @@ NS_ASSUME_NONNULL_BEGIN /** - An Objective-C/Swift class that holds the C++ VisionCameraProxy. + * An Objective-C/Swift class that holds VisionCamera-related context. */ -@interface VisionCameraProxyHolder : NSObject +@interface VisionCameraContext : NSObject - (_Nonnull instancetype)initWithProxy:(void*)proxy; diff --git a/package/ios/FrameProcessors/VisionCameraProxyHolder.mm b/package/ios/FrameProcessors/VisionCameraContext.mm similarity index 76% rename from package/ios/FrameProcessors/VisionCameraProxyHolder.mm rename to package/ios/FrameProcessors/VisionCameraContext.mm index 3fd753b594..be05ed6882 100644 --- a/package/ios/FrameProcessors/VisionCameraProxyHolder.mm +++ b/package/ios/FrameProcessors/VisionCameraContext.mm @@ -1,15 +1,15 @@ // -// VisionCameraProxyHolder.mm +// VisionCameraContext.mm // DoubleConversion // // Created by Marc Rousavy on 20.04.24. // -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #import "VisionCameraProxy.h" #import -@implementation VisionCameraProxyHolder { +@implementation VisionCameraContext { VisionCameraProxy* _proxy; } diff --git a/package/ios/FrameProcessors/VisionCameraProxy.mm b/package/ios/FrameProcessors/VisionCameraProxy.mm index 0c495111cf..b2fe1e3de4 100644 --- a/package/ios/FrameProcessors/VisionCameraProxy.mm +++ b/package/ios/FrameProcessors/VisionCameraProxy.mm @@ -14,7 +14,7 @@ #import "FrameProcessorPluginHostObject.h" #import "FrameProcessorPluginRegistry.h" #import "JSINSObjectConversion.h" -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #import "WKTJsiWorklet.h" using namespace facebook; @@ -65,10 +65,10 @@ std::string nameString = name.utf8(runtime); NSString* key = [NSString stringWithUTF8String:nameString.c_str()]; NSDictionary* optionsObjc = JSINSObjectConversion::convertJSIObjectToObjCDictionary(runtime, options); - VisionCameraProxyHolder* proxy = [[VisionCameraProxyHolder alloc] initWithProxy:this]; + VisionCameraContext* context = [[VisionCameraContext alloc] initWithProxy:this]; @try { - FrameProcessorPlugin* plugin = [FrameProcessorPluginRegistry getPlugin:key withProxy:proxy withOptions:optionsObjc]; + FrameProcessorPlugin* plugin = [FrameProcessorPluginRegistry getPlugin:key withContext:context withOptions:optionsObjc]; if (plugin == nil) { return jsi::Value::undefined(); } diff --git a/package/ios/React/CameraBridge.h b/package/ios/React/CameraBridge.h index fbe0f9029e..43a6435201 100644 --- a/package/ios/React/CameraBridge.h +++ b/package/ios/React/CameraBridge.h @@ -22,5 +22,5 @@ #import "SharedArray.h" #import "VisionCameraInstaller.h" #import "VisionCameraProxyDelegate.h" -#import "VisionCameraProxyHolder.h" +#import "VisionCameraContext.h" #endif