Répondre

Veuillez composer votre message et l'envoyer
Options
Si vous êtes un être humain ne changez pas le contenu de ces deux champs.

Retour

Résumé de la discussion (messages les plus récents en premier)

piratebab
16/09/2013 13:09:09

c'est pas la tendance sur la liste de diffusion .....
Lorsque mythtv sera "adapté", on pourra le piloter avec un joystick:)

gilles74
15/09/2013 23:35:39

sur les 255 codes utilisables pour le X, il y a bien forward et rewind mais MythTV ne les utilise pas, idem pour menu.

tu peux voir les xkey avec cette commande

xmodmap -kpe

C'est à MythTV à s'adapter au nouveau fonctionnement des télécommandes

piratebab
15/09/2013 22:43:57

oui, je suis arrivé à la même conclusion.
Le shift à son propre code, mais il ne modifie pas le code de la touche.
donc impossible d'envoyer le > (qui est shift + <)
Je vais modifier le keybinding mythtv. J'ai vu qu'on peux affecter plusieurs touches. Je vais laisser celle du clavier, et en trouver une autre.
Mais ça veux dire qu'on est limité à bien moins que 255 possibilité. Il n'y a guere plus que 100 touches sur un clavier)

gilles74
15/09/2013 21:31:32

J'ai regardé, tu n'as pas le choix : il faut modifier le keybinding pour Forward
En effet, la gestion de la télécommande ne prend pas en compte shift, alt, ctl .... Chaque touche n'a donc qu'une seule signification et je crois qu'il prend les valeurs minuscule du clavier US donc Qwerty. Il n'est pas possible de programmer la télécommande pour avoir < et shift < = > pas plus que , et . ils ne sont pas sur le même "plan" du clavier. Je ne sais pas si je suis clair

piratebab
13/09/2013 07:48:47

oui, pas de succès. Il me manque juste FORWARD. Pour le BACKWARD j'ai trouvé (KEY_M) (DOT en US)

gilles74
13/09/2013 00:26:03
piratebab a écrit :

Ce que je trouve vraiment dommage, c'est de devoir changer le keybing dans mythtv parce qu'on ne sait pas affecter certaines valeur dans rc_keymaps (par exemple les < et >) alors que je suis persuadé que leur code est bien < 255.

c'est la conséquence du choix de Mythtv de recommander Lirc et d'ignorer le reste

piratebab a écrit :

Dans le cadre d'un tuto, je serai partisan de fournir directement le fichier (pas dans le tuto télécommande, mais dans le tuto de la télécommande en question). et si personne n'a encore utilisé cette télécommande, orienter vers le tuto de configuration générique en 5 étapes.

pourquoi pas mais notre communauté est vraiment petite et il risque d'y avoir peu de fichier de config

Pour < et >, as-tu essayé d'affecter les valeur KEY_REWIND et KEY_FORWARD ?

piratebab
12/09/2013 22:23:21

oui, j'ai déja réaffecté les touches de couleur à d'autre chose (par exemple la rouge pour effacer).
Ce que je trouve vraiment dommage, c'est de devoir changer le keybing dans mythtv parce qu'on ne sait pas affecter certaines valeur dans rc_keymaps (par exemple les < et >) alors que je suis persuadé que leur code est bien < 255.
Donc en attendant de trouver une autre solution, c'est bien le processus que tu as décris qu'il faut appliquer.
Dans le cadre d'un tuto, je serait partisan de fournir directement le fichier (pas dans le tuto télécommande, mais dans le tuto de la télécommande en question). et si personne n'a encore utilisé cette télécommande, orienter vers le tuto de configuration générique en 5 étapes.

gilles74
12/09/2013 13:30:04

oui on peut changer mais c'est surtout quand on cherche à comprendre comme toi que le problème se pose car ce n'est pas un "clavier" comme les autres mais je pense que dire que ça se comporte comme un clavier n'est pas faux. Il manque en fait la procédure pour configurer simplement une télécommande sans avoir à rentrer dans le détail du fonctionnement. Tes demandes n'ont obligé à refaire le tour du problème maintenant il faut vite écrire quelque chose que ça s'estompe de ma mémoire ...

