104819bfdSŁukasz Kosmaty #include "NativeReanimatedModuleSpec.h"
204819bfdSŁukasz Kosmaty
304819bfdSŁukasz Kosmaty #include <utility>
404819bfdSŁukasz Kosmaty
504819bfdSŁukasz Kosmaty #define SPEC_PREFIX(FN_NAME) __hostFunction_NativeReanimatedModuleSpec_##FN_NAME
604819bfdSŁukasz Kosmaty
704819bfdSŁukasz Kosmaty namespace reanimated {
804819bfdSŁukasz Kosmaty
SPEC_PREFIX(installCoreFunctions)904819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(installCoreFunctions)(
1004819bfdSŁukasz Kosmaty jsi::Runtime &rt,
1104819bfdSŁukasz Kosmaty TurboModule &turboModule,
1204819bfdSŁukasz Kosmaty const jsi::Value *args,
1304819bfdSŁukasz Kosmaty size_t count) {
1404819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
15*5f154df9Saleqsio ->installCoreFunctions(rt, std::move(args[0]), std::move(args[1]));
1604819bfdSŁukasz Kosmaty return jsi::Value::undefined();
1704819bfdSŁukasz Kosmaty }
1804819bfdSŁukasz Kosmaty
1904819bfdSŁukasz Kosmaty // SharedValue
2004819bfdSŁukasz Kosmaty
SPEC_PREFIX(makeShareableClone)21*5f154df9Saleqsio static jsi::Value SPEC_PREFIX(makeShareableClone)(
2204819bfdSŁukasz Kosmaty jsi::Runtime &rt,
2304819bfdSŁukasz Kosmaty TurboModule &turboModule,
2404819bfdSŁukasz Kosmaty const jsi::Value *args,
2504819bfdSŁukasz Kosmaty size_t count) {
2604819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
27*5f154df9Saleqsio ->makeShareableClone(rt, std::move(args[0]), std::move(args[1]));
2804819bfdSŁukasz Kosmaty }
2904819bfdSŁukasz Kosmaty
30*5f154df9Saleqsio // Sync methods
31*5f154df9Saleqsio
SPEC_PREFIX(makeSynchronizedDataHolder)32*5f154df9Saleqsio static jsi::Value SPEC_PREFIX(makeSynchronizedDataHolder)(
3304819bfdSŁukasz Kosmaty jsi::Runtime &rt,
3404819bfdSŁukasz Kosmaty TurboModule &turboModule,
3504819bfdSŁukasz Kosmaty const jsi::Value *args,
3604819bfdSŁukasz Kosmaty size_t count) {
3704819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
38*5f154df9Saleqsio ->makeSynchronizedDataHolder(rt, std::move(args[0]));
3904819bfdSŁukasz Kosmaty }
4004819bfdSŁukasz Kosmaty
SPEC_PREFIX(getDataSynchronously)41*5f154df9Saleqsio static jsi::Value SPEC_PREFIX(getDataSynchronously)(
4204819bfdSŁukasz Kosmaty jsi::Runtime &rt,
4304819bfdSŁukasz Kosmaty TurboModule &turboModule,
4404819bfdSŁukasz Kosmaty const jsi::Value *args,
4504819bfdSŁukasz Kosmaty size_t count) {
4604819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
47*5f154df9Saleqsio ->getDataSynchronously(rt, std::move(args[0]));
4804819bfdSŁukasz Kosmaty }
4904819bfdSŁukasz Kosmaty
50*5f154df9Saleqsio // scheduler
5104819bfdSŁukasz Kosmaty
SPEC_PREFIX(scheduleOnUI)52*5f154df9Saleqsio static jsi::Value SPEC_PREFIX(scheduleOnUI)(
5304819bfdSŁukasz Kosmaty jsi::Runtime &rt,
5404819bfdSŁukasz Kosmaty TurboModule &turboModule,
5504819bfdSŁukasz Kosmaty const jsi::Value *args,
5604819bfdSŁukasz Kosmaty size_t count) {
5704819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
58*5f154df9Saleqsio ->scheduleOnUI(rt, std::move(args[0]));
5904819bfdSŁukasz Kosmaty return jsi::Value::undefined();
6004819bfdSŁukasz Kosmaty }
6104819bfdSŁukasz Kosmaty
SPEC_PREFIX(registerEventHandler)6204819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(registerEventHandler)(
6304819bfdSŁukasz Kosmaty jsi::Runtime &rt,
6404819bfdSŁukasz Kosmaty TurboModule &turboModule,
6504819bfdSŁukasz Kosmaty const jsi::Value *args,
6604819bfdSŁukasz Kosmaty size_t count) {
6704819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
6804819bfdSŁukasz Kosmaty ->registerEventHandler(rt, std::move(args[0]), std::move(args[1]));
6904819bfdSŁukasz Kosmaty }
7004819bfdSŁukasz Kosmaty
SPEC_PREFIX(unregisterEventHandler)7104819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(unregisterEventHandler)(
7204819bfdSŁukasz Kosmaty jsi::Runtime &rt,
7304819bfdSŁukasz Kosmaty TurboModule &turboModule,
7404819bfdSŁukasz Kosmaty const jsi::Value *args,
7504819bfdSŁukasz Kosmaty size_t count) {
7604819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
7704819bfdSŁukasz Kosmaty ->unregisterEventHandler(rt, std::move(args[0]));
7804819bfdSŁukasz Kosmaty return jsi::Value::undefined();
7904819bfdSŁukasz Kosmaty }
8004819bfdSŁukasz Kosmaty
SPEC_PREFIX(getViewProp)8104819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(getViewProp)(
8204819bfdSŁukasz Kosmaty jsi::Runtime &rt,
8304819bfdSŁukasz Kosmaty TurboModule &turboModule,
8404819bfdSŁukasz Kosmaty const jsi::Value *args,
8504819bfdSŁukasz Kosmaty size_t count) {
8604819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
8704819bfdSŁukasz Kosmaty ->getViewProp(
8804819bfdSŁukasz Kosmaty rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
8904819bfdSŁukasz Kosmaty return jsi::Value::undefined();
9004819bfdSŁukasz Kosmaty }
9104819bfdSŁukasz Kosmaty
SPEC_PREFIX(enableLayoutAnimations)9204819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(enableLayoutAnimations)(
9304819bfdSŁukasz Kosmaty jsi::Runtime &rt,
9404819bfdSŁukasz Kosmaty TurboModule &turboModule,
9504819bfdSŁukasz Kosmaty const jsi::Value *args,
9604819bfdSŁukasz Kosmaty size_t count) {
9704819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
9804819bfdSŁukasz Kosmaty ->enableLayoutAnimations(rt, std::move(args[0]));
9904819bfdSŁukasz Kosmaty return jsi::Value::undefined();
10004819bfdSŁukasz Kosmaty }
10104819bfdSŁukasz Kosmaty
SPEC_PREFIX(registerSensor)10204819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(registerSensor)(
10304819bfdSŁukasz Kosmaty jsi::Runtime &rt,
10404819bfdSŁukasz Kosmaty TurboModule &turboModule,
10504819bfdSŁukasz Kosmaty const jsi::Value *args,
10604819bfdSŁukasz Kosmaty size_t count) {
10704819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
10804819bfdSŁukasz Kosmaty ->registerSensor(
109*5f154df9Saleqsio rt,
110*5f154df9Saleqsio std::move(args[0]),
111*5f154df9Saleqsio std::move(args[1]),
112*5f154df9Saleqsio std::move(args[2]),
113*5f154df9Saleqsio std::move(args[3]));
11404819bfdSŁukasz Kosmaty }
11504819bfdSŁukasz Kosmaty
SPEC_PREFIX(unregisterSensor)11604819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(unregisterSensor)(
11704819bfdSŁukasz Kosmaty jsi::Runtime &rt,
11804819bfdSŁukasz Kosmaty TurboModule &turboModule,
11904819bfdSŁukasz Kosmaty const jsi::Value *args,
12004819bfdSŁukasz Kosmaty size_t count) {
12104819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
12204819bfdSŁukasz Kosmaty ->unregisterSensor(rt, std::move(args[0]));
12304819bfdSŁukasz Kosmaty return jsi::Value::undefined();
12404819bfdSŁukasz Kosmaty }
12504819bfdSŁukasz Kosmaty
SPEC_PREFIX(configureProps)12604819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(configureProps)(
12704819bfdSŁukasz Kosmaty jsi::Runtime &rt,
12804819bfdSŁukasz Kosmaty TurboModule &turboModule,
12904819bfdSŁukasz Kosmaty const jsi::Value *args,
13004819bfdSŁukasz Kosmaty size_t count) {
13104819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
13204819bfdSŁukasz Kosmaty ->configureProps(rt, std::move(args[0]), std::move(args[1]));
13304819bfdSŁukasz Kosmaty return jsi::Value::undefined();
13404819bfdSŁukasz Kosmaty }
13504819bfdSŁukasz Kosmaty
SPEC_PREFIX(subscribeForKeyboardEvents)13604819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(subscribeForKeyboardEvents)(
13704819bfdSŁukasz Kosmaty jsi::Runtime &rt,
13804819bfdSŁukasz Kosmaty TurboModule &turboModule,
13904819bfdSŁukasz Kosmaty const jsi::Value *args,
14004819bfdSŁukasz Kosmaty size_t count) {
14104819bfdSŁukasz Kosmaty return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
142*5f154df9Saleqsio ->subscribeForKeyboardEvents(rt, std::move(args[0]), std::move(args[1]));
14304819bfdSŁukasz Kosmaty }
14404819bfdSŁukasz Kosmaty
SPEC_PREFIX(unsubscribeFromKeyboardEvents)14504819bfdSŁukasz Kosmaty static jsi::Value SPEC_PREFIX(unsubscribeFromKeyboardEvents)(
14604819bfdSŁukasz Kosmaty jsi::Runtime &rt,
14704819bfdSŁukasz Kosmaty TurboModule &turboModule,
14804819bfdSŁukasz Kosmaty const jsi::Value *args,
14904819bfdSŁukasz Kosmaty size_t count) {
15004819bfdSŁukasz Kosmaty static_cast<NativeReanimatedModuleSpec *>(&turboModule)
15104819bfdSŁukasz Kosmaty ->unsubscribeFromKeyboardEvents(rt, std::move(args[0]));
15204819bfdSŁukasz Kosmaty return jsi::Value::undefined();
15304819bfdSŁukasz Kosmaty }
15404819bfdSŁukasz Kosmaty
SPEC_PREFIX(configureLayoutAnimation)155*5f154df9Saleqsio static jsi::Value SPEC_PREFIX(configureLayoutAnimation)(
156*5f154df9Saleqsio jsi::Runtime &rt,
157*5f154df9Saleqsio TurboModule &turboModule,
158*5f154df9Saleqsio const jsi::Value *args,
159*5f154df9Saleqsio size_t count) {
160*5f154df9Saleqsio return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
161*5f154df9Saleqsio ->configureLayoutAnimation(
162*5f154df9Saleqsio rt,
163*5f154df9Saleqsio std::move(args[0]),
164*5f154df9Saleqsio std::move(args[1]),
165*5f154df9Saleqsio std::move(args[2]),
166*5f154df9Saleqsio std::move(args[3]));
167*5f154df9Saleqsio }
168*5f154df9Saleqsio
NativeReanimatedModuleSpec(std::shared_ptr<CallInvoker> jsInvoker)16904819bfdSŁukasz Kosmaty NativeReanimatedModuleSpec::NativeReanimatedModuleSpec(
17004819bfdSŁukasz Kosmaty std::shared_ptr<CallInvoker> jsInvoker)
17104819bfdSŁukasz Kosmaty : TurboModule("NativeReanimated", jsInvoker) {
17204819bfdSŁukasz Kosmaty methodMap_["installCoreFunctions"] =
173*5f154df9Saleqsio MethodMetadata{2, SPEC_PREFIX(installCoreFunctions)};
17404819bfdSŁukasz Kosmaty
175*5f154df9Saleqsio methodMap_["makeShareableClone"] =
176*5f154df9Saleqsio MethodMetadata{2, SPEC_PREFIX(makeShareableClone)};
17704819bfdSŁukasz Kosmaty
178*5f154df9Saleqsio methodMap_["makeSynchronizedDataHolder"] =
179*5f154df9Saleqsio MethodMetadata{1, SPEC_PREFIX(makeSynchronizedDataHolder)};
180*5f154df9Saleqsio methodMap_["getDataSynchronously"] =
181*5f154df9Saleqsio MethodMetadata{1, SPEC_PREFIX(getDataSynchronously)};
182*5f154df9Saleqsio
183*5f154df9Saleqsio methodMap_["scheduleOnUI"] = MethodMetadata{1, SPEC_PREFIX(scheduleOnUI)};
18404819bfdSŁukasz Kosmaty
18504819bfdSŁukasz Kosmaty methodMap_["registerEventHandler"] =
18604819bfdSŁukasz Kosmaty MethodMetadata{2, SPEC_PREFIX(registerEventHandler)};
18704819bfdSŁukasz Kosmaty methodMap_["unregisterEventHandler"] =
18804819bfdSŁukasz Kosmaty MethodMetadata{1, SPEC_PREFIX(unregisterEventHandler)};
18904819bfdSŁukasz Kosmaty
19004819bfdSŁukasz Kosmaty methodMap_["getViewProp"] = MethodMetadata{3, SPEC_PREFIX(getViewProp)};
19104819bfdSŁukasz Kosmaty methodMap_["enableLayoutAnimations"] =
19204819bfdSŁukasz Kosmaty MethodMetadata{2, SPEC_PREFIX(enableLayoutAnimations)};
193*5f154df9Saleqsio methodMap_["registerSensor"] = MethodMetadata{4, SPEC_PREFIX(registerSensor)};
19404819bfdSŁukasz Kosmaty methodMap_["unregisterSensor"] =
19504819bfdSŁukasz Kosmaty MethodMetadata{1, SPEC_PREFIX(unregisterSensor)};
19604819bfdSŁukasz Kosmaty methodMap_["configureProps"] = MethodMetadata{2, SPEC_PREFIX(configureProps)};
19704819bfdSŁukasz Kosmaty methodMap_["subscribeForKeyboardEvents"] =
198*5f154df9Saleqsio MethodMetadata{2, SPEC_PREFIX(subscribeForKeyboardEvents)};
19904819bfdSŁukasz Kosmaty methodMap_["unsubscribeFromKeyboardEvents"] =
20004819bfdSŁukasz Kosmaty MethodMetadata{1, SPEC_PREFIX(unsubscribeFromKeyboardEvents)};
201*5f154df9Saleqsio
202*5f154df9Saleqsio methodMap_["configureLayoutAnimation"] =
203*5f154df9Saleqsio MethodMetadata{4, SPEC_PREFIX(configureLayoutAnimation)};
20404819bfdSŁukasz Kosmaty }
20504819bfdSŁukasz Kosmaty } // namespace reanimated
206