PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 01-04-2016 19:42:52

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Modifier le comportement du script EasyPrompter

Saluton,

Oui, je sais, ça faisait longtemps, mais je me suis reconverti en barde depuis 4 ans que je suis en retraite.

Et justement, j'ai découvert cette petite merveille EasyPrompter, car avec plus de 300 chansons à mon répertoire vous vous doutez bien, qu'en scène, il me faut un pense-bête et que je ne peux pas me trimbaler avec mes 12 carnets de 30 chansons.

J'ai donc installé cette page HTML pilotée par JQuery sur ma tablette Androïd et ça fonctionne tout à fait très bien.

Mais voilà, quand je joue de la guitare, mes mains sont prises aussi ai-je pensé à une commande au pied et j'ai donc fait l'acquisition d'un pédalier Quad piloté par un Transceiver AirTurn BT-106 qui communique avec la tablette via Bluetooth.

Sauf que ce transceiver possède 6 modes pré-programmés et, bien que le mode 6 soit théoriquement déclaré programmable, le fournisseur, à qui j'ai demandé comment procéder, reste muet sur le sujet.

Aussi, malin comme vous me connaissez, ai-je appliqué l'adage “think different” et j'ai retourné la problématique en me proposant de faire réagir EasyPrompter aux MODE 4 du transceiver.

Je me suis donc plongé dans le code Javascript de la page et j'ai trouvé cela :

Code page EasyPrompter a écrit :

        /****************/
        /** Raccourcis **/
        /****************/

