HunoJoyWrapper Librairie version 2.0.0 Bibliothèque Joystick/joypad Pré-requis : Installation des bibliothèques statiques => libSDL_image.a, libSDL_gfx et libSDL.a ainsi que leurs includes Concept de cette bibliothèque : * Intégrer facilement le support des joysticks/joypads dans une application ou un jeu SDL sans avoir nécessairement de grosses connaissances en programmation. * Système de préférences simple avec changements des assignations des boutons, changement des axes directionnels, détection et activation du nombre de joysticks/joypad, informations concernant le nom du joystick/joypad. * Drivers propriétaires internes de quelques joysticks * Support complet de tous types de manettes Paramétrage simple : Pour incorporer la bibliothèque dans un code vous devez dans un premier temps : * Copier la bibliothèque de lib/libHJW.a vers le répertoire "newlib/lib/" de votre SDK. * Copier le répertoire des includes de la bibliothèque nommé "libHJW" dans le répertoire "newlib/include/" de votre SDK * Pour linker la bibliothèque, vous devez tout simplement ajouter dans votre code : #include "libHJW/HunoJoyWrapper.h" Pour la compilation : -lHJW -lSDL_image -lSDL_gfx Cette bibliothèque est "freeware" mais n'est en aucun cas OpenSource. Les règles d'intégration de cette bibliothèques dans un moteur quel qu'il soit sont les suivantes : * Vous devez joindre le fichier "licenceHJW-library.txt" dans le répertoire de votre programme. * Vous devez activer le logo au démarrage de l'application ou du jeu (voire plus plus bas concernant l'intégration du logo). * Vous devez ajouter l'exécutable "Testing-JoysticksHJWlib.exe" dans le répertoire. * Vous devez ajouter dans le Readme le lien de l'archive de la bibliothèque ainsi que le lien de mon site (http://www.clubevolution4.com/HunoPortSDL/). * Le code source et le makefile de la partie modifiés intégrant le support du joystick/joypad devront être inclus dans l'archive pour aider d'éventuels programmeurs à titre d'exemples. * Vous devez m'envoyer un mail avec le nom de l'application ou du jeu dans lequel vous avez ajouté la bibliothèque pour que je puisse mettre à jour la liste des applications/jeux ayant un support "libHJW" (contact: nouvel.hugues(AT)free.fr) Documentation pour amorcer la bibliothèque : Pour initialiser la bibliothèque, il faut déclarer dans le main : extern SDL_Event event; Pour initialiser le LOGO : //Initialiser le wrapper et le logo (pour le logo vous devez déclarer la surface de l'écran, habituellement "screen" mais ce n'est pas une obligation, les developpeurs aiment bien change) Important : le logo n'a pas encore la fonction rendu OpenGL, ne l'utiliser qu'en 2D, merci. InitHunoJoyWrapper(); //======>initialisation du wrapper<======= InitLogoHJW (Display); //======>à la place de (Display) déclarez votre surface écran pour afficher le logo exemple: (screen)<====== Appeller une fonction de direction : //dans les évènements, déclarez pour le premier joueur : Uint8* joyHJW; joyHJW = GetJoyStateHJW(); //Pour déclarer un bouton ou un Axe pour le premier joueur par exemple : joyHJW[JOY_HJW_DOWN] //===>exemple d'intégration dans un code: (keys[SDLK_DOWN] || joyHJW[JOY_HJW_DOWN] ) //===>la première déclaration est celle d'origine (donc l'évènement clavier) puis le deuxième l'intégration du premier joystick<=== // Toutes les possibilités : JOY_HJW_UP JOY_HJW_DOWN JOY_HJW_LEFT JOY_HJW_RIGHT JOY_HJW_B0 JOY_HJW_B1 JOY_HJW_B2 JOY_HJW_B3 JOY_HJW_B4 JOY_HJW_B5 JOY_HJW_B6 JOY_HJW_B7 JOY_HJW_B8 JOY_HJW_B9 JOY_HJW_B10 JOY_HJW_B11 JOY_HJW_B12 JOY_HJW_B13 JOY_HJW_B14 JOY_HJW_B15 JOY_HJW_B16 JOY_HJW_B17 JOY_HJW_B18 JOY_HJW_B19 //dans les évènements, déclarez pour le second joueur : Uint8* joyHJW2; joyHJW2 = GetJoyState2HJW(); //Pour déclarer un bouton ou un Axe pour le second joueur par exemple : joyHJW2[JOY2_HJW_DOWN]//===>exemple d'intégration dans un code: (keys2[SDLK_DOWN] || joyHJW2[JOY2_HJW_DOWN] ) //===>la première déclaration est celle d'origine (donc l'évènement clavier) puis le deuxième l'intégration du deuxième joystick<=== // Toutes les possibilités : JOY2_HJW_UP JOY2_HJW_DOWN JOY2_HJW_LEFT JOY2_HJW_RIGHT JOY2_HJW_B0 JOY2_HJW_B1 JOY2_HJW_B2 JOY2_HJW_B3 JOY2_HJW_B4 JOY2_HJW_B5 JOY2_HJW_B6 JOY2_HJW_B7 JOY2_HJW_B8 JOY2_HJW_B9 JOY2_HJW_B10 JOY2_HJW_B11 JOY2_HJW_B12 JOY2_HJW_B13 JOY2_HJW_B14 JOY2_HJW_B15 JOY2_HJW_B16 JOY2_HJW_B17 JOY2_HJW_B18 JOY2_HJW_B19 //Puis à la fin du main, libérez la bibliothèque ShutdownHunoJoyWrapper (); Raccourcis clavier de l'interface de Test Joysticks : => ESCAPE pour quitter l'interface de test => F5 pour recharger le fichier config suite à des modifications => F10 pour sauvegarder vos réglages => F1 activation de l'invertion joystick 1 => F2 désactivation de l'invertion joystick 1 => F3 activation de l'invertion joystick 2 => F4 désactivation de l'invertion joystick 2 => Bouton + E edition du bouton selectionné => Bouton + R annulation de l'édition du bouton selectionné Pressez le bouton que vous voulez changer (selection rouge) et appuyez simultanément sur la touche "E" du clavier, ensuite pressez sur le bouton désirer (les deux boutons seront permutés). Si vous voulez annuler l'édition du bouton, vous sélectionnez le bouton (selection rouge) et appuyez simultanément sur la touche "R" du clavier. Liste des drivers actuellement supporté en natif: Driver USB Joystick Adaptator HAMA Single adaptator Playstation Driver Twin USB Joystick APM Adaptator Playstation Driver ThrustMaster Dual Analog 3.2 Driver WingMan Precision USB Driver Joystick FreeBox USB Driver Joystick Cyborg V.1 Driver MadCatz Call of Duty GamePad Driver Logitech(R) Precision(TM) Gamepad Driver Saitek P220 Gamepad Driver Saitek P990 Dual Analog Pad Driver Teckmo mobility 2 IN 1 Gamepad Driver TechMobility Mega World Gamepad Driver Speedlink Strike2 GreenAsia Inc Gamepad Driver SPEED-LINK Competition Pro Driver XBOX 360 For Windows Driver Gamepad ArcadeJoy (TM) Driver PLAYSTATION(R)3 Controller Driver Cyborg Force Rumble Pad Driver RetroBoxAtari Pad =============>Driver Générique pour un fonctionnement minimal d'un joystick n'ayant pas de driver<============== Generic Driver for HunoJoyWrapper ----IMPORTANT---- Pour que je puisse incorporer un nouveau pilote dans la bibliothèque, vous devez m'envoyer SVP : Les 2 fichiers InfosJoystick1.dat et InfosJoystick2.dat (vous ne pourrez les récupérer que quand l'application est en cours de fonctionnement, ils sont effacés lors de la fermeture de l'interface graphique). Il me faudra aussi HunoJoyWrapper.cfg, qui aura été configuré correctement par vous même (dans la GUI) pour que je puisse assigner les boutons aux bons emplacements. Contactez moi à l'adresse suivante: nouvel.hugues(AT)free.fr Merci