/// /// HybridOmniEventMapSpec.hpp /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © Marc Rousavy @ Margelo /// #pragma once #if __has_include() #include #else #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif // Forward declaration of `NumberProperty` to properly resolve imports. namespace margelo::nitro::omni { enum class NumberProperty; } // Forward declaration of `BoolProperty` to properly resolve imports. namespace margelo::nitro::omni { enum class BoolProperty; } // Forward declaration of `PlayerStatus` to properly resolve imports. namespace margelo::nitro::omni { enum class PlayerStatus; } // Forward declaration of `Track` to properly resolve imports. namespace margelo::nitro::omni { struct Track; } // Forward declaration of `Rendition` to properly resolve imports. namespace margelo::nitro::omni { struct Rendition; } #include "NumberProperty.hpp" #include #include "BoolProperty.hpp" #include "PlayerStatus.hpp" #include #include "Track.hpp" #include #include "Rendition.hpp" namespace margelo::nitro::omni { using namespace margelo::nitro; /** * An abstract base class for `OmniEventMap` * Inherit this class to create instances of `HybridOmniEventMapSpec` in C++. * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. * @example * ```cpp * class HybridOmniEventMap: public HybridOmniEventMapSpec { * public: * HybridOmniEventMap(...): HybridObject(TAG) { ... } * // ... * }; * ``` */ class HybridOmniEventMapSpec: public virtual HybridObject { public: // Constructor explicit HybridOmniEventMapSpec(): HybridObject(TAG) { } // Destructor ~HybridOmniEventMapSpec() override = default; public: // Properties public: // Methods virtual void addStateListener(NumberProperty key, const std::function& cb) = 0; virtual void removeStateListener(NumberProperty key, const std::function& cb) = 0; virtual void addStateBoolListener(BoolProperty key, const std::function& cb) = 0; virtual void removeStateBoolListener(BoolProperty key, const std::function& cb) = 0; virtual void addPlayerStatusListener(const std::function& cb) = 0; virtual void removePlayerStatusListener(const std::function& cb) = 0; virtual void addOnEndListener(const std::function& cb) = 0; virtual void removeOnEndListener(const std::function& cb) = 0; virtual void addOnPrevListener(const std::function& cb) = 0; virtual void removeOnPrevListener(const std::function& cb) = 0; virtual void addOnNextListener(const std::function& cb) = 0; virtual void removeOnNextListener(const std::function& cb) = 0; virtual void addOnErrorListener(const std::function& cb) = 0; virtual void removeOnErrorListener(const std::function& cb) = 0; virtual void addOnAudioFocusChangeListener(const std::function& cb) = 0; virtual void removeOnAudioFocusChangeListener(const std::function& cb) = 0; virtual void addOnVideoTrackChangeListener(const std::function& cb) = 0; virtual void removeOnVideoTrackChangeListener(const std::function& cb) = 0; virtual void addOnAudioTrackChangeListener(const std::function& cb) = 0; virtual void removeOnAudioTrackChangeListener(const std::function& cb) = 0; virtual void addOnSubtitleChangeListener(const std::function& /* track */)>& cb) = 0; virtual void removeOnSubtitleChangeListener(const std::function& /* track */)>& cb) = 0; virtual void addOnRenditionChangeListener(const std::function& cb) = 0; virtual void removeOnRenditionChangeListener(const std::function& cb) = 0; protected: // Hybrid Setup void loadHybridMethods() override; protected: // Tag for logging static constexpr auto TAG = "OmniEventMap"; }; } // namespace margelo::nitro::omni