TuttleOFX  1
DPXWriterPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_DPXWRITER_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_DPXWRITER_PLUGIN_HPP_
00003 
00004 #include <tuttle/plugin/context/WriterPlugin.hpp>
00005 #include "DPXWriterDefinitions.hpp"
00006 
00007 #include <libdpx/DPX.h>
00008 
00009 namespace tuttle {
00010 namespace plugin {
00011 namespace dpx {
00012 namespace writer {
00013 
00014 struct DPXWriterProcessParams
00015 {
00016         std::string               _filepath;       ///< filepath
00017         std::string               _project;        ///< project metadata
00018         std::string               _copyright;      ///< copyright metadata
00019         ETuttlePluginBitDepth     _bitDepth;       ///< Output bit depth
00020         size_t                    _iBitDepth;      ///< Int value of output bit depth
00021         ::dpx::Descriptor         _descriptor;     ///< Components type
00022         ::dpx::Characteristic     _transfer;
00023         ::dpx::Characteristic     _colorimetric;
00024         ::dpx::Packing            _packed;         ///< Bit streaming packing
00025         ::dpx::Encoding           _encoding;
00026         ::dpx::Orientation        _orientation;
00027         bool                      _swapEndian;     ///< set endianness
00028 
00029 };
00030 
00031 /**
00032  * @brief
00033  *
00034  */
00035 class DPXWriterPlugin : public WriterPlugin
00036 {
00037 public:
00038         DPXWriterPlugin( OfxImageEffectHandle handle );
00039 
00040 public:
00041         DPXWriterProcessParams getProcessParams( const OfxTime time );
00042 
00043         void changedParam( const OFX::InstanceChangedArgs& args, const std::string& paramName );
00044 
00045         void render( const OFX::RenderArguments& args );
00046 
00047 protected:
00048         OFX::ChoiceParam*    _bitDepth;        ///< Dpx bit depth
00049         OFX::ChoiceParam*    _descriptor;      ///< Dpx descriptor
00050         OFX::ChoiceParam*    _transfer;        ///< Dpx transfer
00051         OFX::ChoiceParam*    _colorimetric;    ///< Dpx colorimetric
00052         OFX::ChoiceParam*    _packed;          ///< Dpx packed method
00053         OFX::BooleanParam*   _swapEndian;      ///< Dpx swap endian
00054         OFX::ChoiceParam*    _encoding;        ///< Dpx encoding
00055         OFX::ChoiceParam*    _orientation;     ///< Dpx orientation
00056         OFX::StringParam*    _project;         ///< Dpx metadata Project
00057         OFX::StringParam*    _copyright;       ///< Dpx metadata Copyright
00058 };
00059 
00060 }
00061 }
00062 }
00063 }
00064 
00065 #endif