#ifndef CONNECTOR_H
#define CONNECTOR_H
/****************************************************************************
	Geometricke definice aplikace

*****************************************************************************/
#define CONNECTOR_YA 29
#define CONNECTOR_XA 100
#define CONNECTOR_XC 380
#define CONNECTOR_YC 260

#define CONNECTOR_BUTTONS_TOP 45
#define CONNECTOR_BUTTONS_LEFT NET_SETUP_GLOBALS_BUTTONS_LEFT
#define CONNECTOR_BUTTONS_WIDTH 245
#define CONNECTOR_BUTTONS_HEIGHT 35
#define CONNECTOR_BUTTONS_DISTANCE 12

/****************************************************************************
	Definice stavu aplikace

*****************************************************************************/
typedef enum CONNECTOR_STATE
{
	CONNECTOR_NOT_INITIALIZED = M_TASK_NOT_INITIALIZED,
	CONNECTOR_INITIALIZE,
	CONNECTOR_RESTART = M_TASK_RESTART,
	CONNECTOR_DRAW,
	CONNECTOR_ACTIVE = M_TASK_RUNNING,
	CONNECTOR_CONNECTING,
	CONNECTOR_WAITING = M_TASK_WAITING,
	CONNECTOR_DISCONNECT,
	CONNECTOR_DIALOG_WAITING = M_TASK_DIALOG_WAITING,
	CONNECTOR_SWITCH,
	CONNECTOR_READY = M_TASK_READY,
	CONNECTOR_STOP,
	CONNECTOR_ERROR = M_TASK_FAILED,
}CONNECTOR_STATE;

/****************************************************************************
	Definice ID objektu

*****************************************************************************/
typedef enum CONNECTOR_OBJECT
{	
	CONNECTOR_MAIN_SHAPE = 0,
	CONNECTOR_TYPE,
	CONNECTOR_CIPHERING,
	CONNECTOR_IP_ADDRESS,
	CONNECTOR_REMOTE_OS,
	CONNECTOR_REMOTE_MODE,
	CONNECTOR_CONNECT,
	CONNECTOR_BACK,
	CONNECTOR_OBJECT_COUNT,
}CONNECTOR_OBJECT;

/****************************************************************************
	Cilovy OS

*****************************************************************************/
typedef enum OS_TYPE
{
	OS_LINUX,
	OS_WINDOWS,
}OS_TYPE;

/****************************************************************************
	Komunikacni rozhrani

*****************************************************************************/
typedef enum OS_CONNECT
{
	OS_WIFI,
	OS_SERIAL,
	OS_USB,
}OS_CONNECT;

/****************************************************************************
	Rezim spojeni

*****************************************************************************/
typedef enum OS_CONTROL
{
	OS_CONSOLE,
	OS_TOUCHPAD,
	OS_DESKTOP,
}OS_CONTROL;

/****************************************************************************
	Definice stavu spojeni

*****************************************************************************/
typedef enum OS_STATE
{
	OS_STATE_DISC,
	OS_STATE_INIT,
	OS_STATE_ADDRESS,
	OS_STATE_CIPHER,
	OS_STATE_INTERFACE,
	OS_STATE_BRIDGE,
	OS_STATE_CONNECTED,
    OS_STATE_ONLINE,
    OS_STATE_WAIT,
    OS_STATE_DISCONNECT,
    OS_STATE_DISCONNECTED,
    OS_STATE_ERROR,
}OS_STATE;

extern OS_CONNECT remoteConnection;
extern OS_CONTROL remoteControl;
extern unsigned char remoteIP[20];
extern ANSWER remoteSSL;
RESULT CNMsgBox(MESSAGE * msg);
void AppConnector(void);

#endif