///
/// JHybridPluginManagerSpec.cpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © 2025 Marc Rousavy @ Margelo
///

#include "JHybridPluginManagerSpec.hpp"





namespace margelo::nitro::videodrm {

  jni::local_ref<JHybridPluginManagerSpec::jhybriddata> JHybridPluginManagerSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
    return makeCxxInstance(jThis);
  }

  void JHybridPluginManagerSpec::registerNatives() {
    registerHybrid({
      makeNativeMethod("initHybrid", JHybridPluginManagerSpec::initHybrid),
    });
  }

  size_t JHybridPluginManagerSpec::getExternalMemorySize() noexcept {
    static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
    return method(_javaPart);
  }

  void JHybridPluginManagerSpec::dispose() noexcept {
    static const auto method = javaClassStatic()->getMethod<void()>("dispose");
    method(_javaPart);
  }

  // Properties
  bool JHybridPluginManagerSpec::getIsEnabled() {
    static const auto method = javaClassStatic()->getMethod<jboolean()>("isEnabled");
    auto __result = method(_javaPart);
    return static_cast<bool>(__result);
  }

  // Methods
  void JHybridPluginManagerSpec::enable() {
    static const auto method = javaClassStatic()->getMethod<void()>("enable");
    method(_javaPart);
  }
  void JHybridPluginManagerSpec::disable() {
    static const auto method = javaClassStatic()->getMethod<void()>("disable");
    method(_javaPart);
  }

} // namespace margelo::nitro::videodrm
