
La lecture du touchpad est loin d'être aussi simple que celles des touches normales. Goplat a il me semble écrit qu'il faut lire des choses sur un bus I²C. Je ne sais pas si c'est de manière synchrone (polling de l'état du touchpad) ou si c'est de manière asynchrone (les changements sur le touchpad déclencheraient une interruption à récupérer et traiter par Ndless), mais dans les deux cas, c'est très différent de la lecture des touches normales sur Nspire, TI-68k et très certainement aussi TI-Z80.
Il y a des chances qu'il soit plus simple de séparer complètement la lecture des touches de direction / touchpad + centre du clickpad, et la lecture des autres touches. Sur Clickpad, une telle fonction de lecture des touches de direction / centre lirait les touches de direction comme des touches normales; sur Touchpad, elle ferait autre chose.
Dans le cas général, avec SVN pur, récupérer une ancienne version des sources est faisable en consultant le log SVN puis en faisant un checkout de cette révision-là .
Mon miroir local Git du repository SVN nsptools vient de me montrer que ce changement dans common.h a été introduit à r349, ce qui est déjà fort ancien.
- Code: Select all
@@ -110,18 +111,20 @@
 #define KEY_NSPIRE_BAR     KEY_(0x1C, 0x100)
 #define KEY_NSPIRE_TAB     KEY_(0x1C, 0x200)
 #define KEY_NSPIRE_EQU     KEYTPAD_(0x1C, 0x400, 0x18, 0x080)
-#define KEY_NSPIRE_UPÂ Â Â Â Â KEYTPAD_(0x1E, 0x001, 0x1E, 0x004)
-#define KEY_NSPIRE_UPRIGHTÂ Â Â KEY_(0x1E, 0x002)
-#define KEY_NSPIRE_RIGHTÂ Â Â Â KEYTPAD_(0x1E, 0x004, 0x1E, 0x001)
-#define KEY_NSPIRE_RIGHTDOWNÂ Â KEYTPAD_(0x1E, 0x008, 0x1E, 0x080)
-#define KEY_NSPIRE_DOWNÂ Â Â Â KEYTPAD_(0x1E, 0x010, 0x1E, 0x040)
-#define KEY_NSPIRE_DOWNLEFTÂ Â KEY_(0x1E, 0x020)
-#define KEY_NSPIRE_LEFTÂ Â Â Â KEYTPAD_(0x1E, 0x040, 0x1E, 0x010)
-#define KEY_NSPIRE_LEFTUPÂ Â Â KEYTPAD_(0x1E, 0x080, 0x1E, 0x008)
-#define KEY_NSPIRE_CLEARÂ Â Â Â KEY_(0x1E, 0x100)
+#define KEY_NSPIRE_UPÂ Â Â Â Â KEYTPAD_(0x1E, 0x001, 0x1C, 0x040)
+#define KEY_NSPIRE_UPRIGHTÂ Â Â KEYTPAD_(0x1E, 0x002, 0x16, 0x008)
+#define KEY_NSPIRE_RIGHTÂ Â Â Â KEYTPAD_(0x1E, 0x004, 0x14, 0x008)
+#define KEY_NSPIRE_RIGHTDOWNÂ Â KEYTPAD_(0x1E, 0x008, 0x12, 0x008)
+#define KEY_NSPIRE_DOWNÂ Â Â Â KEYTPAD_(0x1E, 0x010, 0x1C, 0x010)
+#define KEY_NSPIRE_DOWNLEFTÂ Â KEYTPAD_(0x1E, 0x020, 0x12, 0x080)
+#define KEY_NSPIRE_LEFTÂ Â Â Â KEYTPAD_(0x1E, 0x040, 0x14, 0x080)
+#define KEY_NSPIRE_LEFTUPÂ Â Â KEYTPAD_(0x1E, 0x080, 0x16, 0x080)
+#define KEY_NSPIRE_CLEARÂ Â Â Â KEYTPAD_(0x1E, 0x100, _KEY_DUMMY_ROW, _KEY_DUMMY_COL)
+#define KEY_NSPIRE_SHIFTÂ Â Â Â KEYTPAD_(_KEY_DUMMY_ROW, _KEY_DUMMY_COL, 0x1E, 0x100)
 #define KEY_NSPIRE_CTRL    KEY_(0x1E, 0x200)
 #define KEY_NSPIRE_DOC     KEYTPAD_(_KEY_DUMMY_ROW, _KEY_DUMMY_COL, 0x1C, 0x008)
 #define KEY_NSPIRE_TRIG    KEYTPAD_(_KEY_DUMMY_ROW, _KEY_DUMMY_COL, 0x12, 0x200)
+#define KEY_NSPIRE_SCRATCHPADÂ KEYTPAD_(_KEY_DUMMY_ROW, _KEY_DUMMY_COL, 0x1A, 0x400)
Il n'est pas envisageable de revenir intégralement à cette révision, mais tu peux inverser et re-modifier, pour ton usage personnel, les définitions ci-dessus.