#ifndef CameraAssign_INCLUDED
	#define CameraAssign_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 CameraAssign : public bncs_script_helper
{
public:
	CameraAssign( bncs_client_callback * parent, const char* path );
	virtual ~CameraAssign();

	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_string current_value;	// Used to fetch current setting from status control

	int edit_ccu;				// Holds the number of the CCU that is being assigned/re-assigned
	int new_mode;				// Holds the new allocation mode
	int timeoutCounter;			// Used for the "Confirm" button timeout

	bool allocating;			// Set true when new allocation is in process
	bool deallocate_active;		// Set true when deallocate button has been pressed
	bool allocate_A_active;		// Set true when allocate to Studio A button
	bool allocate_C_active;		// Set true when allocate to Studio C button
	bool confirm_active;		// Set true when confirm button is enabled (active)
	bool timer_active;			// Set true when teh timeout counter is running.

	// Local Methods
	void ClearAction(void);
	void EnableConfirm(void);
};


#endif // CameraAssign_INCLUDED