// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "libvideostitch/overlayInputDef.hpp" #include "deferredUpdater.hpp" namespace VideoStitch { namespace Core { class OverlayInputDefinitionUpdater : public OverlayInputDefinition, public DeferredUpdater { public: explicit OverlayInputDefinitionUpdater(const OverlayInputDefinition &overlayInputDefinition); explicit OverlayInputDefinitionUpdater(OverlayInputDefinition *overlayInputDefinition); virtual OverlayInputDefinition *clone() const override; virtual Ptv::Value *serialize() const override; virtual bool operator==(const OverlayInputDefinition &other) const override; virtual bool validate(std::ostream &os) const override; virtual const Ptv::Value &getReaderConfig() const override; virtual int64_t getWidth() const override; virtual int64_t getHeight() const override; virtual void setWidth(int64_t int64) override; virtual void setHeight(int64_t int64) override; virtual frameid_t getFrameOffset() const override; virtual void setReaderConfig(Ptv::Value *config) override; virtual void setFrameOffset(int fo) override; virtual void setFilename(const std::string &fileName) override; virtual std::string getDisplayName() const override; virtual bool getGlobalOrientationApplied() const override; virtual void setGlobalOrientationApplied(const bool status) override; virtual const CurveTemplate &getScaleCurve() const override; virtual CurveTemplate *displaceScaleCurve(CurveTemplate *newCurve) override; virtual void resetScaleCurve() override; virtual void replaceScaleCurve(CurveTemplate *newCurve) override; virtual const CurveTemplate &getTransXCurve() const override; virtual CurveTemplate *displaceTransXCurve(CurveTemplate *newCurve) override; virtual void resetTransXCurve() override; virtual void replaceTransXCurve(CurveTemplate *newCurve) override; virtual const CurveTemplate &getTransYCurve() const override; virtual CurveTemplate *displaceTransYCurve(CurveTemplate *newCurve) override; virtual void resetTransYCurve() override; virtual void replaceTransYCurve(CurveTemplate *newCurve) override; virtual const CurveTemplate &getTransZCurve() const override; virtual CurveTemplate *displaceTransZCurve(CurveTemplate *newCurve) override; virtual void resetTransZCurve() override; virtual void replaceTransZCurve(CurveTemplate *newCurve) override; virtual const CurveTemplate &getAlphaCurve() const override; virtual CurveTemplate *displaceAlphaCurve(CurveTemplate *newCurve) override; virtual void resetAlphaCurve() override; virtual void replaceAlphaCurve(CurveTemplate *newCurve) override; virtual const CurveTemplate> &getRotationCurve() const override; virtual CurveTemplate> *displaceRotationCurve( CurveTemplate> *newCurve) override; virtual void resetRotationCurve() override; virtual void replaceRotationCurve(CurveTemplate> *newCurve) override; private: std::unique_ptr overlayInputDefinition; }; } // namespace Core } // namespace VideoStitch