- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/InputControl/Pad.hpp

Go to the documentation of this file.

    00001 #ifndef INPUT_CONTROL_PAD_HPP
    00002 #define INPUT_CONTROL_PAD_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 #ifdef TARGET_SYSTEM_PSP
    00008     #define USPEED_FW_BTN_MAX_COUNT         12          // 8 + 4 pour le POV
    00009     #define USPEED_FW_AXIS_MAX_COUNT        2           // X et Y
    00010 #elif defined TARGET_SYSTEM_WIN32
    00011     #define USPEED_FW_BTN_MAX_COUNT         36          // 32 (maximum) + 4 pour le POV
    00012     #define USPEED_FW_AXIS_MAX_COUNT        6           // 6 axes
    00013 #endif
    00014
    00015
    00016 // La classe mère
    00017 #include "InputControl.hpp"
    00018
    00019 namespace USpeedGameEngine
    00020 {
    00021
    00022 class InputControl::Pad
    00023 {
    00024     /****************
    00025     * Les attributs *
    00026     ****************/
    00027     public :
    00028     protected :
    00029     private :
    00031         unsigned long int btnDelay[USPEED_FW_BTN_MAX_COUNT];
    00039         unsigned long int btnMinDelay[USPEED_FW_BTN_MAX_COUNT][2];
    00049         int btnStateStep[USPEED_FW_BTN_MAX_COUNT];
    00051         bool btnPreviousStates[USPEED_FW_BTN_MAX_COUNT];
    00052         #ifdef TARGET_SYSTEM_PSP
    00053         #elif defined TARGET_SYSTEM_WIN32
    00054
    00055             unsigned int currentPad;
    00056         #endif
    00057
    00058     /***************
    00059     * Les méthodes *
    00060     ***************/
    00061     public :
    00062         // Constructeur sélectionnant la manette spécifiée
    00063         Pad();
    00064         // Destructeur par défaut
    00065         ~Pad();
    00066
    00067         // Mise à jour temporelle pour les délais de pressions des boutons.
    00068         void updateTimers(unsigned long int elapsedTime);
    00069         // Retourne le n° de la manette sélectionnée : Le n° du pad sélectionné (1 <= . <= USPEED_FW_PAD_MAX_COUNT).
    00070         unsigned int getCurrentPad();
    00071         // Sélection de la manette à utiliser.
    00072         void setCurrentPad(unsigned int choice);
    00073         // Remet à zéro l'état des contrôles et les délais
    00074         void resetStates();
    00075         // Retourne l'état d'un bouton de la manette choisie
    00076         bool getBtnState(unsigned int btnNum);
    00077         // Retourne l'état d'un axe de la manette
    00078         unsigned int getAxisState(USGE_InputControl axis);
    00079         // Retourne l'état d'une direction du POV
    00080         bool getPovState(USGE_InputControl pov);
    00081         // Permet de définir le temps minimum autorisé entre chaque pression de boutons
    00082         void setBtnDelay(unsigned int btnNum, unsigned long int msTime);
    00083         void setBtnDelay(unsigned int btnNum, unsigned long int first, unsigned long int next);
    00084         // Permet de définir le temps minimum autorisé entre chaque pression pour TOUS les boutons
    00085         void setBtnDelayAll(unsigned long int msTime);
    00086         void setBtnDelayAll(unsigned long int first, unsigned long int next);
    00087
    00089         // Fonctions statiques //
    00091         // Retourne le nombre de manettes détectées
    00092         static unsigned int getPadCount();
    00093         static unsigned int getPadCount(bool refresh);
    00094         // Initialisation des manettes (détection et établissement de la table de correspondance sous Win32).
    00095         static void initialize();
    00096     protected :
    00097     private :
    00098 };
    00099 }        // Fin "namespace USpeedGameEngine"
    00100
    00101 #endif