aboutsummaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFabien Ménager <fabien.menager@gmail.com>2013-03-10 19:44:02 +0100
committerFabien Ménager <fabien.menager@gmail.com>2013-03-10 19:44:02 +0100
commit6696b306cf85690843d4dbba1a54250e4179bfc4 (patch)
tree665148725f348ceef23339e0c82d86fc2bb89d01 /addons
parent7904ea490cdf96797fbb1c696a9a7f12d2dab517 (diff)
Handle letters and digits keystrokes in the web interface remote
Diffstat (limited to 'addons')
-rwxr-xr-xaddons/webinterface.default/js/MediaLibrary.js53
1 files changed, 38 insertions, 15 deletions
diff --git a/addons/webinterface.default/js/MediaLibrary.js b/addons/webinterface.default/js/MediaLibrary.js
index f97260ecff..8f63620c1d 100755
--- a/addons/webinterface.default/js/MediaLibrary.js
+++ b/addons/webinterface.default/js/MediaLibrary.js
@@ -126,25 +126,41 @@ MediaLibrary.prototype = {
}
var keys = {
- 8: "back", // Back space
- 13: "ok", // Enter
- 27: "home", // Escape
- 32: "playpause", // Space bar
- 37: "left", // Left
- 38: "up", // Up
- 39: "right", // Right
- 40: "down", // Down
- 107: "volumeup", // +
- 109: "volumedown" // -
+ 8: 'back', // Back space
+ 13: 'ok', // Enter
+ 27: 'home', // Escape
+ 32: 'playpause', // Space bar
+ 37: 'left', // Left
+ 38: 'up', // Up
+ 39: 'right', // Right
+ 40: 'down', // Down
+ 107: 'volumeup', // +
+ 109: 'volumedown' // -
};
- var key = keys[event.which];
+ var which = event.which;
+ var key = keys[which];
- if (key) {
- event.data = {
- key: key
- };
+ event.data = {
+ key: key
+ };
+
+ if (!key) {
+ event.data.key = 'text';
+
+ // Letters
+ if (which >= 65 && which <= 90) {
+ var offset = event.shiftKey ? 0 : 32;
+ event.data.text = String.fromCharCode(which + offset);
+ }
+ // Digits
+ if (which >= 96 && which <= 105) {
+ event.data.text = (which-96)+"";
+ }
+ }
+
+ if (event.data.key) {
this.pressRemoteKey(event);
return false;
}
@@ -246,6 +262,13 @@ MediaLibrary.prototype = {
});
}
});
+ case 'text':
+ return xbmc.rpc.request({
+ 'method': 'Input.SendText',
+ 'params': {
+ 'text': event.data.text
+ }
+ });
}
// TODO: Get active player