// supervis.h : main header file for the SUPERVIS DLL
//

#if !defined(AFX_SUPERVIS_H__2CEA4ECB_D8B0_11D2_9F3A_00104B6833D0__INCLUDED_)
#define AFX_SUPERVIS_H__2CEA4ECB_D8B0_11D2_9F3A_00104B6833D0__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"		// main symbols
#include "SuperVisSheet.h"	// Added by ClassView
#include "SuperVisThread.h"

//Mutex
#include <afxmt.h>

//ACP
#include "SCR.h"



//user defined window message
#define WM_USER_UPDATE_DATA_TRUE  0x00008001
#define WM_USER_UPDATE_DATA_FALSE  0x00008002
#define WM_USER_DESTROY_WINDOW 0x00008003
#define WM_USER_MIXERPAGE 0x00008004
#define WM_USER_TIMER 0x00008005
#define WM_SETNAME_EVENT 0x00008006
#define WM_SETNAME_FIRST_OCCUR_EVENT 0x00008007
#define WM_SETNAME_RES 0x00008010
#define WM_SETNAME_FIRST_OCCUR_RES 0x00008009
#define WM_INIT_AUTOMATION 0x00008008
#define WM_EXIT_AUTOMATION 0x00008011
#define WM_RESETLIST 0x00008012




//Size used for all array
#define ARRAY_SIZE 256
#define VOICE_MODULE_ARRAY_SIZE 2
#define MICROS_ARRAY_SIZE 5
#define VOLUME_LINE_ARRAY_SIZE 5

SndReal dbg_calcul_pseudo_d(SndReal a,SndReal b);
SndReal dbgSND_fn_rPseudoNormeVectorSnd(SndVector *v);


/////////////////////////////////////////////////////////////////////////////
// CSupervisApp
// See supervis.cpp for the implementation of this class
//

class CSupervisApp : public CWinApp
{
public:
	CEvent* AddHistoSyncEvent;
	CEvent* LaunchSuperVisEvent;
	CMutex* SuperVisMutex;
	long m_lProcessTime;
	int m_iActivePage;
	int m_iRefreshRate;
	int m_iWindowLeft;
	int m_iWindowTop;
	int m_iWindowRight;
	int m_iWindowBottom;
	RegKeyVoicePage m_RegKeyVoicePage;
	RegKeyWavVoicePage m_RegKeyWavVoicePage;
	RegKeyThemePage m_RegKeyThemePage;
	RegKeyObjPage m_RegKeyObjPage;
	RegKeyMicPage m_RegKeyMicPage;
	RegKeyEventPage m_EventPageRegKeys;
	RegKeyMixerPage m_MixerPageRegKeys;
	BOOL m_bWindowOnTop;
	BOOL m_bWavVoicePageLoaded;
	CPtrArray m_apVirtualVoiceModule;
	CPtrArray m_apVolumeLine;
	CPtrArray m_apObjects;
	CPtrArray m_apEventHistoArray;
	CPtrArray m_apFirstOccurEventHistoArray;
	CPtrArray m_apResources;
	CPtrArray m_apFirstOccurResources;
	CPtrArray m_apMicros;
	CPtrArray m_apWavVoices;
	BOOL m_bSuperVisaterActive;
	CString m_cBinaryLCBFileTitle;
	CString m_cBinaryLCBPath;
	CString m_cLCBPath;
	CSuperVisThread * m_SuperVisThread;
	CSupervisApp();


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSupervisApp)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	//}}AFX_VIRTUAL

	//{{AFX_MSG(CSupervisApp)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_SUPERVIS_H__2CEA4ECB_D8B0_11D2_9F3A_00104B6833D0__INCLUDED_)
