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