Tu peux donner n'importe quelle valeur à une touche dans le rc_keymap voici un exemple aberrant mais possible donner à la touche "1" l'affectation "menu" . Mais il est souhaitable de rester dans la signification des inscriptions de la télécommande. Pour les touches de couleurs, par exemple pourquoi ne pas les personnaliser (dans la limite des capacités des codes clavier). Les fichiers de référence des télécommande que l'on trouve dans rc_keymap, sont construit avec le nom des touches inscrit sur la télécommande et non pas seulement avec des valeurs possible et autorisées par tel ou tel driver (evdev par exemple). C'est comme si il avait déjà anticipé l'arrivé du nouveau serveur X qui doit étendre les capacités de codage au delà de 256.

Si j'ai bien assimilé le processus, je pense que la procédure devrait ressembler à ça

1) utiliser ir-keytable pour définir le protocole, le fichier de configuration et eventuellement le périphérique d'entrée /dev/inputx
2) tester toutes les touches avec ir-keytable pour savoir celles qui ne sont pas reconnues
3) modifier dans rc_keymap, les valeurs des touches non reconnues pour mettre une valeur existante dans /usr/share/X11/xkb/keycodes/evdev.
4) tester toutes les touches dans l'application pour identifier celles qui ne fonctionnent pas
5) modifier dans l'application, le keybinding de la fonction non accessible par télécommande pour enregistrer la valeur (keysym) de la touche souhaitée de la télécommande.

On peut aussi faire
1) puis 4) puis 5)
et pour les touches que l'on ne peut pas enregistrer faire 3), 4), 5)

Qu'en penses-tu ?

piratebab
12/09/2013 09:03:11

Il faudra enlever de nos tutos les phrases qui disent que les télécommandes sont maintenant traitées comme des claviers. C'est peut étre vrai pour un clavier US, mais pas chez nous.
C'est un device géré au niveau kernel, comme par exemple un joystick.
Sais tu si dans rc_keymap on peux mettre un code de touche et non ce qui est supposé étre écrit dessus ?
Impossible de trouver de la doc la dessus

gilles74
11/09/2013 23:53:52

oui il y a bien une autre mode de fonctionnement pour les claviers; je parlai uniquement des télécommandes. Et ce que nous intéresse c'est le fonctionnement de la télécommande dans le X

Il faut encore voir le fonctionnement avec lirc

piratebab
11/09/2013 08:15:03

Explication très complète, je regarderai ça ce soir plus en détails.
Un point me chiffonne car ton explication ne colle pas avec mes tests via showkey pour le clavier, donc au niveau du kernel, avant le server x.
Le clavier et la télécommande ne sont pas traité pareil. Le keymap du clavier est forcement traité au niveau kernel, sinon comment ferait on pour écrire dans un terminal  (hors serverX) ?

nota: j'ai fait une tentative sur la liste de diffusion de mythtv: la réponse est claire: il faut utiliser LIRC. Je me suis retiré sur la pointe des pieds ...

gilles74
11/09/2013 02:03:47

En fait les télécommandes qui sont maintenant assimilées à des claviers utilisent très peu des touches du clavier et peut etre uniquement pour les touches numériques. Pour le reste, elles utilisent les touches multimédia qui sont elles défini dans le X. Le processus est ainsi le suivant

Le fichier /etc/rc_keymaps/ma_télécommande permet de convertit les signaux raw en keycodes

Puis ces keycodes sont convertis en key name en utilisant le fichier de conversion du driver pour lequel la télécommande est assimilée. On va prendre comme exemple evdev qui sera presque toujours le cas. Les codes standards pour evdev se trouve dans  /usr/share/X11/xkb/keycodes/evdev.

