Checking in the 'build patch' from Jeremy Huddleston vintage 11/19/09 -- everything...
[freeglut] / src / freeglut_input_devices.c
index 19dc9c6..04f5fd5 100755 (executable)
 #include <GL/freeglut.h>
 #include "freeglut_internal.h"
 
-#if TARGET_HOST_UNIX_X11
+#if TARGET_HOST_POSIX_X11
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
+#endif
 #include <sys/ioctl.h>
-#include <sys/time.h>
-#include <time.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <unistd.h>
 #include <string.h>
 #include <termios.h>
 #include <fcntl.h>
-#include <sys/types.h>
 
 typedef struct {
    int fd;
    struct termios termio, termio_save;
 } SERIALPORT;
 
-#elif TARGET_HOST_WIN32
+#elif TARGET_HOST_MS_WINDOWS
 #include <sys/types.h>
 #include <winbase.h>
 typedef struct {
@@ -68,32 +66,32 @@ typedef struct {
 
 #define DIAL_NUM_VALUATORS 8
 
-       /* dial parser state machine states */
-#define DIAL_NEW               -1
+/* dial parser state machine states */
+#define DIAL_NEW                (-1)
 #define DIAL_WHICH_DEVICE       0
 #define DIAL_VALUE_HIGH         1
 #define DIAL_VALUE_LOW          2
 
-       /* dial/button box commands */
+/* dial/button box commands */
 #define DIAL_INITIALIZE                 0x20
 #define DIAL_SET_LEDS                   0x75
 #define DIAL_SET_TEXT                   0x61
 #define DIAL_SET_AUTO_DIALS             0x50
 #define DIAL_SET_AUTO_DELTA_DIALS       0x51
-#define DIAL_SET_FILTER                        0x53
+#define DIAL_SET_FILTER                 0x53
 #define DIAL_SET_BUTTONS_MOM_TYPE       0x71
 #define DIAL_SET_AUTO_MOM_BUTTONS       0x73
-#define DIAL_SET_ALL_LEDS              0x4b
-#define DIAL_CLEAR_ALL_LEDS            0x4c
+#define DIAL_SET_ALL_LEDS               0x4b
+#define DIAL_CLEAR_ALL_LEDS             0x4c
 
-       /* dial/button box replies and events */
+/* dial/button box replies and events */
 #define DIAL_INITIALIZED        0x20
 #define DIAL_BASE               0x30
 #define DIAL_DELTA_BASE         0x40
 #define DIAL_PRESS_BASE         0xc0
 #define DIAL_RELEASE_BASE       0xe0
 
-       /* macros to determine reply type */
+/* macros to determine reply type */
 #define IS_DIAL_EVENT(ch)       (((ch)>=DIAL_BASE)&&((ch)<DIAL_BASE+DIAL_NUM_VALUATORS))
 #define IS_KEY_PRESS(ch)        (((ch)>=DIAL_PRESS_BASE)&&((ch)<DIAL_PRESS_BASE+DIAL_NUM_BUTTONS))
 #define IS_KEY_RELEASE(ch)      (((ch)>=DIAL_RELEASE_BASE)&&((ch)<DIAL_RELEASE_BASE+DIAL_NUM_BUTTONS))
@@ -136,11 +134,11 @@ int fgInputDeviceDetect( void )
  */
 void fgInitialiseInputDevices ( void )
 {
-    const char *dial_device=NULL;
     if( !fgState.InputDevsInitialised )
     {
+        const char *dial_device=NULL;
         dial_device = getenv ( "GLUT_DIALS_SERIAL" );
-#if TARGET_HOST_WIN32
+#if TARGET_HOST_MS_WINDOWS
         if (!dial_device){
             static char devname[256];
             DWORD size=sizeof(devname);
@@ -213,8 +211,8 @@ static void poll_dials ( int id )
         {
             switch ( dial_state )
             {
-               case DIAL_WHICH_DEVICE:
-                   dial_which = data - DIAL_BASE;
+            case DIAL_WHICH_DEVICE:
+                dial_which = data - DIAL_BASE;
                 dial_state++;
                 break;
             case DIAL_VALUE_HIGH:
@@ -250,7 +248,7 @@ static void poll_dials ( int id )
 
 
 /******** OS Specific Serial I/O routines *******/
-#if TARGET_HOST_UNIX_X11 /* ==> Linux/BSD/UNIX POSIX serial I/O */
+#if TARGET_HOST_POSIX_X11 /* ==> Linux/BSD/UNIX POSIX serial I/O */
 static SERIALPORT *serial_open ( const char *device )
 {
     int fd;
@@ -271,14 +269,6 @@ static SERIALPORT *serial_open ( const char *device )
     tcgetattr(fd,&port->termio_save);
 
     memset(&termio, 0, sizeof(termio));
-
-    /* Same as "cfmakeraw(&termio)", but Solaris doesn't have this call */
-    termio.c_iflag &= ~( IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON );
-    termio.c_oflag &= ~OPOST;
-    termio.c_lflag &= ~( ECHO | ECHONL | ICANON | ISIG | IEXTEN );
-    termio.c_cflag &= ~( CSIZE | PARENB );
-    termio.c_cflag |= CS8;
-
     termio.c_cflag = CS8 | CREAD | HUPCL ;
     termio.c_iflag = IGNPAR | IGNBRK ;
     termio.c_cc[VTIME]    = 0;   /* inter-character timer */
@@ -321,7 +311,7 @@ static void serial_flush ( SERIALPORT *port )
     tcflush ( port->fd, TCIOFLUSH );
 }
 
-#elif TARGET_HOST_WIN32
+#elif TARGET_HOST_MS_WINDOWS
 
 static SERIALPORT *serial_open(const char *device){
     HANDLE fh;