#if !defined(AFX_MICROANDOBJECTSPAGE_H__FA1253CF_DE04_11D2_9F40_00104B6833D0__INCLUDED_)
#define AFX_MICROANDOBJECTSPAGE_H__FA1253CF_DE04_11D2_9F40_00104B6833D0__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// MicroAndObjectsPage.h : header file
//


//Micro Structure used by the Supervisater
typedef struct MicroArrayElement{
	
	long	lId;
	double	dPosX;
	double	dPosY;
	double	dPosZ;
	double	dNormX;
	double	dNormY;
	double	dNormZ;
	double	dTransX;
	double	dTransY;
	double	dTransZ;

}MicroArrayElement;


typedef struct RegKeyMicPage{
	int iColMicId;
	int iColX;
	int iColY;
	int iColZ;
	int iColNx;
	int iColNy;
	int iColNz;
	int iColTx;
	int iColTy;
	int iColTz;
}RegKeyMicPage;



typedef struct RegKeyObjPage{
	int iColObjId;
	int iColX;
	int iColY;
	int iColZ;
	int iColFreq;
	int iColVol;
	int iColAsso;

}RegKeyObjPage;



//Object Structure used by Supervisater
typedef struct ObjectArrayElement{

	long	lId;
	unsigned char ucVol;
	double	dPosX;
	double	dPosY;
	double	dPosZ;

	double  dFreq;
	long	lDistToMicro;
	SND_tdstBlockEvent *evt_pstPtr;
	tdxId				evt_Id;
	tdeTypeEvent		evt_eType;
	long    lAsso;


///	SndReal     Freq;	    /*frequence relative du sample à jouer */
///	unsigned char ucPan;	/*panoramique (0 gauche à 127 droite)*/
///	unsigned char ucSpace;	/*parametre de spatialisation (codage DOLBY= 0 tout à l’avant, 127 tout à l’arriere)*/
///	unsigned char ucReverb;	/*parametre de la reverberation (tunnels...)*/
///	SndVector   Pos;	    /*position de la source associee*/
///	SndVector   Vit;	    /*vitesse de la source associee*/
///	int         iFlags ;	/*flags justifiant les champs (cf plus loin)*/
///	int         iNbLinks;    /*nombre d'element du champ suivant*/
///	MicroLink   astMicro[NB_LINK];	/*liste statique des liens micros<->objet*/
///	ExtraSoundParam	xExtra;	/*!!!!! this field should be never refered; it's only used to pre-size the struct SoundParam*/

}ObjectArrayElement;


/////////////////////////////////////////////////////////////////////////////
// CMicroAndObjectsPage dialog

class CMicroAndObjectsPage : public CPropertyPage
{
	DECLARE_DYNCREATE(CMicroAndObjectsPage)

// Construction
public:
	void SetObjectAssoMicroList(long lIndexObject);
	void AddObjectToList(long lIndex);
	void RefreshObjectList();
	void RefreshMicroList();
	void AddMicroToList(long lIndex);
	CMicroAndObjectsPage();
	~CMicroAndObjectsPage();

// Dialog Data
	//{{AFX_DATA(CMicroAndObjectsPage)
	enum { IDD = IDD_MICRO_OBJECTS_PAGE };
	CListCtrl	m_MicroAssoList;
	CListCtrl	m_ObjectList;
	CListCtrl	m_MicroList;
	double	m_dDopplerFactor;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CMicroAndObjectsPage)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CMicroAndObjectsPage)
	virtual BOOL OnInitDialog();
	afx_msg void OnDestroy();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MICROANDOBJECTSPAGE_H__FA1253CF_DE04_11D2_9F40_00104B6833D0__INCLUDED_)