Il faut dès cette étape vérifier que les keycodes ont bien leurs équivalences en key name sinon la chaine est rompue: exemple dans mon cas, mon fichier fournit 

0x800f041a   KEY_NEXT

hors ce key code n'existe pas dans evdev, il faut donc que je remplace KEY_ NEXT par KEY_NEXTSONG sinon la touche ne sera pas "donné" correctement au X et ne fonctionnera pas

Ensuite on passe dans le X et c'est là qu'intervient la notion de conversion (choix du clavier) selon les pays.

Les key names sont mappés avec les fichiers /usr/share/X11/xkb/symbols/fr et /usr/share/X11/xkb/symbols/inet pour donner les keysyms qui seront envoyés au applications. Selon le pays, on va utiliser le fichier fr pour la France, gr pour la Grèce, etc. La partie inet concerne les touches multimédia et est constante quelque soit le pays. Et l'on comprend ici pourquoi il faut mettre la valeur "qwerty" dans le fichier /etc/rc_keymaps/ma_télécommande qui est converti en fonction du clavier choisi

En enfin tout n'est pas parfait puisque certains keysyms des touches multimédia ne sont interprétés correctement par mythtv: exemple toujours dans mon cas, mythtv ne connait pas exit mais esc, il ne reconnait pas menu mais m; il faut donc soit ajouter exit et menu dans les keybindings, soit modifier le fichier /etc/rc_keymaps/ma_télécommande (ce que j'ai choisi de faire)
Attention aussi mythtv n'est pas sensible à la casse; m et M donne le meme résultat.

quelques exemples juste pour la compréhension

Label      Scancode           Keycode                             Formerly                     Key Name                 Keysym

0         0x800f0400         KEY_0                        KEY_NUMERIC_0                   <AE10>                ASCII zero
--And similarly for all the numeric keys
(i)        0x800f040f          KEY_MENU                KEY_INFO                              <I147>               XF86MenuKB
ch+  0x800f0412         KEY_SCROLLUP        KEY_CHANNELUP                  <I185>                  XF86ScrollUp
ch-      0x800f0412         KEY_SCROLLDOWN    KEY_CHANNELDOWN           <I186>                  XF86ScrollDown
>|        0x800f041a         KEY_NEXTSONG        KEY_NEXT                              <I171>                  XF86AudioNext
|<        0x800f041b         KEY_PREVIOUSSONG    KEY_PREVIOUS                 <I172>              XF86AudioPrev
#         0x800f041c         KEY_KPCOMMA        KEY_NUMERIC_POUND           <I126>                 plusminus

piratebab
10/09/2013 22:39:14

tu fais la même erreur que j'avais fait au début. Il faut regarder sur le clavier AZERTY la touche donnée sur les foruns US, et voir sur le QUERTY à quoi elle correspond.
ça semble logique si on considère que le layout du clavier est corrigé du langage (par X ou le kernel). Si tu tapes M sur un clavier azerty, il est traduit dans le code de la touche équivalente du clavier qwerty, et mythtv reçoit le bon keycode (position de la touche du clavier qwerty)
La télécommande elle ne doit pas passer par les mêms couches, il faut donner la position de la touche du clavier qwerty directement.


Pour les chiffres, je n'ai pas mis numeric (qui doit correspondre au pavé numérique du clavier, regarde avec showkey). Essaie sans numeric, ça marche aussi.

La liste des codes utilisable est dans /usr/include/linux/input.h (< 255)
Mais pas vu de touche less than ... ce qui doit étre logique puisque sur un clavier US elle s'obtient via un shift

gilles74
10/09/2013 22:21:50

Le problème est que ton raisonnement ne tient pas. La touche M du clavier QWERTY ne correspond pas à ; (semi-colon) mais à , sur un clavier AZERTY. D'ou viens cette key semicolon qui n'existe pas dans les keybindings ? mythUI utilise ce raccourci je crois (à vérifier)

D'autre part, j'utilise ce fichier pour ma télécommande Logitech

