#if !defined(AFX_MIXERPAGE_H__FA1253CE_DE04_11D2_9F40_00104B6833D0__INCLUDED_)
#define AFX_MIXERPAGE_H__FA1253CE_DE04_11D2_9F40_00104B6833D0__INCLUDED_

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

#include "sndres.h"
#include "MyResListCtrl.h"
//#include "soundeditor.h"	// Added by ClassView

//Ressource structure use by the Supervisater
typedef struct RessourceElement{
	SYSTEMTIME time;
	unsigned long ulId;
	tdeTypeResource tdeType;
	unsigned char ucVolume;
	CString cResBankName;
	CString cResName;
	tdstBlockResourceMem *res;
	CString	cInfo;
	SND_tduRefEvt evt;
}ResourceElement;


//Ressource structure use by the Supervisater
typedef struct RegKeyMixerPage{
	int iCheckBankId;
	int iCheckResId;
	BOOL bCheckFirstOccur;
	int iColTime;
	int iColResName;
	int iColResId;
	int iColBankName;
	int iColBankId;
	int iColType;
	int iColVol;
	int iColInfo;
}RegKeyMixerPage;


/////////////////////////////////////////////////////////////////////////////
// CMixerPage dialog

class CMixerPage : public CPropertyPage
{
	DECLARE_DYNCREATE(CMixerPage)

// Construction
public:
	ResourceElement m_SelectedResElement;
	void ResetReslistButton();
	void SetResName(long lIndex);
	void SetFirstOccurResName(long lIndex);
	unsigned long m_ulSelectedResourceArrayIndex;
	void SetEditBoxVolume(unsigned long _ulIndex);
	long AddToFirstResOccurArray(ResourceElement* res);
	void FilterAndDisplayFirstOccurRes(long lIndex);
	void FilterAndDisplayRes(long lIndex);
	void RefreshResList();
	BOOL m_bPauseProcess;
	CMixerPage();
	~CMixerPage();

// Dialog Data
	//{{AFX_DATA(CMixerPage)
	enum { IDD = IDD_MIXER_PAGE };
	CSliderCtrl	m_VolumeSlider;
	CMyResListCtrl m_ResList;
	CString	m_cSelectedRes;
	BOOL	m_bDebugBreak;
	BOOL	m_bFirstOccurence;
	BOOL	m_bShowBankWithId;
	BOOL	m_bShowResWithId;
	long	m_lBankId;
	long	m_lResId;
	long	m_ulSelectedResVol;
	CString	m_cSelectedResName;
	//}}AFX_DATA


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

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CMixerPage)
	virtual BOOL OnInitDialog();
	afx_msg void OnSave();
	afx_msg void OnPauseResButton();
	afx_msg void OnResetReslistButton();
	afx_msg void OnCheckDebugOnRes();
	afx_msg void OnCheckFirstResOccur();
	afx_msg void OnCheckRes();
	afx_msg void OnCheckResBank();
	afx_msg void OnChangeEditResBankId();
	afx_msg void OnChangeEditResId();
	afx_msg void OnVolMoins();
	afx_msg void OnVolPlus();
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnDestroy();
	afx_msg void OnPlay();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

};

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

#endif // !defined(AFX_MIXERPAGE_H__FA1253CE_DE04_11D2_9F40_00104B6833D0__INCLUDED_)
