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

#include "HybridPlaybackEngineSpec.hpp"

namespace margelo::nitro::aviation {

  void HybridPlaybackEngineSpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridGetter("engineId", &HybridPlaybackEngineSpec::getEngineId);
      prototype.registerHybridGetter("state", &HybridPlaybackEngineSpec::getState);
      prototype.registerHybridGetter("mediaPosition", &HybridPlaybackEngineSpec::getMediaPosition);
      prototype.registerHybridGetter("currentItem", &HybridPlaybackEngineSpec::getCurrentItem);
      prototype.registerHybridGetter("currentItemSource", &HybridPlaybackEngineSpec::getCurrentItemSource);
      prototype.registerHybridGetter("isLive", &HybridPlaybackEngineSpec::getIsLive);
      prototype.registerHybridGetter("isPlaying", &HybridPlaybackEngineSpec::getIsPlaying);
      prototype.registerHybridGetter("isPaused", &HybridPlaybackEngineSpec::getIsPaused);
      prototype.registerHybridGetter("isLoaded", &HybridPlaybackEngineSpec::getIsLoaded);
      prototype.registerHybridGetter("availableSubtitleTracks", &HybridPlaybackEngineSpec::getAvailableSubtitleTracks);
      prototype.registerHybridGetter("availableAudioTracks", &HybridPlaybackEngineSpec::getAvailableAudioTracks);
      prototype.registerHybridGetter("volume", &HybridPlaybackEngineSpec::getVolume);
      prototype.registerHybridSetter("volume", &HybridPlaybackEngineSpec::setVolume);
      prototype.registerHybridGetter("rate", &HybridPlaybackEngineSpec::getRate);
      prototype.registerHybridSetter("rate", &HybridPlaybackEngineSpec::setRate);
      prototype.registerHybridGetter("muted", &HybridPlaybackEngineSpec::getMuted);
      prototype.registerHybridSetter("muted", &HybridPlaybackEngineSpec::setMuted);
      prototype.registerHybridGetter("loop", &HybridPlaybackEngineSpec::getLoop);
      prototype.registerHybridSetter("loop", &HybridPlaybackEngineSpec::setLoop);
      prototype.registerHybridGetter("queueItems", &HybridPlaybackEngineSpec::getQueueItems);
      prototype.registerHybridGetter("queueIndex", &HybridPlaybackEngineSpec::getQueueIndex);
      prototype.registerHybridGetter("queueCount", &HybridPlaybackEngineSpec::getQueueCount);
      prototype.registerHybridGetter("repeatMode", &HybridPlaybackEngineSpec::getRepeatMode);
      prototype.registerHybridSetter("repeatMode", &HybridPlaybackEngineSpec::setRepeatMode);
      prototype.registerHybridGetter("shuffleEnabled", &HybridPlaybackEngineSpec::getShuffleEnabled);
      prototype.registerHybridSetter("shuffleEnabled", &HybridPlaybackEngineSpec::setShuffleEnabled);
      prototype.registerHybridMethod("load", &HybridPlaybackEngineSpec::load);
      prototype.registerHybridMethod("loadAndPlay", &HybridPlaybackEngineSpec::loadAndPlay);
      prototype.registerHybridMethod("play", &HybridPlaybackEngineSpec::play);
      prototype.registerHybridMethod("pause", &HybridPlaybackEngineSpec::pause);
      prototype.registerHybridMethod("stop", &HybridPlaybackEngineSpec::stop);
      prototype.registerHybridMethod("seekTo", &HybridPlaybackEngineSpec::seekTo);
      prototype.registerHybridMethod("release", &HybridPlaybackEngineSpec::release);
      prototype.registerHybridMethod("activateDefaultDecoder", &HybridPlaybackEngineSpec::activateDefaultDecoder);
      prototype.registerHybridMethod("setQueue", &HybridPlaybackEngineSpec::setQueue);
      prototype.registerHybridMethod("addToQueue", &HybridPlaybackEngineSpec::addToQueue);
      prototype.registerHybridMethod("insertInQueue", &HybridPlaybackEngineSpec::insertInQueue);
      prototype.registerHybridMethod("removeFromQueue", &HybridPlaybackEngineSpec::removeFromQueue);
      prototype.registerHybridMethod("moveInQueue", &HybridPlaybackEngineSpec::moveInQueue);
      prototype.registerHybridMethod("clearQueue", &HybridPlaybackEngineSpec::clearQueue);
      prototype.registerHybridMethod("skipToNext", &HybridPlaybackEngineSpec::skipToNext);
      prototype.registerHybridMethod("skipToPrevious", &HybridPlaybackEngineSpec::skipToPrevious);
      prototype.registerHybridMethod("skipToIndex", &HybridPlaybackEngineSpec::skipToIndex);
      prototype.registerHybridMethod("setEnabledCommands", &HybridPlaybackEngineSpec::setEnabledCommands);
      prototype.registerHybridMethod("setCompactCommands", &HybridPlaybackEngineSpec::setCompactCommands);
      prototype.registerHybridMethod("setSkipIntervalMs", &HybridPlaybackEngineSpec::setSkipIntervalMs);
      prototype.registerHybridMethod("updateNowPlaying", &HybridPlaybackEngineSpec::updateNowPlaying);
      prototype.registerHybridMethod("overrideRemoteCommand", &HybridPlaybackEngineSpec::overrideRemoteCommand);
      prototype.registerHybridMethod("clearRemoteCommandOverride", &HybridPlaybackEngineSpec::clearRemoteCommandOverride);
      prototype.registerHybridMethod("setAudioSession", &HybridPlaybackEngineSpec::setAudioSession);
      prototype.registerHybridMethod("clearCallbacks", &HybridPlaybackEngineSpec::clearCallbacks);
      prototype.registerHybridMethod("onStateChange", &HybridPlaybackEngineSpec::onStateChange);
      prototype.registerHybridMethod("onMediaPositionChange", &HybridPlaybackEngineSpec::onMediaPositionChange);
      prototype.registerHybridMethod("onCurrentItemChange", &HybridPlaybackEngineSpec::onCurrentItemChange);
      prototype.registerHybridMethod("onRemoteCommand", &HybridPlaybackEngineSpec::onRemoteCommand);
      prototype.registerHybridMethod("onError", &HybridPlaybackEngineSpec::onError);
      prototype.registerHybridMethod("onPlaybackEnded", &HybridPlaybackEngineSpec::onPlaybackEnded);
      prototype.registerHybridMethod("onQueueEnd", &HybridPlaybackEngineSpec::onQueueEnd);
      prototype.registerHybridMethod("onQueueChange", &HybridPlaybackEngineSpec::onQueueChange);
      prototype.registerHybridMethod("onPlaybackMetric", &HybridPlaybackEngineSpec::onPlaybackMetric);
      prototype.registerHybridMethod("onTracksAvailable", &HybridPlaybackEngineSpec::onTracksAvailable);
      prototype.registerHybridMethod("onDomainEvent", &HybridPlaybackEngineSpec::onDomainEvent);
      prototype.registerHybridMethod("setInterruptionMode", &HybridPlaybackEngineSpec::setInterruptionMode);
      prototype.registerHybridMethod("setBecomingNoisyBehavior", &HybridPlaybackEngineSpec::setBecomingNoisyBehavior);
      prototype.registerHybridMethod("selectVideoTrack", &HybridPlaybackEngineSpec::selectVideoTrack);
      prototype.registerHybridMethod("selectSubtitleTrack", &HybridPlaybackEngineSpec::selectSubtitleTrack);
      prototype.registerHybridMethod("selectAudioTrack", &HybridPlaybackEngineSpec::selectAudioTrack);
      prototype.registerHybridMethod("clearCache", &HybridPlaybackEngineSpec::clearCache);
      prototype.registerHybridMethod("getCacheSize", &HybridPlaybackEngineSpec::getCacheSize);
      prototype.registerHybridMethod("isCached", &HybridPlaybackEngineSpec::isCached);
      prototype.registerHybridMethod("setCacheEnabled", &HybridPlaybackEngineSpec::setCacheEnabled);
      prototype.registerHybridMethod("preload", &HybridPlaybackEngineSpec::preload);
      prototype.registerHybridMethod("setPreloadConfig", &HybridPlaybackEngineSpec::setPreloadConfig);
      prototype.registerHybridMethod("setBufferConfig", &HybridPlaybackEngineSpec::setBufferConfig);
      prototype.registerHybridMethod("setCacheMaxSize", &HybridPlaybackEngineSpec::setCacheMaxSize);
      prototype.registerHybridMethod("setPreloadEnabled", &HybridPlaybackEngineSpec::setPreloadEnabled);
    });
  }

} // namespace margelo::nitro::aviation