# table rc6_mce, type: RC6
0x800f0400 KEY_NUMERIC_0
0x800f0401 KEY_NUMERIC_1
0x800f0402 KEY_NUMERIC_2
0x800f0403 KEY_NUMERIC_3
0x800f0404 KEY_NUMERIC_4
0x800f0405 KEY_NUMERIC_5
0x800f0406 KEY_NUMERIC_6
0x800f0407 KEY_NUMERIC_7
0x800f0408 KEY_NUMERIC_8
0x800f0409 KEY_NUMERIC_9
0x800f040a KEY_DELETE
0x800f040b KEY_ENTER              #OK
0x800f040c KEY_SLEEP
0x800f040d KEY_SEMICOLON          #MEDIA
0x800f040e KEY_MUTE
0x800f040f KEY_I                  #INFO
0x800f0410 KEY_VOLUMEUP
0x800f0411 KEY_VOLUMEDOWN
0x800f0412 KEY_CHANNELUP
0x800f0413 KEY_CHANNELDOWN
0x800f0414 KEY_FASTFORWARD
0x800f0415 KEY_REWIND
0x800f0416 KEY_P             #PLAY
0x800f0417 KEY_R             #RECORD
0x800f0418 KEY_P             #PAUSE
0x800f0419 KEY_STOP
0x800f041a KEY_NEXT
0x800f041b KEY_PREVIOUS
0x800f041c KEY_NUMERIC_POUND
0x800f041d KEY_NUMERIC_STAR
0x800f041e KEY_UP
0x800f041f KEY_DOWN
0x800f0420 KEY_LEFT
0x800f0421 KEY_RIGHT
0x800f0422 KEY_OK
0x800f0423 KEY_ESC            #EXIT
0x800f0424 KEY_DVD
0x800f0425 KEY_TUNER
0x800f0426 KEY_EPG
0x800f0427 KEY_ZOOM
0x800f0432 KEY_MODE
0x800f0433 KEY_PRESENTATION
0x800f0434 KEY_EJECTCD
0x800f043a KEY_BRIGHTNESSUP
0x800f0446 KEY_TV
0x800f0447 KEY_AUDIO
0x800f0448 KEY_PVR
0x800f0449 KEY_CAMERA
0x800f044a KEY_VIDEO
0x800f044c KEY_LANGUAGE
0x800f044d KEY_TITLE
0x800f044e KEY_PRINT
0x800f0450 KEY_RADIO
0x800f045a KEY_SUBTITLE
0x800f045b KEY_RED
0x800f045c KEY_GREEN
0x800f045d KEY_YELLOW
0x800f045e KEY_BLUE
0x800f0465 KEY_POWER2
0x800f046e KEY_PLAYPAUSE
0x800f046f KEY_PLAYER
0x800f0480 KEY_BRIGHTNESSDOWN
0x800f0481 KEY_PLAYPAUSE

et comme tu peux le voir, à part quelques touches que j'ai modifié pour faire appel à des touches du clavier, les autres touches ne sont pas des touches qui existe au clavier et ça fonctionne. Il y a donc un autre processus qui doit tourner autour du X

piratebab
09/09/2013 13:28:12

Autre façon de présenter la chose (sans passer par les keycode).
Il faut une table de conversion AZERTY / Qwerty, par exemple TABLE
Si dans un fichier de conf trouvez sur le net (donc pour clavier US), vous voyez par exemple KEY_M.
Vous allez sur le clavier AZERTY, vous repérez la touche M (3eme ligne, 11 eme colone), et vous reportez ça sur le clavier QWERTY, et vous avez
KEY_SEMICOLON

Mais là ou je bloque c'est pour l'avance rapide (KEY_DOT en US). ca donne en fr <, que je ne sait pas traduire pour ir-keymaps (less than, mais comment ça s'abrège)

Pied de page des forums

Propulsé par FluxBB

Webmasteur SnouF

Hébergé par Tuxfamily

Valid XHTML 1.0 Strict