1 #include "NativeReanimatedModuleSpec.h"
2
3 #include <utility>
4
5 #define SPEC_PREFIX(FN_NAME) __hostFunction_NativeReanimatedModuleSpec_##FN_NAME
6
7 namespace reanimated {
8
SPEC_PREFIX(installCoreFunctions)9 static jsi::Value SPEC_PREFIX(installCoreFunctions)(
10 jsi::Runtime &rt,
11 TurboModule &turboModule,
12 const jsi::Value *args,
13 size_t count) {
14 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
15 ->installCoreFunctions(rt, std::move(args[0]));
16 return jsi::Value::undefined();
17 }
18
19 // SharedValue
20
SPEC_PREFIX(makeShareable)21 static jsi::Value SPEC_PREFIX(makeShareable)(
22 jsi::Runtime &rt,
23 TurboModule &turboModule,
24 const jsi::Value *args,
25 size_t count) {
26 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
27 ->makeShareable(rt, std::move(args[0]));
28 }
29
SPEC_PREFIX(makeMutable)30 static jsi::Value SPEC_PREFIX(makeMutable)(
31 jsi::Runtime &rt,
32 TurboModule &turboModule,
33 const jsi::Value *args,
34 size_t count) {
35 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
36 ->makeMutable(rt, std::move(args[0]));
37 }
38
SPEC_PREFIX(makeRemote)39 static jsi::Value SPEC_PREFIX(makeRemote)(
40 jsi::Runtime &rt,
41 TurboModule &turboModule,
42 const jsi::Value *args,
43 size_t count) {
44 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
45 ->makeRemote(rt, std::move(args[0]));
46 }
47
SPEC_PREFIX(startMapper)48 static jsi::Value SPEC_PREFIX(startMapper)(
49 jsi::Runtime &rt,
50 TurboModule &turboModule,
51 const jsi::Value *args,
52 size_t count) {
53 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
54 ->startMapper(
55 rt,
56 std::move(args[0]),
57 std::move(args[1]),
58 std::move(args[2]),
59 std::move(args[3]),
60 std::move(args[4]));
61 }
62
SPEC_PREFIX(stopMapper)63 static jsi::Value SPEC_PREFIX(stopMapper)(
64 jsi::Runtime &rt,
65 TurboModule &turboModule,
66 const jsi::Value *args,
67 size_t count) {
68 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
69 ->stopMapper(rt, std::move(args[0]));
70 return jsi::Value::undefined();
71 }
72
SPEC_PREFIX(registerEventHandler)73 static jsi::Value SPEC_PREFIX(registerEventHandler)(
74 jsi::Runtime &rt,
75 TurboModule &turboModule,
76 const jsi::Value *args,
77 size_t count) {
78 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
79 ->registerEventHandler(rt, std::move(args[0]), std::move(args[1]));
80 }
81
SPEC_PREFIX(unregisterEventHandler)82 static jsi::Value SPEC_PREFIX(unregisterEventHandler)(
83 jsi::Runtime &rt,
84 TurboModule &turboModule,
85 const jsi::Value *args,
86 size_t count) {
87 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
88 ->unregisterEventHandler(rt, std::move(args[0]));
89 return jsi::Value::undefined();
90 }
91
SPEC_PREFIX(getViewProp)92 static jsi::Value SPEC_PREFIX(getViewProp)(
93 jsi::Runtime &rt,
94 TurboModule &turboModule,
95 const jsi::Value *args,
96 size_t count) {
97 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
98 ->getViewProp(
99 rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
100 return jsi::Value::undefined();
101 }
102
SPEC_PREFIX(enableLayoutAnimations)103 static jsi::Value SPEC_PREFIX(enableLayoutAnimations)(
104 jsi::Runtime &rt,
105 TurboModule &turboModule,
106 const jsi::Value *args,
107 size_t count) {
108 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
109 ->enableLayoutAnimations(rt, std::move(args[0]));
110 return jsi::Value::undefined();
111 }
112
SPEC_PREFIX(registerSensor)113 static jsi::Value SPEC_PREFIX(registerSensor)(
114 jsi::Runtime &rt,
115 TurboModule &turboModule,
116 const jsi::Value *args,
117 size_t count) {
118 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
119 ->registerSensor(
120 rt, std::move(args[0]), std::move(args[1]), std::move(args[2]));
121 }
122
SPEC_PREFIX(unregisterSensor)123 static jsi::Value SPEC_PREFIX(unregisterSensor)(
124 jsi::Runtime &rt,
125 TurboModule &turboModule,
126 const jsi::Value *args,
127 size_t count) {
128 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
129 ->unregisterSensor(rt, std::move(args[0]));
130 return jsi::Value::undefined();
131 }
132
SPEC_PREFIX(configureProps)133 static jsi::Value SPEC_PREFIX(configureProps)(
134 jsi::Runtime &rt,
135 TurboModule &turboModule,
136 const jsi::Value *args,
137 size_t count) {
138 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
139 ->configureProps(rt, std::move(args[0]), std::move(args[1]));
140 return jsi::Value::undefined();
141 }
142
SPEC_PREFIX(subscribeForKeyboardEvents)143 static jsi::Value SPEC_PREFIX(subscribeForKeyboardEvents)(
144 jsi::Runtime &rt,
145 TurboModule &turboModule,
146 const jsi::Value *args,
147 size_t count) {
148 return static_cast<NativeReanimatedModuleSpec *>(&turboModule)
149 ->subscribeForKeyboardEvents(rt, std::move(args[0]));
150 }
151
SPEC_PREFIX(unsubscribeFromKeyboardEvents)152 static jsi::Value SPEC_PREFIX(unsubscribeFromKeyboardEvents)(
153 jsi::Runtime &rt,
154 TurboModule &turboModule,
155 const jsi::Value *args,
156 size_t count) {
157 static_cast<NativeReanimatedModuleSpec *>(&turboModule)
158 ->unsubscribeFromKeyboardEvents(rt, std::move(args[0]));
159 return jsi::Value::undefined();
160 }
161
NativeReanimatedModuleSpec(std::shared_ptr<CallInvoker> jsInvoker)162 NativeReanimatedModuleSpec::NativeReanimatedModuleSpec(
163 std::shared_ptr<CallInvoker> jsInvoker)
164 : TurboModule("NativeReanimated", jsInvoker) {
165 methodMap_["installCoreFunctions"] =
166 MethodMetadata{1, SPEC_PREFIX(installCoreFunctions)};
167
168 methodMap_["makeShareable"] = MethodMetadata{1, SPEC_PREFIX(makeShareable)};
169 methodMap_["makeMutable"] = MethodMetadata{1, SPEC_PREFIX(makeMutable)};
170 methodMap_["makeRemote"] = MethodMetadata{1, SPEC_PREFIX(makeRemote)};
171
172 methodMap_["startMapper"] = MethodMetadata{5, SPEC_PREFIX(startMapper)};
173 methodMap_["stopMapper"] = MethodMetadata{1, SPEC_PREFIX(stopMapper)};
174
175 methodMap_["registerEventHandler"] =
176 MethodMetadata{2, SPEC_PREFIX(registerEventHandler)};
177 methodMap_["unregisterEventHandler"] =
178 MethodMetadata{1, SPEC_PREFIX(unregisterEventHandler)};
179
180 methodMap_["getViewProp"] = MethodMetadata{3, SPEC_PREFIX(getViewProp)};
181 methodMap_["enableLayoutAnimations"] =
182 MethodMetadata{2, SPEC_PREFIX(enableLayoutAnimations)};
183 methodMap_["registerSensor"] = MethodMetadata{3, SPEC_PREFIX(registerSensor)};
184 methodMap_["unregisterSensor"] =
185 MethodMetadata{1, SPEC_PREFIX(unregisterSensor)};
186 methodMap_["configureProps"] = MethodMetadata{2, SPEC_PREFIX(configureProps)};
187 methodMap_["subscribeForKeyboardEvents"] =
188 MethodMetadata{1, SPEC_PREFIX(subscribeForKeyboardEvents)};
189 methodMap_["unsubscribeFromKeyboardEvents"] =
190 MethodMetadata{1, SPEC_PREFIX(unsubscribeFromKeyboardEvents)};
191 }
192 } // namespace reanimated
193