var option1 = {'disable_in_input':true} ;
shortcut.add("Space", Prompter.playPause, option1);
shortcut.add("Return", Prompter.playPause, option1);
shortcut.add("Ctrl+space", Prompter.invertDirection, option1);
shortcut.add("Ctrl+return", Prompter.invertDirection, option1);
shortcut.add('down', Prompter.speedDown, option1);
shortcut.add('up', Prompter.speedUp, option1);
shortcut.add('left', function(){$('#playlist-select-prev').click();}, option1);
shortcut.add('right', function(){$('#playlist-select-next').click();}, option1);
shortcut.add('add', function(){$('#zoom .plus').click();}, option1);
shortcut.add('subtract', function(){$('#zoom .moins').click();}, option1);
shortcut.add('6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('Shift+6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('Shift+=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('home', function(){$('#reset').click();}, option1);
shortcut.add('tab', function(){$('#playlist-select-next').click();Prompter.start();}, option1);

shortcut.add("Alt+i", function(){btnAction('italic');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+b", function(){btnAction('bold');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+u", function(){btnAction('underline');}, {'target':$('#win-playlist-item textarea')[0]});

Mais je ne suis guère avancé car je ne sais pas comment ajouter des lignes pour prendre en compte les commandes envoyées par le transceiver et que je peux résumer comme suit :
Mode 4 du AirTurn BT-106 TRANSCEIVER avec pédalier Quad       
------------------------------+-------------------+----------------------------------------------------------------------------------------------------------------------------+
Port pédalier                  +      envoi       +               raccourcis équivalents à créer dans EasyPrompter
------------------------------+-------------------+----------------------------------------------------------------------------------------------------------------------------+
1- gauche                  +        F9           +  shortcut.add('tab', function(){$('#playlist-select-next').click();Prompter.start();}, option1);
------------------------------+-------------------+----------------------------------------------------------------------------------------------------------------------------+
2 - gauche du milieu   +        F4           +  shortcut.add('down', Prompter.speedDown, option1);
------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------+
3 - droite du milieu      +         F7           +   shortcut.add('up', Prompter.speedUp, option1);
------------------------------+-------------------+----------------------------------------------------------------------------------------------------------------------------+
4 – droite                 +  Ctrl+Shift+T  +    shortcut.add("Space", Prompter.playPause, option1);
------------------------------+-------------------+----------------------------------------------------------------------------------------------------------------------------+

En fait dans la définition des raccourcis je ne sais pas comment traduire F9, F4, F7 et Ctrl+Shift+T, existe-t-il un syntaxe propre à JQuery ou Javascript ????

Sachant que j'ai aussi pisté ce code dans la page

</script>
    <script type="text/javascript">
// <![CDATA[
var shortcut={'all_shortcuts':{},'add':function(shortcut_combination,callback,opt){var default_options={'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false};if(!opt)opt=default_options;else{for(var dfo in default_options){if(typeof opt[dfo]=='undefined')opt[dfo]=default_options[dfo]}}var ele=opt.target;if(typeof opt.target=='string')ele=document.getElementById(opt.target);shortcut_combination=shortcut_combination.toLowerCase();var func=function(e){e=e||window.event;if(opt['disable_in_input']){var element;if(e.target)element=e.target;else if(e.srcElement)element=e.srcElement;if(element.nodeType==3)element=element.parentNode;if(element.tagName=='INPUT'||element.tagName=='TEXTAREA')return}if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;var character=String.fromCharCode(code).toLowerCase();if(code==188)character=",";if(code==190)character=".";var keys=shortcut_combination.split("+");var kp=0;var shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"};var special_keys={'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'multiply':106,'add':107,'subtract':109,'decimalpoint':110,'divide':111,'minus':43,'plus':45,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123};var modifiers={shift:{wanted:false,pressed:false},ctrl:{wanted:false,pressed:false},alt:{wanted:false,pressed:false},meta:{wanted:false,pressed:false}};if(e.ctrlKey)modifiers.ctrl.pressed=true;if(e.shiftKey)modifiers.shift.pressed=true;if(e.altKey)modifiers.alt.pressed=true;if(e.metaKey)modifiers.meta.pressed=true;for(var i=0;k=keys[ i ],i<keys.length;i++){if(k=='ctrl'||k=='control'){kp++;modifiers.ctrl.wanted=true}else if(k=='shift'){kp++;modifiers.shift.wanted=true}else if(k=='alt'){kp++;modifiers.alt.wanted=true}else if(k=='meta'){kp++;modifiers.meta.wanted=true}else if(k.length>1){if(special_keys[k]==code)kp++}else if(opt['keycode']){if(opt['keycode']==code)kp++}else{if(character==k)kp++;else{if(shift_nums[character]&&e.shiftKey){character=shift_nums[character];if(character==k)kp++}}}}if(kp==keys.length&&modifiers.ctrl.pressed==modifiers.ctrl.wanted&&modifiers.shift.pressed==modifiers.shift.wanted&&modifiers.alt.pressed==modifiers.alt.wanted&&modifiers.meta.pressed==modifiers.meta.wanted){callback(e);if(!opt['propagate']){e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault()}return false}}};this.all_shortcuts[shortcut_combination]={'callback':func,'target':ele,'event':opt['type']};if(ele.addEventListener)ele.addEventListener(opt['type'],func,false);else if(ele.attachEvent)ele.attachEvent('on'+opt['type'],func);else ele['on'+opt['type']]=func},'remove':function(shortcut_combination){shortcut_combination=shortcut_combination.toLowerCase();var binding=this.all_shortcuts[shortcut_combination];delete(this.all_shortcuts[shortcut_combination]);if(!binding)return;var type=binding['event'];var ele=binding['target'];var callback=binding['callback'];if(ele.detachEvent)ele.detachEvent('on'+type,callback);else if(ele.removeEventListener)ele.removeEventListener(type,callback,false);else ele['on'+type]=false}};
// ]]>
</script>

Si un caïd de Javascript et/ou JQuery pouvait me dépatouiller un peu tout ça, ce serait sympatoche.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#2 02-04-2016 12:01:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Modifier le comportement du script EasyPrompter

Bon, tout en postant hier je me suis rendu compte que la solution était dans les bouts de code que je citais.

J'ai donc modifié le code comme suit :


    /****************/
    /** Raccourcis **/
    /****************/

var option1 = {'disable_in_input':true} ;
shortcut.add("Space", Prompter.playPause, option1);
shortcut.add("f9", Prompter.playPause, option1);// pour AirTurn Quad mode 4
shortcut.add("Return", Prompter.playPause, option1);
shortcut.add("Ctrl+space", Prompter.invertDirection, option1);
shortcut.add("Ctrl+return", Prompter.invertDirection, option1);
shortcut.add('down', Prompter.speedDown, option1);
shortcut.add('f4', Prompter.speedDown, option1);// pour AirTurn Quad mode 4
shortcut.add('up', Prompter.speedUp, option1);
shortcut.add('f7', Prompter.speedUp, option1);// pour AirTurn Quad mode 4
shortcut.add('left', function(){$('#playlist-select-prev').click();}, option1);
shortcut.add('right', function(){$('#playlist-select-next').click();}, option1);
shortcut.add('add', function(){$('#zoom .plus').click();}, option1);
shortcut.add('subtract', function(){$('#zoom .moins').click();}, option1);
shortcut.add('6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('Shift+6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('Shift+=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('home', function(){$('#reset').click();}, option1);
shortcut.add('tab', function(){$('#playlist-select-next').click();Prompter.start();}, option1);
shortcut.add('ctrl+Shift+t', function(){$('#playlist-select-next').click();Prompter.start();}, option1);// pour AirTurn Quad mode 4

shortcut.add("Alt+i", function(){btnAction('italic');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+b", function(){btnAction('bold');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+u", function(){btnAction('underline');}, {'target':$('#win-playlist-item textarea')[0]});

J'ai testé sur mon PC, et EasyPrompter réagit bien comme attendu avec les touches F9, F4,F7 et Ctrl+Shift+T.
Il ne me reste plus qu'à tester sur ma tablette avec le pédalier Quad AirTurn, mais là, j'ai corvée de belle-mère.

Je vous tiens au courant.
@+


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 03-04-2016 09:53:46

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Modifier le comportement du script EasyPrompter

Bon alors j'ai progressé, j'ai modifié le script en lui ajoutant 4 lignes :

    /****************/
    /** Raccourcis **/
    /****************/

var option1 = {'disable_in_input':true} ;
shortcut.add("Space", Prompter.playPause, option1);
shortcut.add("f9", Prompter.playPause, option1);// pour AirTurn Quad mode 4
shortcut.add("Return", Prompter.playPause, option1);
shortcut.add("Ctrl+space", Prompter.invertDirection, option1);
shortcut.add("Ctrl+return", Prompter.invertDirection, option1);
shortcut.add('down', Prompter.speedDown, option1);
shortcut.add('f4', Prompter.speedDown, option1);// pour AirTurn Quad mode 4
shortcut.add('up', Prompter.speedUp, option1);
shortcut.add('f7', Prompter.speedUp, option1);// pour AirTurn Quad mode 4
shortcut.add('left', function(){$('#playlist-select-prev').click();}, option1);
shortcut.add('right', function(){$('#playlist-select-next').click();}, option1);
shortcut.add('add', function(){$('#zoom .plus').click();}, option1);
shortcut.add('subtract', function(){$('#zoom .moins').click();}, option1);
shortcut.add('6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('Shift+6', function(){$('#zoom .moins').click();}, option1);
shortcut.add('Shift+=', function(){$('#zoom .plus').click();}, option1);
shortcut.add('home', function(){$('#reset').click();}, option1);
shortcut.add('tab', function(){$('#playlist-select-next').click();Prompter.start();}, option1);
shortcut.add('ctrl+Shift+t', function(){$('#playlist-select-next').click();Prompter.start();}, option1);// pour AirTurn Quad mode 4

shortcut.add("Alt+i", function(){btnAction('italic');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+b", function(){btnAction('bold');}, {'target':$('#win-playlist-item textarea')[0]});
shortcut.add("Alt+u", function(){btnAction('underline');}, {'target':$('#win-playlist-item textarea')[0]});

J'ai testé sur mon PC et les touches F9, F4, F7 et Ctrl+Shit+T sont bien opérationnelles dans EasyPormpter.

Il ne me restait plus qu'à tester cela sur ma tablette Acer Androïd en y connectant via BlueTooth le Quad AirTurn BT-106 et là ????

Impossible de faire reconnaître ce périphérique par la tablette.

Mais je m'aperçois maintenant que même mon PC sous Ubuntu (Paramètres sytème->Bluetooth->Recherche de périphériques) ne le trouve pas non plus.

Je vais donc me replonger dans la doc et procéder par tâtonnement.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums