// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "inputDef.hpp" #include "deferredUpdater.hpp" namespace VideoStitch { namespace Core { class InputDefinitionUpdater : public InputDefinition, public DeferredUpdater<InputDefinition> { public: explicit InputDefinitionUpdater(const InputDefinition &inputDefinition); // Acquires ownership explicit InputDefinitionUpdater(InputDefinition *inputDefinition); virtual InputDefinition *clone() const override; virtual Ptv::Value *serialize() const override; virtual bool operator==(const InputDefinition &other) const override; virtual bool validate(std::ostream &os) const override; virtual std::string getDisplayName() const override; virtual const Ptv::Value &getReaderConfig() const override; virtual const std::string &getMaskData() const override; virtual bool deletesMaskedPixels() const override; virtual const MaskPixelData &getMaskPixelData() const override; virtual const unsigned char *getMaskPixelDataIfValid() const override; virtual bool validateMask() const override; virtual group_t getGroup() const override; virtual void setGroup(InputDefinition::group_t group) 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 int64_t getCroppedWidth() const override; virtual int64_t getCroppedHeight() const override; virtual bool getUseMeterDistortion() const override; virtual Format getFormat() const override; virtual void setFormat(Format) override; virtual LensModelCategory getLensModelCategory() const override; virtual bool hasCroppedArea() const override; virtual frameid_t getFrameOffset() const override; virtual double getSynchroCost() const override; virtual int getStack() const override; virtual void setStack(int value) override; virtual void setFilename(const std::string &fileName) override; virtual void setReaderConfig(Ptv::Value *config) override; virtual void setMaskData(const std::string &maskData) override; virtual void setDeletesMaskedPixels(bool value) override; virtual bool setMaskPixelData(const char *buffer, uint64_t maskWidth, uint64_t maskHeight) override; virtual void setFrameOffset(int fo) override; virtual void setSynchroCost(double cost) override; virtual void resetRedCB() override; virtual CurveTemplate<double> *displaceRedCB(CurveTemplate<double> *newCurve) override; virtual const CurveTemplate<double> &getRedCB() const override; virtual void replaceRedCB(CurveTemplate<double> *newCurve) override; virtual CurveTemplate<double> *displaceGreenCB(CurveTemplate<double> *newCurve) override; virtual void resetGreenCB() override; virtual const CurveTemplate<double> &getGreenCB() const override; virtual void replaceGreenCB(CurveTemplate<double> *newCurve) override; virtual void resetBlueCB() override; virtual void replaceBlueCB(CurveTemplate<double> *newCurve) override; virtual CurveTemplate<double> *displaceBlueCB(CurveTemplate<double> *newCurve) override; virtual const CurveTemplate<double> &getBlueCB() const override; virtual void resetExposureValue() override; virtual void replaceExposureValue(CurveTemplate<double> *newCurve) override; virtual CurveTemplate<double> *displaceExposureValue(CurveTemplate<double> *newCurve) override; virtual const CurveTemplate<double> &getExposureValue() const override; virtual CurveTemplate<GeometryDefinition> *displaceGeometries(CurveTemplate<GeometryDefinition> *newCurve) override; virtual void replaceGeometries(CurveTemplate<GeometryDefinition> *newCurve) override; virtual const CurveTemplate<GeometryDefinition> &getGeometries() const override; virtual void resetGeometries(const double HFOV) override; virtual const Ptv::Value *getPreprocessors() const override; virtual void setIsEnabled(bool state) override; virtual bool getIsEnabled() const override; virtual bool getIsVideoEnabled() const override; virtual bool getIsAudioEnabled() const override; virtual void setUseMeterDistortion(bool meter) override; virtual PhotoResponse getPhotoResponse() const override; virtual double getEmorA() const override; virtual double getEmorB() const override; virtual double getEmorC() const override; virtual double getEmorD() const override; virtual double getEmorE() const override; virtual double getGamma() const override; virtual void setEmorA(double emorA) override; virtual void setEmorB(double emorB) override; virtual void setEmorC(double emorC) override; virtual void setEmorD(double emorD) override; virtual void setEmorE(double emorE) override; virtual void setEmorPhotoResponse(double emorA, double emorB, double emorC, double emorD, double emorE) override; virtual void resetPhotoResponse() override; virtual void setGamma(double gamma) override; virtual double getVignettingCoeff0() const override; virtual double getVignettingCoeff1() const override; virtual double getVignettingCoeff2() const override; virtual double getVignettingCoeff3() const override; virtual double getVignettingCenterX() const override; virtual double getVignettingCenterY() const override; virtual void setVignettingCoeff0(double vignettingCoeff0) override; virtual void setVignettingCoeff1(double vignettingCoeff1) override; virtual void setVignettingCoeff2(double vignettingCoeff2) override; virtual void setVignettingCoeff3(double vignettingCoeff3) override; virtual void setVignettingCenterX(double vignettingCenterX) override; virtual void setVignettingCenterY(double vignettingCenterY) override; virtual void setRadialVignetting(double vignettingCoeff0, double vignettingCoeff1, double vignettingCoeff2, double vignettingCoeff3, double vignettingCenterX, double vignettingCenterY) override; virtual void resetVignetting() override; virtual double getInputCenterX() const override; virtual double getInputCenterY() const override; virtual double getCenterX(const GeometryDefinition &geometry) const override; virtual double getCenterY(const GeometryDefinition &geometry) const override; virtual int64_t getCropLeft() const override; virtual int64_t getCropRight() const override; virtual int64_t getCropTop() const override; virtual int64_t getCropBottom() const override; virtual void setCropLeft(int64_t left) override; virtual void setCropRight(int64_t right) override; virtual void setCropTop(int64_t top) override; virtual void setCropBottom(int64_t bottom) override; virtual void setCrop(int64_t left, int64_t right, int64_t top, int64_t bottom) override; private: std::unique_ptr<InputDefinition> inputDefinition; }; } // namespace Core } // namespace VideoStitch