You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<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;