utilisation manette / SDL

utilisation manette / SDL - C++ - Programmation

Marsh Posté le 08-03-2006 à 22:29:40    

Salut a tous,
 
j'aimerait acceder aux evenements renvoyes par ma manette en utilisant les fonctions appropriees fournies par la SDL.
 
ma manette est une manette Xbox360 branchee en USB.
 
est ce que quelqu'un sait comment recuperer les evenements de ce type de manette?
 
pour tester j'ai fait un code dans ce genre la:

Code :
  1. #include <SDL/SDL.h>
  2. int main(int argc, char *argv[])
  3. {
  4.   int num_joy;
  5.   SDL_Init(SDL_INIT_JOYSTICK);
  6.   num_joy = SDL_NumJoysticks();
  7.   printf("number of joysticks: %d\n", num_joy);
  8.   SDL_Quit();
  9.   return (0);
  10. }


mais il n'arrive pas a me trouver ma manette.
 
est ce que ils entendent par joystick les manches a balais qui se branchent sur le port "joystick" de la carte son par exemple?
 
si quelqu'un avait un site qui pourrait potentiellement expliquer ca ce serait genial.
 
merci d'avance

Reply

Marsh Posté le 08-03-2006 à 22:29:40   

Reply

Marsh Posté le 09-03-2006 à 01:00:44    

Dans les sources, il y a un exemple de test. Tu peux trouver les sources là : http://www.libsdl.org/download-1.2.php
 
L'exemple de test est test/testjoystick.c. C'est assez explicite.  
(C'est ce fichier : http://www.libsdl.org/cgi/cvsweb.c [...] web-markup)  
 
Tu surveilles les évenements d'un certain type :
 

Code :
  1. while ( ! done ) {
  2.                 while ( SDL_PollEvent(&event) ) {
  3.                         switch (event.type) {
  4.                             case SDL_JOYAXISMOTION:
  5.                             // etc ....


 
Il ne trouve pas ta manette ? Vérifie le code de retour de SDL_Init pour voir si il y a un problème (comme dans testjoystick.c). J'ai un joystick type manche à balai sur usb, ça fonctionne correctemment (je suis sous GNU/Linux, mais ça ne doit rien changer a priori)


Message édité par Evadream -jbd- le 09-03-2006 à 01:03:09
Reply

Marsh Posté le 10-03-2006 à 01:58:18    

merci pour ta reponse, je regarderait plus tard, la je croule sous le travail donc j'ai pas le temps de creuser plus que ca.
 
je suis moi meme sous gnu linux, et je ne suis pas coutumier de l'utilisation de manettes sur pc, y a t il besoin de drivers speciaux ?
 
penses tu que la manette de la xbox 360 fasse office de cas particulier?

Reply

Marsh Posté le 10-03-2006 à 11:51:45    

Hello,
 
Non, je ne pense pas que la manette nécessite des drivers particuliers. Néanmoins, tu dois tout de même mettre en place la gestion des joystick sur ta distribution. modprobe joydev par exemple :) Tu devrais trouver ton bonheur avec google. Attention aux droits sur /dev/input/js*.
 
En deux trois mots, modprobe joydev, cat /dev/input/js0, tu bouges ton joystick, et ça devrait défiler :)

Reply

Marsh Posté le 13-03-2006 à 19:59:47    

desole de pas avoir donne de nouvelles depuis pas mal de temps..
 
me suis rendu compte qu'en fait meme apres un modprobe joydev, je n'ai pas de /dev/input/js*

Reply

Marsh Posté le 13-03-2006 à 20:06:10    

Si t a udev c est pas normal, mais je peut pas t aider à le configurer.
Si t a un script MAKEDEV ou makedev (/sbin) fourni avec ta distrib tu peut essayer de le lancer (option -h pour l aide).
 
Sinon, à la main, j ai 32 joysticks de:
> mknod /dev/input/js0 c 13 0
à:
> mknod /dev/input/js31 c 13 31
 

Reply

Marsh Posté le 13-03-2006 à 20:09:30    

Mieux vaut poser la question sur le forum OS Alternatifs maintenant, ce n'est pas un problème SDL.

Reply

Marsh Posté le 13-03-2006 à 20:42:22    

en fait je vais faire un truc encore plus intelligent :-)
 
je vais aller me coucher :-D pas tres frais moi apres une nuit blanche de taff... et je reprendrait tout ca la tete reposee :-)
 
je vous tiens au courant (mais a priori j'ai pu voir qu'il manque un ou deux trucs dans la config du kernel. mais c'est a confirmer car la je ne veux pas dire de betises)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed