00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Dominic Laflamme 00004 // 00005 // (c) Copyright 2001 Avid Technology, Inc. . All rights reserved. 00006 // 00007 // 00008 // @doc 00009 // 00010 // @module CXSIFilter.h | Main header file for CXSIFilter implementation 00011 //*************************************************************************************** 00012 00013 /**************************************************************************************** 00014 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS". 00015 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 00016 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 00017 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 00018 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 00019 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 00020 00021 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 00022 00023 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 00024 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other 00025 trademarks contained herein are the property of their respective owners. 00026 ****************************************************************************************/ 00027 #ifndef _CXSIFILTER_H_ 00028 #define _CXSIFILTER_H_ 00029 00030 #include <SIBCUtil.h> 00031 #include <SIBCString.h> 00032 00033 #define SI_MEMORY_FILE_NAME "3DMEMORYBUFFER" 00034 00036 00041 class CXSIFilter 00042 { 00043 public: 00044 00048 CXSIFilter(); 00052 virtual ~CXSIFilter(); 00053 00054 00060 void SetName ( const CSIBCString & in_szName ); 00061 00065 CSIBCString GetName () ; 00066 00070 void SetID ( const CSIBCString & in_szID ); 00074 CSIBCString& GetID () ; 00075 00079 virtual void SetHeader ( CSIBCString in_szHeader ); 00080 00084 CSIBCString GetHeader () ; 00089 virtual void WriteHeader(); 00090 00095 virtual int Open ( CSIBCString in_szFilename, _SI_FILE_MODE in_Mode ); 00098 virtual int Close (); 00099 00100 00106 virtual int Read ( SI_Char * out_pBuffer, SI_Long in_lSize ); 00112 virtual int Write( SI_Char * in_pBuffer, SI_Long in_lSize ); 00113 00117 virtual int Eof(); 00118 00122 virtual int Tell(); 00123 00127 void SetSubFilter ( CXSIFilter *in_pSub ) { m_pSubFilter = in_pSub;} ; 00131 CXSIFilter *GetSubFilter () { return m_pSubFilter ; }; 00132 00133 int FillBuffer ( CSIBCString in_szFilename ); 00134 protected: 00135 00136 _SI_FILE m_pStream; 00137 CSIBCString m_szHeader; 00138 CSIBCString m_szName; 00139 CSIBCString m_szID; 00140 CXSIFilter *m_pSubFilter; 00141 SI_Long m_FileSize; 00142 SI_Char *m_pBuffer; 00143 SI_Long m_lSubFilterPos; 00144 SI_Bool m_bEof; 00145 00146 }; 00147 00148 #endif