dotXSIParam.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Softimage 3D Games & 3D Bridge team
00004 //
00005 // (c) Copyright 1999-2002 Avid Technology, Inc. . All rights reserved.
00006 //
00007 // dotXSIParam.h | Main header file for CdotXSIParam implementation
00008 //***************************************************************************************
00009 
00010 /****************************************************************************************
00011 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00012 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE
00013 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00014 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00015 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00016 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE .
00017 
00018 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00019 
00020 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00021 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00022 trademarks contained herein are the property of their respective owners. 
00023 ****************************************************************************************/
00024 
00025 //***************************************************************************************
00026 // Defines
00027 //***************************************************************************************
00028 #ifndef __DOTXSIPARAM_H
00029 #define __DOTXSIPARAM_H
00030 
00031 //***************************************************************************************
00032 // Includes
00033 //***************************************************************************************
00034 #include "SIBCNode.h"
00035 #include "SIBCString.h"
00036 
00037 //***************************************************************************************
00038 // CdotXSIParam | holds a prameter value of all the supported types (SI_TinyVariant)
00039 // public | CSIBCNode
00040 //***************************************************************************************
00041 
00043 
00047 class XSIEXPORT CdotXSIParam : public CSIBCNode
00048 {
00049 public:
00050 
00051     enum 
00052     {
00053         UNFORMATTED = 1
00054     };
00055 
00059     CdotXSIParam();
00060 
00070     CdotXSIParam( CSIBCString *i_sName, SI_Int i_nVariantType );
00071 
00081     CdotXSIParam( SI_Char *i_sName, SI_Int i_nVariantType );
00082 
00095     CdotXSIParam( CSIBCString *i_sName, SI_Int i_nVariantType, SI_Int i_nTweakType );
00096 
00109     CdotXSIParam( SI_Char *i_sName, SI_Int i_nVariantType, SI_Int i_nTweakType );
00110 
00120     CdotXSIParam( CSIBCString *i_sName, SI_TinyVariant i_vValue );
00121 
00131     CdotXSIParam( SI_Char *i_sName, SI_TinyVariant i_vValue );
00132 
00136     virtual ~CdotXSIParam();
00137 
00141     SI_Void GetValue( SI_TinyVariant *o_vValue );
00142 
00147     SI_Void SetValue( SI_TinyVariant i_vValue );
00148 
00153     SI_TinyVariant* GetVariantPtr(){ return &m_vValue; }                                // Get Ptr to the stored variant.
00154 
00159     SI_Void InitializeVarValue( SI_TinyVariant *i_pValue );
00160 
00164     SI_Void InitializeDefaultVarValue();
00165     
00166     CdotXSIParam*   Clone();
00167     void            Serialize(CSIBCString& in_szBuffer);
00168     void            UnSerialize(CSIBCString& in_szBuffer);
00169 
00170 private:
00171     SI_Void ClearVariant();                                     // Clears the content of the variant
00172 
00173     SI_TinyVariant  m_vValue;
00174 };
00175 
00176 //***************************************************************************************
00177 // Global Functions
00178 //***************************************************************************************
00179 XSIEXPORT CdotXSIParam* CreatedotXSIParam();                                // Allocate a CdotXSIParam
00180 XSIEXPORT void          AllocateLocalXSIArray(SI_TinyVariant*, SI_Long);    // Allocate a Val array in the biven TinyVariant
00181 CSIBCString             GetNextSerializedToken ( CSIBCString &in_szString );
00182 #endif // __DOTXSIPARAM_H