6 #ifndef _INC_cWaveData_H
7 #define _INC_cWaveData_H
15 #include "../WinAPI/cWinResource.h"
16 #include "../Math/cValueRange.h"
22 typedef BYTE FAR* P_WAV_DATA_t;
23 typedef const BYTE FAR* P_WAV_CDATA_t;
26 class GRAYLIB_LINK cWaveRange :
public cValueRange<WAVE_BLOCKS_t>
33 typedef cValueRange<WAVE_BLOCKS_t> SUPER_t;
61 :
public cListNodeRef<cWaveBuffer>
68 friend class cWaveData;
69 typedef cListNodeRef<cWaveBuffer> SUPER_t;
79 virtual ~cWaveBuffer();
85 virtual void onFinalRelease()
override;
87 P_WAV_DATA_t get_Data()
89 if (m_Data.get_Data() ==
nullptr)
93 return (P_WAV_DATA_t)m_Data.get_Data();
95 cWaveData* get_Parent()
const;
98 typedef cRefPtr<cWaveBuffer> cWaveBufferPtr;
105 cWaveBufferPtr m_Buffer;
106 P_WAV_DATA_t m_pBufferData;
110 : m_pBufferData(nullptr)
118 class GRAYLIB_LINK cWaveData :
public cListT<cWaveBuffer>
125 typedef cListT<cWaveBuffer> SUPER_t;
133 virtual void RemoveListNode(cListNodeBase* pObRec);
134 void BufferAdjustIndexes(cWaveBuffer* pBuffer);
138 virtual ~cWaveData();
146 cWaveFormat& ref_WaveFormat()
151 cWaveBufferPtr BufferLink(
WAVE_BLOCKS_t size, HGLOBAL hData, cWaveBuffer* pPrv);
157 inline cWaveData* cWaveBuffer::get_Parent()
const
166 template class GRAYLIB_LINK cListT<GrayLib::cWaveBuffer>;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define CHECKPTR_CAST(t, p)
Definition: PtrCast.h:50
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define CHEAPOBJECT_IMPL
Definition: cHeapObject.h:32
cListBase * get_Parent() const noexcept
Definition: cList.h:60
UINT WAVE_BLOCKS_t
Index in blocks (not bytes or samples) of current wave format in sound buffer.
Definition: cWaveFormat.h:67
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
ULONG_PTR STREAM_POS_t
NOT same as FILE_SIZE_t in 32 bit. Why not ?
Definition: cOSHandle.h:54
uint16 index
Definition: sample3.cpp:29