TuttleOFX
1
|
00001 #ifndef _TUTTLE_HOST_OFX_PARAM_PARAMSTRING_HPP_ 00002 #define _TUTTLE_HOST_OFX_PARAM_PARAMSTRING_HPP_ 00003 00004 #include "OfxhParam.hpp" 00005 #include "OfxhParamDescriptor.hpp" 00006 #include "OfxhParamSet.hpp" 00007 #include "OfxhKeyframeParam.hpp" 00008 00009 namespace tuttle { 00010 namespace host { 00011 namespace ofx { 00012 namespace attribute { 00013 00014 class OfxhParamString 00015 : public OfxhParam 00016 , public OfxhKeyframeParam 00017 { 00018 mutable std::string _returnValue; ///< location to hold temporary return value. Should delegate this to implementation!!! 00019 00020 public: 00021 typedef std::string BaseType; 00022 OfxhParamString( const OfxhParamDescriptor& descriptor, const std::string& name, OfxhParamSet& setInstance ) : OfxhParam( descriptor, name, setInstance ) {} 00023 00024 const std::string& getStringMode() const; 00025 00026 virtual void getValue( std::string& ) const OFX_EXCEPTION_SPEC = 0; 00027 virtual void getValueAtTime( const OfxTime time, std::string& ) const OFX_EXCEPTION_SPEC = 0; 00028 virtual void setValue( const std::string&, const EChange change ) OFX_EXCEPTION_SPEC = 0; 00029 virtual void setValueAtTime( const OfxTime time, const std::string&, const EChange change ) OFX_EXCEPTION_SPEC = 0; 00030 00031 /// implementation of var args function 00032 virtual void getV( va_list arg ) const OFX_EXCEPTION_SPEC; 00033 00034 /// implementation of var args function 00035 virtual void getV( const OfxTime time, va_list arg ) const OFX_EXCEPTION_SPEC; 00036 00037 /// implementation of var args function 00038 virtual void setV( va_list arg, const EChange change ) OFX_EXCEPTION_SPEC; 00039 00040 /// implementation of var args function 00041 virtual void setV( const OfxTime time, va_list arg, const EChange change ) OFX_EXCEPTION_SPEC; 00042 00043 bool paramTypeHasData() const { return true; } 00044 00045 std::size_t getHashAtTime( const OfxTime time ) const; 00046 00047 std::ostream& displayValues( std::ostream& os ) const 00048 { 00049 os << getStringValue(); 00050 return os; 00051 } 00052 }; 00053 00054 } 00055 } 00056 } 00057 } 00058 00059 #endif 00060