|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: SegY<67>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-4-1
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
namespace NCube
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
/*!\brief Raw binary data access. */
|
|
|
|
|
|
class AFX_EXT_CLASS CDataBuffer
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CDataBuffer(void);
|
|
|
|
|
|
~CDataBuffer(void);
|
|
|
|
|
|
|
|
|
|
|
|
inline bool IsEmpty() const;
|
|
|
|
|
|
inline int GetCount() const { return m_nSampleNum; }
|
|
|
|
|
|
inline int GetBytesPerSample() { return m_nSampleBytes; }
|
|
|
|
|
|
inline int GetBytesLength() { return m_nSampleNum * m_nSampleBytes; }
|
|
|
|
|
|
|
|
|
|
|
|
inline BYTE* GetData() { return m_pData; }
|
|
|
|
|
|
inline short* GetDataShort() { return (short*)GetData(); }
|
|
|
|
|
|
inline long * GetDataLong() { return (long*)GetData(); }
|
|
|
|
|
|
inline float* GetDataFloat() { return (float*)GetData(); }
|
|
|
|
|
|
inline char * GetDataChar() { return (char*)GetData(); }
|
|
|
|
|
|
inline double* GetDataDouble() { return (double*)GetData(); }
|
|
|
|
|
|
|
|
|
|
|
|
inline BYTE* GetData(int nIndex) {return m_pData + (nIndex*m_nSampleBytes);}//<2F><><EFBFBD>ص<EFBFBD>nIndex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> 0<nIndex<m_nSampleNum
|
|
|
|
|
|
|
|
|
|
|
|
CDataBuffer& operator=(CDataBuffer& dbf);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣬<D5BC><E4A3AC>ֱ<EFBFBD><D6B1><EFBFBD>滻m_pData, <20><>Ҫ<EFBFBD><D2AA>ǰ<EFBFBD>ͷ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>Clear
|
|
|
|
|
|
void Attach(BYTE* pData, int nSampleNum, int nSampleBytes);
|
|
|
|
|
|
BYTE* Detach(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ڲ<EFBFBD><DAB2>ÿ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Create(int num, int samBytes);
|
|
|
|
|
|
virtual void Clear(void);
|
|
|
|
|
|
void Resize(int num, int samBytes, bool copydata=true);
|
|
|
|
|
|
void Zero(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int m_nSampleBytes; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<D6BD><DAB3><EFBFBD>
|
|
|
|
|
|
int m_nSampleNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE* m_pData; //<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
using namespace NCube;
|