chore: Move everything into package/ (#1745)
				
					
				
			* Move everything into package * Remove .DS_Store * Move scripts and eslintrc to package * Create CODE_OF_CONDUCT.md * fix some links * Update all links (I think) * Update generated docs * Update notice-yarn-changes.yml * Update validate-android.yml * Update validate-cpp.yml * Delete notice-yarn-changes.yml * Update validate-cpp.yml * Update validate-cpp.yml * Update validate-js.yml * Update validate-cpp.yml * Update validate-cpp.yml * wrong c++ style * Revert "wrong c++ style" This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
This commit is contained in:
		| @@ -0,0 +1,55 @@ | ||||
| // | ||||
| //  FrameProcessorPluginHostObject.mm | ||||
| //  VisionCamera | ||||
| // | ||||
| //  Created by Marc Rousavy on 21.07.23. | ||||
| //  Copyright © 2023 mrousavy. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import "FrameProcessorPluginHostObject.h" | ||||
| #import "FrameHostObject.h" | ||||
| #import "JSINSObjectConversion.h" | ||||
| #import <Foundation/Foundation.h> | ||||
| #import <vector> | ||||
|  | ||||
| using namespace facebook; | ||||
|  | ||||
| std::vector<jsi::PropNameID> | ||||
| FrameProcessorPluginHostObject::getPropertyNames(jsi::Runtime& runtime) { | ||||
|   std::vector<jsi::PropNameID> result; | ||||
|   result.push_back(jsi::PropNameID::forUtf8(runtime, std::string("call"))); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| jsi::Value FrameProcessorPluginHostObject::get(jsi::Runtime& runtime, | ||||
|                                                const jsi::PropNameID& propName) { | ||||
|   auto name = propName.utf8(runtime); | ||||
|  | ||||
|   if (name == "call") { | ||||
|     return jsi::Function::createFromHostFunction( | ||||
|         runtime, jsi::PropNameID::forUtf8(runtime, "call"), 2, | ||||
|         [=](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* arguments, | ||||
|             size_t count) -> jsi::Value { | ||||
|           // Frame is first argument | ||||
|           auto frameHostObject = | ||||
|               arguments[0].asObject(runtime).asHostObject<FrameHostObject>(runtime); | ||||
|           Frame* frame = frameHostObject->frame; | ||||
|  | ||||
|           // Options are second argument (possibly undefined) | ||||
|           NSDictionary* options = nil; | ||||
|           if (count > 1) { | ||||
|             auto optionsObject = arguments[1].asObject(runtime); | ||||
|             options = JSINSObjectConversion::convertJSIObjectToNSDictionary(runtime, optionsObject, | ||||
|                                                                             _callInvoker); | ||||
|           } | ||||
|  | ||||
|           // Call actual Frame Processor Plugin | ||||
|           id result = [_plugin callback:frame withArguments:nil]; | ||||
|  | ||||
|           // Convert result value to jsi::Value (possibly undefined) | ||||
|           return JSINSObjectConversion::convertObjCObjectToJSIValue(runtime, result); | ||||
|         }); | ||||
|   } | ||||
|  | ||||
|   return jsi::Value::undefined(); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user