diff options
author | thlo <smarttv640@gmail.com> | 2013-02-10 21:02:26 +0100 |
---|---|---|
committer | thlo <t.lohmar@gmx.de> | 2013-02-10 21:02:26 +0100 |
commit | 3b053722baf9e94469e8a602237ce1c2014b32fc (patch) | |
tree | d72e3f37c11453644be7b30532b23d60c2104353 /smarttv-client/Javascript/Main.js | |
parent | 650ccf90bf30c3c58d03757c1bbea1a648ae7cf9 (diff) | |
download | vdr-plugin-smarttvweb-3b053722baf9e94469e8a602237ce1c2014b32fc.tar.gz vdr-plugin-smarttvweb-3b053722baf9e94469e8a602237ce1c2014b32fc.tar.bz2 |
Use time requests for playback while recording.
Use pdl for completed recordings.
Trickplay during recording.
Keep aspect ratio.
Navigation fixes.
Diffstat (limited to 'smarttv-client/Javascript/Main.js')
-rwxr-xr-x | smarttv-client/Javascript/Main.js | 872 |
1 files changed, 462 insertions, 410 deletions
diff --git a/smarttv-client/Javascript/Main.js b/smarttv-client/Javascript/Main.js index 7ce11fd..9bbf34e 100755 --- a/smarttv-client/Javascript/Main.js +++ b/smarttv-client/Javascript/Main.js @@ -10,6 +10,7 @@ try { catch (e) {
}
+
/*
* Config.deviceType is used to differentiate main devices.
* Config.deviceType == 0 is a Samsung ES Series Device (2012)
@@ -21,26 +22,21 @@ catch (e) { * Handle KeyCodes: global variable tvKey holds an enum
* event.keyCode: is used to get the key pressed
*
- * Display.putInnerHTML: Samsung specific way to hanle innerHTML
* Display.GetEpochTime: returns the current time (UTC) in seconds
*
- * Audio: Get and Set Volume
* Player: All operations to get the video playing
*
*/
-//var custom = window.deviceapis.customdevice || {};
-
/*
* TODO:
- * Resume
* Audio Track Select
* Screensaver (using setOnScreenSaver() from common modules)
- * VDR Status on main screne
*/
+
var Main = {
state : 0, // selectScreen
selectedVideo : 0,
@@ -127,6 +123,17 @@ showHandler = function() { // Called by Config, when done
Main.init = function () {
+ if (Config.debug == true) {
+ Main.logToServer = function (msg) {
+ if (Config.serverUrl == "" )
+ return;
+
+ var XHRObj = new XMLHttpRequest();
+ XHRObj.open("POST", Config.serverUrl + "/log", true);
+ XHRObj.send("CLOG: " + msg);
+ };
+ }
+
Main.log("Main.init()");
Buttons.init();
@@ -155,21 +162,23 @@ Main.init = function () { ClockHandler.start("#selectNow");
-// Epg.updateEpg("S19.2E-1-1101-28106");
Server.updateVdrStatus();
-// Buttons.ynShow();
-// Buttons.show();
-// Notify.showNotify("test...", true);
-// Server.deleteRecording("/hd2/video/The_Green_Hornet/2013-01-06.20.04.4-0.rec");
-// Display.handlerShowProgress();
-// Display.initOlForRecordings();
-// Display.setOlTitle("Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo Hallo Echo");
+
+ // Display.initOlForRecordings();
/*
- *
* Fetch JS file
*/
-
- /*
+/* if (Config.uploadJsFile != "undefined") {
+ Main.logToServer ("Upload: " + Config.uploadJsFile );
+ xhttp=new XMLHttpRequest();
+ xhttp.open("GET",Config.uploadJsFile,false);
+ xhttp.send("");
+ xmlDoc=xhttp.responseText;
+ Main.logToServer (xmlDoc);
+
+ }
+*/ /*
+ *
Read widget conf. find the file to log
xhttp=new XMLHttpRequest();
xhttp.open("GET","$MANAGER_WIDGET/Common/webapi/1.0/webapis.js",false);
@@ -191,12 +200,14 @@ Main.log = function (msg) { };
Main.logToServer = function (msg) {
- if (Config.serverUrl == "" )
+//replaced, when widget.debug is true
+/* if (Config.serverUrl == "" )
return;
var XHRObj = new XMLHttpRequest();
XHRObj.open("POST", Config.serverUrl + "/log", true);
XHRObj.send("CLOG: " + msg);
+*/
};
Main.onUnload = function()
@@ -208,6 +219,8 @@ Main.onUnload = function() Main.changeState = function (state) {
Main.log("change state: OldState= " + this.state + " NewState= " + state);
var old_state = this.state;
+
+
this.state = state;
ClockHandler.stop();
@@ -222,40 +235,48 @@ Main.changeState = function (state) { Main.log ("old Select= " + Main.selectMenuKeyHndl.select);
Display.resetSelectItems(old_state);
- document.getElementById("selectScreen").style.display="block";
+// document.getElementById("selectScreen").style.display="block";
+ $("#selectScreen").show();
ClockHandler.start("#selectNow");
Display.hide();
- Display.resetVideoList();
+ Data.reset ();
+ Display.resetVideoList();
+ Display.resetDescription ();
+
break;
case Main.eLIVE:
- document.getElementById("selectScreen").style.display="none";
+// document.getElementById("selectScreen").style.display="none";
+ $("#selectScreen").hide();
ClockHandler.start("#logoNow");
Display.show();
Main.selectedVideo = 0;
- Data.reset ();
+// Data.reset ();
Main.liveSelected();
break;
case Main.eREC:
- document.getElementById("selectScreen").style.display="none";
+// document.getElementById("selectScreen").style.display="none";
+ $("#selectScreen").hide();
ClockHandler.start("#logoNow");
Display.show();
Main.selectedVideo = 0;
- Data.reset ();
+// Data.reset ();
Main.recordingsSelected();
break;
case Main.eMED:
- document.getElementById("selectScreen").style.display="none";
+// document.getElementById("selectScreen").style.display="none";
+ $("#selectScreen").hide();
ClockHandler.start("#logoNow");
Display.show();
Main.selectedVideo = 0;
- Data.reset ();
+// Data.reset ();
Main.mediaSelected();
break;
case Main.eOPT:
// Options
// Options.init();
- document.getElementById("selectScreen").style.display="none";
+// document.getElementById("selectScreen").style.display="none";
+ $("#selectScreen").hide();
Options.show();
// document.getElementById("optionsScreen").style.display="block";
Main.optionsSelected();
@@ -263,17 +284,32 @@ Main.changeState = function (state) { }
};
+Main.liveSelected = function() {
+ Server.retries = 0;
+ Player.stopCallback = function() {
+ Display.show();
+ };
+ Player.isLive = true;
+ Server.setSort(false);
+ Server.errorCallback = Main.serverError;
+ Spinner.show();
+ Server.fetchVideoList(Config.serverUrl + "/channels.xml?channels="+Config.liveChannels); /* Request video information from server */
+};
+
Main.recordingsSelected = function() {
+ Server.retries = 0;
Player.stopCallback = function() {
+ Display.show();
Server.saveResume ();
Data.getCurrentItem().childs[Main.selectedVideo].payload.isnew = "false";
- Display.show();
};
- Server.errorCallback = function (msg) {
+
+ Server.errorCallback = Main.serverError;
+/* Server.errorCallback = function (msg) {
Server.errorCallback = Main.serverError;
};
-
- Player.isLive = false;
+*/
+// Player.isLive = false; // TODO: obsolete
Server.setSort(true);
/* if (Config.format == "") {
Server.fetchVideoList(Config.serverUrl + "/recordings.xml?model=samsung");
@@ -292,37 +328,9 @@ Main.recordingsSelected = function() { Main.log("fetchVideoList from: " + Config.serverUrl + "/recordings.xml");
};
-Main.serverError = function(errorcode) {
- if (Server.retries < 2) {
- switch (this.state) {
- case this.eLIVE: // live
- Server.fetchVideoList( Config.serverUrl + "/channels.xml?mode=nodesc"); /* Request video information from server */
- break;
- case this.eRECE:
- Server.fetchVideoList( Config.serverUrl + "/recordings.xml?mode=nodesc"); /* Request video information from server */
- break;
- }
- }
- else {
- Display.showPopup(msg);
- Main.changeState(0);
- }
-
-};
-
-Main.liveSelected = function() {
- Server.retries = 0;
- Player.stopCallback = function() {
- };
- Player.isLive = true;
- Server.setSort(false);
- Server.errorCallback = Main.serverError;
- Spinner.show();
- Server.fetchVideoList(Config.serverUrl + "/channels.xml?channels="+Config.liveChannels); /* Request video information from server */
-
-};
Main.mediaSelected = function() {
+ Server.retries = 0;
Player.stopCallback = function() {
//
Display.show();
@@ -331,7 +339,7 @@ Main.mediaSelected = function() { Display.showPopup(msg);
Main.changeState(0);
};
- Player.isLive = false;
+// Player.isLive = false;
Server.setSort(true);
Spinner.show();
Server.fetchVideoList(Config.serverUrl + "/media.xml"); /* Request video information from server */
@@ -341,6 +349,26 @@ Main.optionsSelected = function() { Main.log ("Main.optionsSelected");
};
+
+Main.serverError = function(errorcode) {
+ if (Server.retries < 2) {
+ switch (this.state) {
+ case this.eLIVE: // live
+ Server.fetchVideoList( Config.serverUrl + "/channels.xml?mode=nodesc"); /* Request video information from server */
+ break;
+ case this.eRECE:
+ Server.fetchVideoList( Config.serverUrl + "/recordings.xml?mode=nodesc"); /* Request video information from server */
+ break;
+ }
+ }
+ else {
+ Display.showPopup(msg);
+ Main.changeState(0);
+ }
+
+};
+
+
Main.enableKeys = function() {
Main.log("Main.enableKeys");
document.getElementById("anchor").focus();
@@ -369,7 +397,7 @@ event = event || window.event; case 2:
case 3:
// recordings
- Main.log("Recordings - Main.keyDown PlayerState= " + Player.getState());
+// Main.log("Recordings - Main.keyDown PlayerState= " + Player.getState());
if(Player.getState() == Player.STOPPED) {
// Menu Key
this.menuKeyHndl.handleKeyDown(event);
@@ -394,8 +422,8 @@ Main.playItem = function (url) { var duration = Data.getCurrentItem().childs[Main.selectedVideo].payload.dur;
var now = Display.GetEpochTime();
- document.getElementById("olRecProgressBar").style.display="none";
- Player.mFormat = Player.eUND; // default val
+// document.getElementById("olRecProgressBar").style.display="none";
+// Player.mFormat = Player.eUND; // default val
switch (this.state) {
case Main.eLIVE:
@@ -405,9 +433,9 @@ Main.playItem = function (url) { Display.showProgress();
Player.isLive = true;
- Player.bufferState = 0;
- Player.isRecording = false;
-
+// Player.bufferState = 0; //TODO: Obsolete
+// Player.isRecording = false; //TODO: Obsolete
+
Display.updateOlForLive (start_time, duration, now);
Main.log ("Live now= " + now + " StartTime= " + Data.getCurrentItem().childs[Main.selectedVideo].payload.start + " offset= " +Player.cptOffset );
Main.log("Live Content= " + Data.getCurrentItem().childs[Main.selectedVideo].title + " dur= " + Data.getCurrentItem().childs[Main.selectedVideo].payload.dur);
@@ -418,79 +446,96 @@ Main.playItem = function (url) { Player.playVideo(-1);
break;
case Main.eREC:
- Display.resetStartStop();
+// Display.resetStartStop(); //TODO Obsolete
// Main.getResume(Data.getCurrentItem().childs[Main.selectedVideo].payload.guid);
var url_ext = "";
Player.mFormat = Player.ePDL;
// Server.getResume(Player.guid);
- Player.setCurrentPlayTimeOffset(0);
- Player.isLive = false;
- Player.isRecording = false;
+// Player.setCurrentPlayTimeOffset(0); //TODO: reset at stop
+// Player.isLive = false; //TODO: reset at stop
+// Player.isRecording = false; //TODO: reset at stop
Main.log(" playItem: now= " + now + " start_time= " + start_time + " dur= " + duration + " (Start + Dur - now)= " + ((start_time + duration) -now));
Player.totalTime = Data.getCurrentItem().childs[Main.selectedVideo].payload.dur * 1000;
Player.totalTimeStr =Display.durationString(Player.totalTime / 1000.0);
//thlo
- if ((Data.getCurrentItem().childs[Main.selectedVideo].payload.fps <= 30) && (Data.getCurrentItem().childs[Main.selectedVideo].payload.ispes == "false")) {
- // HLS only works for framerate smaller 30fps
- // HLS only works for TS streams
- if (Config.format == "hls") {
- Player.mFormat = Player.eHLS;
- url_ext = "/manifest-seg.m3u8|COMPONENT=HLS";
+ if (Config.usePdlForRecordings == false) {
+ Main.log("Main.playItem: use AHS for recordings");
+ Main.logToServer("Main.playItem: use AHS for recordings");
+ if ((Data.getCurrentItem().childs[Main.selectedVideo].payload.fps <= 30) && (Data.getCurrentItem().childs[Main.selectedVideo].payload.ispes == "false")) {
+ // in case fps is smaller than 30 and ts recording use HLS or HAS
+ if (Config.format == "hls") {
+ Player.mFormat = Player.eHLS;
+ url_ext = "/manifest-seg.m3u8|COMPONENT=HLS";
+ }
+ Player.mFormat = Player.eHAS;
+ if (Config.format == "has") {
+ url_ext = "/manifest-seg.mpd|COMPONENT=HAS";
+ }
}
- Player.mFormat = Player.eHAS;
- if (Config.format == "has") {
- url_ext = "/manifest-seg.mpd|COMPONENT=HAS";
- }
- }
+ }
if ((now - (start_time + duration)) < 0) {
// still recording
Main.log("*** Still Recording! ***");
- Player.isRecording = true;
+ Player.isRecording = true;
Player.startTime = start_time;
Player.duration = duration;
- document.getElementById("olRecProgressBar").style.display="block";
+// document.getElementById("olRecProgressBar").style.display="block";
+ $("#olRecProgressBar").show();
Display.updateRecBar(start_time, duration);
+
+// New recording in progress handling
+ url_ext = "";
+ Player.mFormat = Player.ePDL;
+
+/* if ((Data.getCurrentItem().childs[Main.selectedVideo].payload.fps <= 30) && (Data.getCurrentItem().childs[Main.selectedVideo].payload.ispes == "false")) {
+ // HLS only works for framerate smaller 30fps
+ // HLS only works for TS streams
+ if (Config.format == "hls") {
+ Player.mFormat = Player.eHLS;
+ url_ext = "/manifest-seg.m3u8|COMPONENT=HLS";
+ }
+ Player.mFormat = Player.eHAS;
+ if (Config.format == "has") {
+ url_ext = "/manifest-seg.mpd|COMPONENT=HAS";
+ }
+ }
+*/
}
- else {
- document.getElementById("olRecProgressBar").display="none";
+/* else {
+ // TODO: Obsolete
+ $("#olRecProgressBar").hide();
+// document.getElementById("olRecProgressBar").display="none";
}
+*/
Player.setVideoURL( Data.getCurrentItem().childs[Main.selectedVideo].payload.link + url_ext);
Player.guid = Data.getCurrentItem().childs[Main.selectedVideo].payload.guid;
Main.log("Main.playItem - Player.guid= " +Player.guid);
Display.setOlTitle(Data.getCurrentItem().childs[Main.selectedVideo].title);
- Main.log("IsNew= " +Data.getCurrentItem().childs[Main.selectedVideo].payload.isnew);
+// Main.log("IsNew= " +Data.getCurrentItem().childs[Main.selectedVideo].payload.isnew);
+ Player.OnCurrentPlayTime(0); // updates the HTML elements of the Progressbar
Buttons.show();
-/* if (Data.getCurrentItem().childs[Main.selectedVideo].payload.isnew == "false") {
- Buttons.show();
- }
- else {
- Display.hide();
- Display.showProgress();
-
- Player.playVideo(-1);
- }
-*/
+
break;
case Main.eMED:
Display.hide();
Display.showProgress();
Player.mFormat = Player.ePDL;
- Player.setCurrentPlayTimeOffset(0);
- Player.isLive = false;
- Player.isRecording = false;
+// Player.setCurrentPlayTimeOffset(0); //TODO: reset at stop
+// Player.isLive = false; //TODO: reset at stop
+// Player.isRecording = false;//TODO: reset at stop
Main.log(" playItem: now= " + now + " start_time= " + start_time + " dur= " + duration + " (Start + Dur - now)= " + ((start_time + duration) -now));
- document.getElementById("olRecProgressBar").display="none";
+ // document.getElementById("olRecProgressBar").display="none"; //TODO: reset at stop
Display.setOlTitle(Data.getCurrentItem().childs[Main.selectedVideo].title);
- Display.resetStartStop();
+// Display.resetStartStop(); //TODO: reset at stop
Player.setVideoURL( Data.getCurrentItem().childs[Main.selectedVideo].payload.link);
Player.playVideo(-1);
@@ -535,23 +580,28 @@ Main.selectPageDown = function() { */
var first_item = this.selectedVideo - Display.currentWindow;
- Main.log("selectPageDown: this.selectedVideo= " + this.selectedVideo + " first_item= " + first_item);
+ Main.log("selectPageDown: this.selectedVideo= " + this.selectedVideo + " first_item= " + first_item + " curWind= " + Display.currentWindow);
Display.setVideoList(this.selectedVideo, first_item);
};
Main.nextVideo = function(no) {
// Just move the selectedVideo pointer and ensure wrap around
- this.selectedVideo = (this.selectedVideo + no) % Data.getVideoCount();
- Main.log("Main.nextVideo= " + this.selectedVideo);
+
+ this.selectedVideo = (this.selectedVideo + (no% Data.getVideoCount())) % Data.getVideoCount();
+ Main.log("Main.nextVideo= " + this.selectedVideo + " no= " + no);
};
Main.previousVideo = function(no) {
// Just move the selectedVideo pointer and ensure wrap around
- this.selectedVideo = (this.selectedVideo - no);
+
+ // Issue: I deduct a number, which is larger than videoCount
+ // only jumps, which are mod videoCount?
+ this.selectedVideo = (this.selectedVideo - (no% Data.getVideoCount()));
if (this.selectedVideo < 0) {
+ Main.log("Main.previousVideo: below Zero (" +this.selectedVideo+"), adding " + Data.getVideoCount());
this.selectedVideo += Data.getVideoCount();
}
- Main.log("Main.previousVideo= " + this.selectedVideo);
+ Main.log("Main.previousVideo= " + this.selectedVideo + " no= " +no);
};
Main.selectNextVideo = function() {
@@ -571,295 +621,6 @@ Main.selectPreviousVideo = function() { };
-// -----------------------------------------------
-
-Main.getKeyCode = function(code) {
- var res = "";
-
- if (Config.deviceType != 0) {
- // Not a Samsung
- res = "Unknown Key (KeyCode= " + code + ")";
- return res;
- }
- switch(code) {
- case tvKey.KEY_1:
- res = "KEY_1";
- break;
- case tvKey.KEY_2:
- res = "KEY_2";
- break;
- case tvKey.KEY_3:
- res = "KEY_3";
- break;
- case tvKey.KEY_4:
- res = "KEY_4";
- break;
- case tvKey.KEY_5:
- res = "KEY_5";
- break;
- case tvKey.KEY_6:
- res = "KEY_6";
- break;
- case tvKey.KEY_7:
- res = "KEY_7";
- break;
- case tvKey.KEY_8:
- res = "KEY_8";
- break;
- case tvKey.KEY_9:
- res = "KEY_9";
- break;
-
- case tvKey.KEY_TOOLS:
- res = "KEY_TOOLS";
- break;
-
- case tvKey.KEY_TOOLS:
- res = "KEY_TOOLS";
- break;
-
- case tvKey.KEY_TOOLS:
- res = "KEY_TOOLS";
- break;
-
- case tvKey.KEY_UP:
- res = "KEY_UP";
- break;
-
- case tvKey.KEY_DOWN:
- res = "KEY_DOWN";
- break;
-
- case tvKey.KEY_LEFT:
- res = "KEY_LEFT";
- break;
-
- case tvKey.KEY_RIGHT:
- res = "KEY_RIGHT";
- break;
-
- case tvKey.KEY_WHEELDOWN:
- res = "KEY_WHEELDOWN";
- break;
-
- case tvKey.KEY_WHEELUP:
- res = "KEY_WHEELUP";
- break;
-
- case tvKey.KEY_ENTER:
- res = "KEY_ENTER";
- break;
-
- case tvKey.KEY_INFO:
- res = "KEY_INFO";
- break;
-
- case tvKey.KEY_EXIT:
- res = "KEY_EXIT";
- break;
-
- case tvKey.KEY_RETURN:
- res = "KEY_RETURN";
- break;
-
- case tvKey.KEY_RED:
- res = "KEY_RED";
- break;
-
- case tvKey.KEY_GREEN:
- res = "KEY_GREEN";
- break;
-
- case tvKey.KEY_YELLOW:
- res = "KEY_YELLOW";
- break;
-
- case tvKey.KEY_BLUE:
- res = "KEY_BLUE";
- break;
-
- case tvKey.KEY_INFOLINK:
- res = "KEY_INFOLINK";
- break;
-
- case tvKey.KEY_RW:
- res = "KEY_RW";
- break;
-
- case tvKey.KEY_PAUSE:
- res = "KEY_PAUSE";
- break;
-
- case tvKey.KEY_FF:
- res = "KEY_FF";
- break;
-
- case tvKey.KEY_PLAY:
- res = "KEY_PLAY";
- break;
-
- case tvKey.KEY_STOP:
- res = "KEY_STOP";
- break;
-
- case tvKey.KEY_EMPTY:
- res = "KEY_EMPTY";
- break;
-
- case tvKey.KEY_PRECH:
- res = "KEY_PRECH";
- break;
-
- case tvKey.KEY_SOURCE:
- res = "KEY_SOURCE";
- break;
-
- case tvKey.KEY_CHLIST:
- res = "KEY_CHLIST";
- break;
-
- case tvKey.KEY_MENU:
- res = "KEY_MENU";
- break;
-
- case tvKey.KEY_WLINK:
- res = "KEY_WLINK";
- break;
-
- case tvKey.KEY_CC:
- res = "KEY_CC";
- break;
-
- case tvKey.KEY_CONTENT:
- res = "KEY_CONTENT";
- break;
-
- case tvKey.KEY_FAVCH:
- res = "KEY_FAVCH";
- break;
-
- case tvKey.KEY_REC:
- res = "KEY_REC";
- break;
-
- case tvKey.KEY_EMODE:
- res = "KEY_EMODE";
- break;
-
- case tvKey.KEY_DMA:
- res = "KEY_DMA";
- break;
-
- case tvKey.KEY_VOL_UP:
- res = "KEY_VOL_UP";
- break;
-
- case tvKey.KEY_VOL_DOWN:
- res = "KEY_VOL_DOWN";
- break;
-
- case tvKey.KEY_PANEL_CH_UP:
- res = "KEY_PANEL_CH_UP";
- break;
-
- case tvKey.KEY_PANEL_CH_DOWN:
- res = "KEY_PANEL_CH_DOWN";
- break;
-
- case tvKey.KEY_PANEL_VOL_UP:
- res = "KEY_PANEL_VOL_UP";
- break;
-
- case tvKey.KEY_PANEL_VOL_DOWN:
- res = "KEY_PANEL_VOL_DOWN";
- break;
-
- case tvKey.KEY_PANEL_ENTER:
- res = "KEY_PANEL_ENTER";
- break;
-
- case tvKey.KEY_PANEL_RETURN:
- res = "KEY_PANEL_RETURN";
- break;
-
- case tvKey.KEY_PANEL_SOURCE:
- res = "KEY_PANEL_SOURCE";
- break;
-
- case tvKey.KEY_PANEL_MENU:
- res = "KEY_PANEL_MENU";
- break;
-
- case tvKey.KEY_PANEL_POWER:
- res = "KEY_PANEL_POWER";
- break;
-
-
- default:
- res = "Unknown Key (" + code + ")";
- break;
- }
- return res;
-};
-
-Main.tvKeys = {
- KEY_UP :38,
- KEY_DOWN :40,
- KEY_LEFT :37,
- KEY_RIGHT :39,
- KEY_ENTER :13,
-
- KEY_STOP :27, // ESC
-// KEY_MUTE :27,
-
- // Un-used keycodes
- KEY_RETURN :88,
- KEY_EXIT :45,
- KEY_RED :108,
- KEY_GREEN :20,
- KEY_YELLOW :21,
- KEY_BLUE :22,
- KEY_RW :69,
- KEY_PAUSE :74,
- KEY_FF :72,
- KEY_PLAY :71,
- KEY_STOP :70,
- KEY_1 :101,
- KEY_2 :98,
- KEY_3 :6,
- KEY_4 :8,
- KEY_5 :9,
- KEY_6 :10,
- KEY_7 :12,
- KEY_8 :13,
- KEY_9 :14,
- KEY_0 :17,
-
- KEY_PANEL_CH_UP :104,
- KEY_PANEL_CH_DOWN :106,
- KEY_PANEL_VOL_UP :203,
- KEY_PANEL_VOL_DOWN :204,
- KEY_PANEL_ENTER :309,
- KEY_PANEL_SOURCE :612,
- KEY_PANEL_MENU :613,
- KEY_PANEL_POWER :614,
-
- KEY_POWER :76,
- KEY_VOL_UP :7,
- KEY_VOL_DOWN :11,
- KEY_CH_UP :68,
- KEY_CH_DOWN :65,
- KEY_MTS :655,
- KEY_12 :1057,
- KEY_AD :1039,
- KEY_FF_ :1078,
- KEY_REWIND_ :1080,
- KEY_SLEEP :1097,
- KEY_STEP :1023,
- KEY_HOME :1118
-
-};
-
//---------------------------------------------------
// PlayState Key Handler
@@ -959,10 +720,11 @@ cPlayStateKeyHndl.prototype.handleKeyDown = function (event) { case tvKey.KEY_FF:
Main.log("FF");
Display.showProgress();
- if (Player.isRecording == true) {
+/* if (Player.isRecording == true) {
Notify.showNotify("Recording!!!", true);
}
- else if (Player.mFormat != Player.ePDL )
+ else */
+ if (Player.mFormat != Player.ePDL )
Notify.showNotify("Not supported", true);
else
Player.fastForwardVideo();
@@ -971,10 +733,11 @@ cPlayStateKeyHndl.prototype.handleKeyDown = function (event) { case tvKey.KEY_RW:
Main.log("RW");
Display.showProgress();
- if (Player.isRecording == true) {
+/* if (Player.isRecording == true) {
Notify.showNotify("Recording!!!", true);
}
- else if (Player.mFormat != Player.ePDL )
+ else */
+ if (Player.mFormat != Player.ePDL )
Notify.showNotify("Not supported", true);
else
Player.RewindVideo();
@@ -1185,7 +948,6 @@ function cMenuKeyHndl (def_hndl) { cMenuKeyHndl.prototype.handleKeyDown = function (event) {
var keyCode = event.keyCode;
- Main.log(this.handlerName+": Key pressed: " + Main.getKeyCode(keyCode));
switch(keyCode) {
@@ -1199,6 +961,15 @@ cMenuKeyHndl.prototype.handleKeyDown = function (event) { Main.log("Left");
Main.selectPageUp();
break;
+ case tvKey.KEY_DOWN:
+ Main.log("DOWN");
+ Main.selectNextVideo();
+ break;
+
+ case tvKey.KEY_UP:
+ Main.log("UP");
+ Main.selectPreviousVideo();
+ break;
case tvKey.KEY_ENTER:
case tvKey.KEY_PLAY:
@@ -1236,17 +1007,9 @@ cMenuKeyHndl.prototype.handleKeyDown = function (event) { widgetAPI.blockNavigation(event);
break;
- case tvKey.KEY_DOWN:
- Main.log("DOWN");
- Main.selectNextVideo();
- break;
-
- case tvKey.KEY_UP:
- Main.log("UP");
- Main.selectPreviousVideo();
- break;
default:
+ Main.log(this.handlerName+": Key pressed: " + Main.getKeyCode(keyCode));
this.defaultKeyHandler.handleDefKeyDown(keyCode);
break;
}
@@ -1377,3 +1140,292 @@ cDefaulKeyHndl.prototype.handleDefKeyDown = function (keyCode) { // ---------------------------------------------
+// -----------------------------------------------
+
+Main.getKeyCode = function(code) {
+ var res = "";
+
+ if (Config.deviceType != 0) {
+ // Not a Samsung
+ res = "Unknown Key (KeyCode= " + code + ")";
+ return res;
+ }
+ switch(code) {
+ case tvKey.KEY_1:
+ res = "KEY_1";
+ break;
+ case tvKey.KEY_2:
+ res = "KEY_2";
+ break;
+ case tvKey.KEY_3:
+ res = "KEY_3";
+ break;
+ case tvKey.KEY_4:
+ res = "KEY_4";
+ break;
+ case tvKey.KEY_5:
+ res = "KEY_5";
+ break;
+ case tvKey.KEY_6:
+ res = "KEY_6";
+ break;
+ case tvKey.KEY_7:
+ res = "KEY_7";
+ break;
+ case tvKey.KEY_8:
+ res = "KEY_8";
+ break;
+ case tvKey.KEY_9:
+ res = "KEY_9";
+ break;
+
+ case tvKey.KEY_TOOLS:
+ res = "KEY_TOOLS";
+ break;
+
+ case tvKey.KEY_TOOLS:
+ res = "KEY_TOOLS";
+ break;
+
+ case tvKey.KEY_TOOLS:
+ res = "KEY_TOOLS";
+ break;
+
+ case tvKey.KEY_UP:
+ res = "KEY_UP";
+ break;
+
+ case tvKey.KEY_DOWN:
+ res = "KEY_DOWN";
+ break;
+
+ case tvKey.KEY_LEFT:
+ res = "KEY_LEFT";
+ break;
+
+ case tvKey.KEY_RIGHT:
+ res = "KEY_RIGHT";
+ break;
+
+ case tvKey.KEY_WHEELDOWN:
+ res = "KEY_WHEELDOWN";
+ break;
+
+ case tvKey.KEY_WHEELUP:
+ res = "KEY_WHEELUP";
+ break;
+
+ case tvKey.KEY_ENTER:
+ res = "KEY_ENTER";
+ break;
+
+ case tvKey.KEY_INFO:
+ res = "KEY_INFO";
+ break;
+
+ case tvKey.KEY_EXIT:
+ res = "KEY_EXIT";
+ break;
+
+ case tvKey.KEY_RETURN:
+ res = "KEY_RETURN";
+ break;
+
+ case tvKey.KEY_RED:
+ res = "KEY_RED";
+ break;
+
+ case tvKey.KEY_GREEN:
+ res = "KEY_GREEN";
+ break;
+
+ case tvKey.KEY_YELLOW:
+ res = "KEY_YELLOW";
+ break;
+
+ case tvKey.KEY_BLUE:
+ res = "KEY_BLUE";
+ break;
+
+ case tvKey.KEY_INFOLINK:
+ res = "KEY_INFOLINK";
+ break;
+
+ case tvKey.KEY_RW:
+ res = "KEY_RW";
+ break;
+
+ case tvKey.KEY_PAUSE:
+ res = "KEY_PAUSE";
+ break;
+
+ case tvKey.KEY_FF:
+ res = "KEY_FF";
+ break;
+
+ case tvKey.KEY_PLAY:
+ res = "KEY_PLAY";
+ break;
+
+ case tvKey.KEY_STOP:
+ res = "KEY_STOP";
+ break;
+
+ case tvKey.KEY_EMPTY:
+ res = "KEY_EMPTY";
+ break;
+
+ case tvKey.KEY_PRECH:
+ res = "KEY_PRECH";
+ break;
+
+ case tvKey.KEY_SOURCE:
+ res = "KEY_SOURCE";
+ break;
+
+ case tvKey.KEY_CHLIST:
+ res = "KEY_CHLIST";
+ break;
+
+ case tvKey.KEY_MENU:
+ res = "KEY_MENU";
+ break;
+
+ case tvKey.KEY_WLINK:
+ res = "KEY_WLINK";
+ break;
+
+ case tvKey.KEY_CC:
+ res = "KEY_CC";
+ break;
+
+ case tvKey.KEY_CONTENT:
+ res = "KEY_CONTENT";
+ break;
+
+ case tvKey.KEY_FAVCH:
+ res = "KEY_FAVCH";
+ break;
+
+ case tvKey.KEY_REC:
+ res = "KEY_REC";
+ break;
+
+ case tvKey.KEY_EMODE:
+ res = "KEY_EMODE";
+ break;
+
+ case tvKey.KEY_DMA:
+ res = "KEY_DMA";
+ break;
+
+ case tvKey.KEY_VOL_UP:
+ res = "KEY_VOL_UP";
+ break;
+
+ case tvKey.KEY_VOL_DOWN:
+ res = "KEY_VOL_DOWN";
+ break;
+
+ case tvKey.KEY_PANEL_CH_UP:
+ res = "KEY_PANEL_CH_UP";
+ break;
+
+ case tvKey.KEY_PANEL_CH_DOWN:
+ res = "KEY_PANEL_CH_DOWN";
+ break;
+
+ case tvKey.KEY_PANEL_VOL_UP:
+ res = "KEY_PANEL_VOL_UP";
+ break;
+
+ case tvKey.KEY_PANEL_VOL_DOWN:
+ res = "KEY_PANEL_VOL_DOWN";
+ break;
+
+ case tvKey.KEY_PANEL_ENTER:
+ res = "KEY_PANEL_ENTER";
+ break;
+
+ case tvKey.KEY_PANEL_RETURN:
+ res = "KEY_PANEL_RETURN";
+ break;
+
+ case tvKey.KEY_PANEL_SOURCE:
+ res = "KEY_PANEL_SOURCE";
+ break;
+
+ case tvKey.KEY_PANEL_MENU:
+ res = "KEY_PANEL_MENU";
+ break;
+
+ case tvKey.KEY_PANEL_POWER:
+ res = "KEY_PANEL_POWER";
+ break;
+
+
+ default:
+ res = "Unknown Key (" + code + ")";
+ break;
+ }
+ return res;
+};
+
+Main.tvKeys = {
+ KEY_UP :38,
+ KEY_DOWN :40,
+ KEY_LEFT :37,
+ KEY_RIGHT :39,
+ KEY_ENTER :13,
+
+ KEY_STOP :27, // ESC
+// KEY_MUTE :27,
+
+ // Un-used keycodes
+ KEY_RETURN :88,
+ KEY_EXIT :45,
+ KEY_RED :108,
+ KEY_GREEN :20,
+ KEY_YELLOW :21,
+ KEY_BLUE :22,
+ KEY_RW :69,
+ KEY_PAUSE :74,
+ KEY_FF :72,
+ KEY_PLAY :71,
+ KEY_STOP :70,
+ KEY_1 :101,
+ KEY_2 :98,
+ KEY_3 :6,
+ KEY_4 :8,
+ KEY_5 :9,
+ KEY_6 :10,
+ KEY_7 :12,
+ KEY_8 :13,
+ KEY_9 :14,
+ KEY_0 :17,
+
+ KEY_PANEL_CH_UP :104,
+ KEY_PANEL_CH_DOWN :106,
+ KEY_PANEL_VOL_UP :203,
+ KEY_PANEL_VOL_DOWN :204,
+ KEY_PANEL_ENTER :309,
+ KEY_PANEL_SOURCE :612,
+ KEY_PANEL_MENU :613,
+ KEY_PANEL_POWER :614,
+
+ KEY_POWER :76,
+ KEY_VOL_UP :7,
+ KEY_VOL_DOWN :11,
+ KEY_CH_UP :68,
+ KEY_CH_DOWN :65,
+ KEY_MTS :655,
+ KEY_12 :1057,
+ KEY_AD :1039,
+ KEY_FF_ :1078,
+ KEY_REWIND_ :1080,
+ KEY_SLEEP :1097,
+ KEY_STEP :1023,
+ KEY_HOME :1118
+
+};
+
|