Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

joystick.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= joystick.h                                            Noviembre de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones de las clase JOYSTICK*.                                    =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #ifndef __JOYSTICK__
00023 #define __JOYSTICK__
00024 
00025 #include "jed_defs.h"  // Incluir antes que nada, en ese modulo se definen 
00026                        // aspectos importantes para la portabilidad del sistema
00027 
00028 #if PLATAFORMA == i386_LINUX_GCC || PLATAFORMA == SPARC64_LINUX_GCC
00029   #ifdef JOYSTICK_ENABLED
00030     #include <linux/joystick.h>
00031   #endif
00032     #include <fcntl.h>
00033     #include <unistd.h>
00034     #include <sys/ioctl.h>
00035     #include <errno.h>
00036     #define JS1 "/dev/js0"
00037     #define JS2 "/dev/js1"
00038 #endif
00039 
00040 #if PLATAFORMA == i386_WIN32_VC
00041     #include <dinput.h>
00042     #define JS1 "1"
00043     #define JS2 "2"
00044 #endif
00045 
00046 #ifndef JS1
00047     #define JS1 "0"
00048 #endif
00049 
00050 #ifndef JS2
00051     #define JS2 "0"
00052 #endif
00053 
00054 #include <stdio.h>
00055 
00056 #include "toolkits/media/dispositivo.h"
00057 
00058 class JOYSTICK : public DISPOSITIVO {
00059   private:
00060 #ifdef JOYSTICK_ENABLED
00061   #if PLATAFORMA == i386_LINUX_GCC || PLATAFORMA == SPARC64_LINUX_GCC
00062     int fd;
00063     int status;
00064     char *archivo;
00065     struct JS_DATA_TYPE lowlevel_data;
00066   #endif
00067 
00068   #if PLATAFORMA == i386_WIN32_VC
00069     LPDIRECTINPUT direct_input_object;
00070     GUID guid;
00071     BOOLEAN gui_valido;
00072     LPDIRECTINPUTDEVICE2 fd_device;
00073 
00074     static BOOLEAN CALLBACK
00075     device_callback(LPDIDEVICEINSTANCE pdidi, LPVOID pv);
00076     BOOLEAN set_gain(int gain);
00077   #endif
00078 #endif
00079     // Estado
00080     double fx;
00081     double fy;
00082     int fbotones;
00083   public:
00084     JOYSTICK(char *filename);
00085     virtual ~JOYSTICK();
00086     BOOLEAN abrir(void);
00087     void cerrar(void);
00088     void consultar(double *x, double *y, int *botones);
00089     void calibrar(void);
00090     void actualizar(void);
00091     BOOLEAN
00092     consultar_variable(const char *nombre_variable, int &tipo, void **ref);
00093 
00094     //-----------------------------------------------------------------------
00095 #ifdef JOYSTICK_ENABLED
00096   #if PLATAFORMA == i386_WIN32_VC
00097     LPDIRECTINPUTDEVICE2 device() { return fd_device; }
00098   #endif
00099 #endif 
00100 };
00101 
00102 #endif // __JOYSTICK__
00103 
00104 //===========================================================================
00105 //= EOF                                                                     =
00106 //===========================================================================
00107 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.