Pas de dépendances
#include <windows.h> #include <stdio.h> #pragma comment(lib,"winmm.lib") const char* Bin(DWORD n) { static char buf[33]; int i; for(i=0;i<sizeof(DWORD)*8;i++) buf[i] = '0'+((n>>i)&1); buf[32] = '\0'; return buf; } void Afficher(unsigned int id,const JOYINFOEX* j) { printf("Joystick : #%d\n",id); printf("Axe XY : %6d ; %6d\n",j->dwXpos,j->dwYpos); printf("Axe ZR : %6d ; %6d\n",j->dwZpos,j->dwRpos); printf("Axe UV : %6d ; %6d\n",j->dwUpos,j->dwVpos); printf("Point of view : %.2f \n",j->dwPOV/100.f); printf("Boutons (x %2d) : %s\n",j->dwButtonNumber,Bin(j->dwButtons)); } int main() { unsigned int maxGamepadId = joyGetNumDevs(); unsigned int id; JOYINFOEX joyInfoEx; ZeroMemory(&joyInfoEx, sizeof(joyInfoEx)); joyInfoEx.dwSize = sizeof(joyInfoEx); joyInfoEx.dwFlags = JOY_RETURNALL; while(1) { HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); COORD C; C.X = 0; C.Y = 0; SetConsoleCursorPosition(H,C); // pour remettre le curseur en haut printf("Joysticks : max = %d\n",maxGamepadId); for (id = 0; id < maxGamepadId; ++id) { MMRESULT result = joyGetPosEx(id, &joyInfoEx); if (result!=JOYERR_NOERROR) continue; Afficher(id,&joyInfoEx); } Sleep(10); } return 0; }
No explanations yet.