#ifndef pseudo_INCLUDED
	#define pseudo_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
 
#define MATRIXSIZE 16

class pseudo : public bncs_script_helper
{
public:
	pseudo( bncs_client_callback * parent, const char* path );
	virtual ~pseudo();

	void buttonCallback( buttonNotify *b );
	int revertiveCallback( revertiveNotify * r );
	void databaseCallback( revertiveNotify * r );
	bncs_string parentCallback( parentNotify *p );
	void timerCallback( int );
	
private:
	int matrix_id;						// BNCS driver ID of our pseudo matrix
	int gpi_id;							// BNCS driver ID that we use for light status (eg GPI96 in simulate)
	int info_id;						// BNCS driver ID that is used for the information driver that is read for the UMD displays

	bncs_string tally_off;				// Holds the colour string for the Tally light in OFF
	bncs_string tally_on;				// Holds the colour string for the Tally light in ON
	bncs_string imgs[MATRIXSIZE + 1];	// Holds the names of the images that provide the visual matrix displays
	bncs_string lamps[17];				// Holds the colour strings for the GPI controlled lamps
	bncs_string txt[17];				// Holds the colour strings for the text in the GPI controlled lamps

	bncs_string m_myParam;
	bncs_string m_instance;
	
};


#endif // pseudo_INCLUDED