Joystick programmering
Jeg er ved at skrive et program der kan læse output fra et joystick. Det skal senere anvendes i Java vha. JNI (Dermed ville det være rart hvis det både kan køre på Linux og Windows platforme) .Til dette formål har jeg fundet det nedenstående eksempel på nettet. Men jeg har nogle problemer med at kompilere det med gcc pga. Conio.h.
Er der nogen der har nogle forslag til hvad jeg kan gøre ?? Det skal lige siges at jeg er lidt ’rusten’ i c/c++
#include <stdio.h>
#include <conio.h>
#define Data 0x378
#define Status Data + 1
#define BS 8 /* ASCII BackSpace */
void main() {
int JShigh, JSlow, i, oldbyte, newbyte;
char backspace = BS;
printf("\n");
printf("Ian's Parallel Port JoyStick Reader\n");
printf("===================================\n");
printf("\n");
printf("<Centre + Button> to Quit\n");
printf("\n");
oldbyte = 0xff; /* different from newbyte */
outportb(Data,0xf8); /* output TTL High on enable lines */
do {
newbyte = inportb(Status);
if (newbyte != oldbyte) { /* new joystick status */
oldbyte = newbyte;
for (i = 1; i <= 20; i++) { /* clear the previous status report */
printf("%c",backspace); printf(" "); printf("%c",backspace);
}
JSlow = (newbyte & 0x0f) >> 3; /* Button Signal */
JShigh = (newbyte ^ 0x80) >> 4; /* Direction Signal */
switch (JShigh) {
case 0: printf("Centre");
break;
case 1: printf("North");
break;
case 2: printf("South");
break;
case 4: printf("East");
break;
case 5: printf("NorthEast");
break;
case 6: printf("SouthEast");
break;
case 8: printf("West");
break;
case 9: printf("NorthWest");
break;
case 10: printf("SouthWest");
}
if (JSlow == 1)
printf(" + Button");
}
}
while ((JSlow != 1) || (JShigh != 0));
printf("\n");
}