00001
00009 #include "joystick_PC.h"
00010
00011 #include "stdafx.h"
00012
00013 #include <windows.h>
00014 #include <mmsystem.h>
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 JOYINFOEX ActualPos;
00028 DWORD dwBoutons;
00029 UINT uMax[2], uMin[2];
00030 UINT uPoolPeriod;
00031 JOYCAPS InfosCaps;
00032 BOOL bStop;
00033 POINT Curseur;
00034
00035
00036 int joystick_init()
00037 {
00038
00039
00040
00041
00042
00043
00044
00045 uPoolPeriod = 20;
00046
00047 if (joyGetDevCaps(JOYSTICKID1, &InfosCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) return 0;
00048
00049
00050
00051 ActualPos.dwSize = sizeof(JOYINFOEX);
00052
00053
00054
00055
00056 memset(&(ActualPos.dwFlags),0,sizeof(JOYINFOEX) - sizeof(DWORD));
00057
00058
00059 ActualPos.dwFlags = JOY_RETURNALL;
00060 joyGetPosEx(JOYSTICKID1,&ActualPos);
00061 dwBoutons = ActualPos.dwButtons;
00062
00063 return 1;
00064 }
00065
00066
00067
00068 void joystick_getXYZR(float *X, float *Y, float *Z, float *R, bool doX, bool doY, bool doZ, bool doR)
00069 {
00070
00071
00072 memset(&(ActualPos.dwFlags),0,sizeof(JOYINFOEX) - sizeof(DWORD));
00073 ActualPos.dwFlags = JOY_RETURNALL;
00074 joyGetPosEx(JOYSTICKID1,&ActualPos);
00075
00076 if (doX) {*X = (float(ActualPos.dwXpos)/32768.0f) - 1.0f;}
00077 if (doY) {*Y = (float(ActualPos.dwYpos)/32768.0f) - 1.0f;}
00078
00079 if (doZ) {*Z = (float(ActualPos.dwZpos)/32768.0f) - 1.0f;}
00080 if (doR) {*R = (float(ActualPos.dwRpos)/32768.0f) - 1.0f;}
00081
00082
00083
00084
00085
00086
00087 }
00088
00089 void joystick_close()
00090 {
00091 }