
/**
 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
 *
 * Do not edit this file as changes may cause incorrect behavior and will be lost
 * once the code is regenerated.
 *
 * @generated by codegen project: GenerateModuleJniCpp.js
 */

#include "RNSpeechSpec.h"

namespace facebook::react {

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_reset(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "reset", "()V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_stop(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "stop", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_pause(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "pause", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_resume(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "resume", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_isSpeaking(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "isSpeaking", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_speak(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "speak", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_initialize(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "initialize", "(Lcom/facebook/react/bridge/ReadableMap;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_getAvailableVoices(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getAvailableVoices", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

static facebook::jsi::Value __hostFunction_NativeSpeechSpecJSI_speakWithOptions(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
  static jmethodID cachedMethodId = nullptr;
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "speakWithOptions", "(Ljava/lang/String;Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
}

NativeSpeechSpecJSI::NativeSpeechSpecJSI(const JavaTurboModule::InitParams &params)
  : JavaTurboModule(params) {
  methodMap_["reset"] = MethodMetadata {0, __hostFunction_NativeSpeechSpecJSI_reset};
  methodMap_["stop"] = MethodMetadata {0, __hostFunction_NativeSpeechSpecJSI_stop};
  methodMap_["pause"] = MethodMetadata {0, __hostFunction_NativeSpeechSpecJSI_pause};
  methodMap_["resume"] = MethodMetadata {0, __hostFunction_NativeSpeechSpecJSI_resume};
  methodMap_["isSpeaking"] = MethodMetadata {0, __hostFunction_NativeSpeechSpecJSI_isSpeaking};
  methodMap_["speak"] = MethodMetadata {1, __hostFunction_NativeSpeechSpecJSI_speak};
  methodMap_["initialize"] = MethodMetadata {1, __hostFunction_NativeSpeechSpecJSI_initialize};
  methodMap_["getAvailableVoices"] = MethodMetadata {1, __hostFunction_NativeSpeechSpecJSI_getAvailableVoices};
  methodMap_["speakWithOptions"] = MethodMetadata {2, __hostFunction_NativeSpeechSpecJSI_speakWithOptions};
  eventEmitterMap_["onError"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onStart"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onFinish"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onPause"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onResume"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onStopped"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  eventEmitterMap_["onProgress"] = std::make_shared<AsyncEventEmitter<folly::dynamic>>();
  setEventEmitterCallback(params.instance);
}

std::shared_ptr<TurboModule> RNSpeechSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
  if (moduleName == "Speech") {
    return std::make_shared<NativeSpeechSpecJSI>(params);
  }
  return nullptr;
}

} // namespace facebook::react
