59
για σύνδεση χειριστηρίου με τον Η/Υ· και εμφάνιση πλαισίου μηνύματος (Message
Box) σφάλματος, σε περίπτωση που δεν έχει προηγηθεί. Σε αντίθετη περίπτωση, δημι-
ουργείται ένα αντικείμενο (DirectInput object) στο οποίο θα βασιστούν οι μέθοδοι
απαρίθμησης συσκευών εισόδου και δημιουργίας ενός αντικειμένου που θα αναπαρι-
στά το χειριστήριο (DirectInputDevice object), ύστερα από κλήση της συνάρτησης
EnumJoypadsCallback()
51
. Επιπρόσθετα, ρυθμίζεται η συσκευή ώστε να προσδιορι-
στούν οι μηχανισμοί δράσης του χειριστηρίου (πλήκτρα, ψηφιακό πληκτρολόγιο κα-
τεύθυνσης, αναλογικοί μοχλοί) και να καθοριστεί ο τρόπος με τον οποίο η συσκευή
διαμοιράζεται με άλλες εφαρμογές ή με το σύστημα.
Ακολουθεί η απαρίθμηση των μηχανισμών δράσης του χειριστηρίου και ορί-
ζεται η κλίμακα τιμών των αναλογικών μοχλών, ύστερα από κλήση της συνάρτησης
EnumObjectsCallback()
52
.
Η ανάκτηση των δεδομένων εισόδου, πραγματοποιείται μέσω της συνάρτησης
UpdateInputState()
, η οποία επιπρόσθετα αναλαμβάνει την εμφάνισή τους, στο
πλαίσιο διαλόγου.
Τέλος, πραγματοποιείται αποδέσμευση τόσο του χειριστηρίου, όσο και του
αντικειμένου που δημιουργήθηκε μέσω της συνάρτησης
FreeDirectInput()
.
Εικόνα 4.12: Εφαρμογή εκτύπωσης κωδικών χειριστηρίου στον Η/Υ.
51
H συνάρτηση
EnumJoypadsCallback()
καλείται να εκτελεστεί, μέσα από το σώμα της συνάρτη-
σης
InitDirectInput()
, κάθε φορά που απαριθμείται μία συσκευή εισόδου.
52
H συνάρτηση
EnumObjectsCallback()
καλείται να εκτελεστεί, μέσα από το σώμα της συνάρτη-
σης
InitDirectInput()
, κάθε φορά που απαριθμείται ένας μηχανισμός δράσης του χειριστηρίου.