/* 
 * File:   common.h
 * Author: Maximus
 *
 * Created on 3 de diciembre de 2008, 03:13 AM
 */

#ifndef _COMMON_H
#define	_COMMON_H

#include <cstdlib>
#include <cstring>
#include <string.h>
#include <vector>
#include <iostream>
#include <time.h>
#include <unistd.h>
#include <sstream>

#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include <SDL/SDL_net.h>
#include <SDL/SDL_thread.h>
#include <SDL/SDL_timer.h>

using namespace std;

extern TCPsocket MZSocketD; /*!< Socket TCP. */
extern int MZnetQueuedCommands; /*!< Numero de comandos en cola. */
extern int MZnetQueuedSending; /*!< Numero de comandos en cola de envio. */
extern string MZnetBufferRx; /*!< Buffer de entrada. */
extern string MZnetBufferTx; /*!< Buffer de salida. */
extern SDL_mutex *itfzTXBuffLock; /*!< Mutex para TX. */
extern SDL_mutex *itfzRXBuffLock; /*!< Mutex para RX. */
extern SDL_mutex *itfzWriteLock; /*!< Mutex de escritura. */
extern bool MZMotorRuning; /*!< Esta encendido el motor? */
extern int MOUSEx; /*!< Coordenada X del mouse. */
extern int MOUSEy; /*!< Coordenada Y del mouse. */
extern bool MOUSE1; /*!< Boton 1 del mouse. */
//! Envia comandos a la MSP.
/*!
  \param data String a enviar.
 */
extern void MZnetSend(string);
//! Retorna verdadero si el mouse se encuentra dentro del area.
/*!
  \param sq Area a comprobar.
  \param X Coordenada en X.
  \param Y Coordenada en Y.
 */
extern bool mzsinside(SDL_Rect, int, int);
//! Enciende el motor luego de un delay.
/*!
  \sa MZnetSend()
 */
extern void MZInit(void);

#endif	/* _COMMON_H */

