Oatcake
Member
I often use a laptop to control my humax via the WebIf (using the ir package).
For those who are not familiar please see the wiki page "WebIf_Remote_Controller" (I am not allowed to post a link)
I've found it very useful to extend this screen with keyboard shortcuts. For example I've mapped the laptop's cursor keys to the Humax "D pad" navigation buttons and find this quicker than using a mouse/ touchscreen. This works when the browser is showing the remote AND the browser has the keyboard input focus.
At the bottom of this post are the code additions. Maybe they could be considered for inclusion in the next package release if people are interested? If included then the screen itself should probably be changed to show the shortcuts.
Shortcut keys...
Navigation
Playback
General
The code additions are in /mod/webif/plugin/ir/script.js and there are a few existing lines shown for context (near the top of that file)...
For those who are not familiar please see the wiki page "WebIf_Remote_Controller" (I am not allowed to post a link)
I've found it very useful to extend this screen with keyboard shortcuts. For example I've mapped the laptop's cursor keys to the Humax "D pad" navigation buttons and find this quicker than using a mouse/ touchscreen. This works when the browser is showing the remote AND the browser has the keyboard input focus.
At the bottom of this post are the code additions. Maybe they could be considered for inclusion in the next package release if people are interested? If included then the screen itself should probably be changed to show the shortcuts.
Shortcut keys...
Navigation
Key | Remote |
---|---|
Cursor keys | D pad movement |
Return | OK |
Shift + cursor up/ down | P+ / P- (useful for fast navigation in the media list) |
Playback
p | Play |
Space | Pause |
i | info |
Shift + cursor left/ right | Rew/ FF |
Ctrl + cursor left/ right | skip back/ skip forw |
b | go to bookmark |
shift+b | add bookmark |
General
0-9 | 0-9 |
escape | back |
shift+escape | exit |
f1 | media |
f2 | guide |
tab | opt+ |
Colour buttons (4 adjacent keys) q, w, e, r | red, green, yellow, blue |
The code additions are in /mod/webif/plugin/ir/script.js and there are a few existing lines shown for context (near the top of that file)...
JavaScript:
var signalarray = ['ZERO', 'ONE', 'TWO', 'THREE', 'FOUR',
'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE'];
$('button').button();
//////////////////////
// NEW CODE...
function sendK(cmd, xmit, e){
send(encodeURIComponent(cmd), '#xmit' + xmit);
e.preventDefault();
}
$(document).keydown(function(e){
// Handle cursor keys...
if (e.keyCode==38) { sendK(e.shiftKey ? 'P+':'UP', 2, e); }
else if (e.keyCode==40) { sendK(e.shiftKey ? 'P-':'DOWN', 2, e); }
else if (e.keyCode==37) { // left
if (e.shiftKey) sendK('REW',1,e);
else if(e.ctrlKey) sendK('SKIP/BACK',1,e);
else sendK('LEFT', 2, e);
}
else if (e.keyCode==39) { // right
if (e.shiftKey) sendK('FF',1,e);
else if(e.ctrlKey) sendK('SKIP/FORW',1,e);
else sendK('RIGHT', 2, e);
}
// end cursor keys
else if (e.keyCode==13) { sendK('OK', 2, e); } // return
else if (e.keyCode==32) { sendK('PAUSE', 1, e); } // space
else if (e.keyCode==73) { sendK('INFO', 2, e); } // i
else if (e.keyCode==80) { sendK('PLAY', 1, e); } // p
else if (e.keyCode==27) { sendK(e.shiftKey ? 'EXIT' : 'BACK', 2,e); } // escape
else if (e.keyCode==112) { sendK('MEDIA', 2, e); } // f1
else if (e.keyCode==113) { sendK('GUIDE', 2, e); } // f2
else if (e.keyCode==9) { sendK('OPT+', 2, e); } // tab
// 4 adjacent keys represent the colours...
else if (e.keyCode==81) { sendK('RED', 1, e); } // q
else if (e.keyCode==87) { sendK('GREEN', 1, e); } // w
else if (e.keyCode==69) { sendK('YELLOW', 1, e); } // e
else if (e.keyCode==82) { sendK('BLUE', 1, e); } // r
else if (e.keyCode==66) { sendK(e.shiftKey ? 'ADDBOOKMARK' : 'BOOKMARKS',2); } // b amd B
// number keys (not number pad)...
else if (e.keyCode>=48 && e.keyCode<=57) { sendK(signalarray[e.keyCode-48], 1, e); }
// number pad numbers...
else if (e.keyCode>=96 && e.keyCode<=105) { sendK(signalarray[e.keyCode-96], 1, e); }
});
// ...END OF NEW CODE
//////////////////////
function send(cmd, xmit, callback)
{