#ifndef CARHD_INCLUDED
	#define CARHD_INCLUDED

#include <bncs_script_helper.h>

#ifdef WIN32
	#ifdef DOEXPORT_SCRIPT
		#define EXPORT_SCRIPT __declspec(dllexport) 
	#else
		#define EXPORT_SCRIPT 
	#endif
#else 
	#define EXPORT_SCRIPT
#endif
 
class CARHD : public bncs_script_helper
{
public:
	CARHD( bncs_client_callback * parent, const char* path );
	virtual ~CARHD();

	void buttonCallback( buttonNotify *b );
	int revertiveCallback( revertiveNotify * r );
	void databaseCallback( revertiveNotify * r );
	bncs_string parentCallback( parentNotify *p );
	void timerCallback( int );
	
private:
	bncs_string m_myParam;
	bncs_string m_instance;
	bncs_config myVals;
	
	int car_hdsdi;				// Device ID for the CAR HD-SDI router

	bool source_selected;		// Set true when a source select button is active
	bool dest_selected;			// Set true when a destination button is active
	bool takeEnabled;
	bool takeState;				// Records which statesheet is currently active on the TAKE button.

	int source_index;			// Index for the selected source
	int dest_index;				// Index for the selected destination
	int myFirstSDIOS;
	int myLastSDIOS;

	bncs_string ws_sl;
	bncs_string my_classroom;
	bncs_string selected_os;

	// Local Support functions
	void checkTake(void);

};


#endif // CARHD_INCLUDED