#ifndef _SNDLD_BN_H_
#define _SNDLD_BN_H_

//***************************************************************
//*																*
//*					SNDLD_S.H	Version 1.0						*
//*																*
//*		Private sound data load&reference functions 			*
//*					Binary version								*
//*																*
//***************************************************************

#ifdef __cplusplus			 
extern "C" {
#endif // __cplusplus

#ifdef M_SET_ALIGNMENT
#pragma pack(push)
#pragma pack(M_SET_ALIGNMENT)
#endif

#ifndef NO_ACP_LDBIN

typedef struct _tdstSndBankDescriptorElement *p_tdstSndBankDescriptorElement;

SNDLST2_M_DynamicUseListOf(p_tdstSndBankDescriptorElement);

struct _tdstSndBankDescriptorElement
{
	int iId;					//Id of bank
	unsigned long iLevel;		//level (for StartLoadBank2
	char czFileName[13];		//file name of bank
	long lBNMCheckVersion;		//BNM version (value of CheckVersion)
	//signed long ulDataSize;	//size of
	tdeBankState eState;		//current of bank (loading, to be loaded...) 
	tdstSndBankHead* pData;		//pointer to main data (malloc)
	void *pDataPrimary;			//pointer to primary data (CPA list for Theme, Seq...)
	void *pDataMPEG;			//pointer to MPEG data
	void *pDataMidi;			//pointer to Midi data
	void *pDataSample;			//pointer to Sampel data
	void *pDataADPCM;			//pointer to Sampel data
	SNDLST2_M_DynamicElementDeclaration(p_tdstSndBankDescriptorElement)
} tdstSndBankDescriptorElement;

extern tdstSndBankDescriptorList SND_g_dBankDescriptionList;
p_tdstSndBankDescriptorElement fn_pstGetBankDescriptor(int _iBankNum);

#endif //NO_ACP_LDBIN

#ifdef M_SET_ALIGNMENT
#pragma pack(pop)
#endif


#ifdef __cplusplus
}
#endif // __cplusplus

#endif //_SNDLD_BN_H_
