diff options
Diffstat (limited to 'smarttv-client/Javascript/ImgViewer.js')
-rw-r--r-- | smarttv-client/Javascript/ImgViewer.js | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/smarttv-client/Javascript/ImgViewer.js b/smarttv-client/Javascript/ImgViewer.js new file mode 100644 index 0000000..ea8739f --- /dev/null +++ b/smarttv-client/Javascript/ImgViewer.js @@ -0,0 +1,170 @@ +var ImgViewer = {
+ returnCallback : null
+};
+
+ImgViewer.init = function () {
+ var elem = document.getElementById('iv-anchor');
+ elem.setAttribute('onkeydown', 'ImgViewer.onInput();');
+
+ $("#imageViewer").hide();
+};
+
+ImgViewer.show = function () {
+ Display.hide();
+ $("#imageViewer").show();
+
+ $("#iv-anchor").focus();
+
+ Main.log ("URL= " + Data.getCurrentItem().childs[Main.selectedVideo].payload.link);
+
+ Spinner.show();
+
+ if (ImgViewer.isImage() == true) {
+ ImgViewer.showImage();
+ }
+ else {
+ ImgViewer.showNextImage();
+ }
+};
+
+ImgViewer.hide = function () {
+ Display.show();
+ $("#imageViewer").hide();
+ Spinner.hide();
+ Main.enableKeys();
+};
+
+ImgViewer.isImage = function() {
+ if ((Data.getCurrentItem().childs[Main.selectedVideo].payload.mime == "image/jpeg") ||
+ (Data.getCurrentItem().childs[Main.selectedVideo].payload.mime == "image/png"))
+ return true;
+ else
+ return false;
+
+};
+
+ImgViewer.showNextImage = function () {
+ Main.logToServer("ImgViewer.showNextImage curIdx= " +Main.selectedVideo);
+ var start_ts = new Date().getTime();
+
+ var start_idx = Main.selectedVideo;
+ var found_next = false;
+ Main.nextVideo(1) ;
+ while ( start_idx != Main.selectedVideo ) {
+ Main.logToServer ("ImgViewer.showNextImage: Main.selectedVideo increased to " + Main.selectedVideo);
+ if (ImgViewer.isImage() == true) {
+
+ Main.logToServer( "Found idx= " +Main.selectedVideo);
+ found_next = true;
+ break;
+ }
+ Main.nextVideo(1);
+
+ }
+ var now = new Date().getTime();
+ Main.logToServer ("Duration= " + (now-start_ts));
+
+ if (found_next)
+ ImgViewer.showImage();
+ else {
+ Notify.showNotify("No Image Found", true);
+ ImgViewer.hide();
+ }
+};
+
+ImgViewer.showPrevImage = function () {
+ Main.log("ImgViewer.showPrevImage curIdx= " +Main.selectedVideo);
+ var start_ts = new Date().getTime();
+
+ var start_idx = Main.selectedVideo;
+ var found_next = false;
+ Main.previousVideo(1);
+ while ( start_idx != Main.selectedVideo ) {
+ Main.log ("ImgViewer.showPrevImage: Main.selectedVideo increased to " + Main.selectedVideo);
+ if (ImgViewer.isImage() == true) {
+
+ Main.log( "Found idx= " +Main.selectedVideo);
+ found_next = true;
+ break;
+ }
+ Main.previousVideo(1);
+
+ }
+ var now = new Date().getTime();
+ Main.logToServer ("Duration= " + (now-start_ts));
+
+ if (found_next)
+ ImgViewer.showImage();
+ else {
+ Notify.showNotify("No Image Found", true);
+ ImgViewer.hide();
+ }
+};
+
+ImgViewer.showImage = function () {
+ Main.logToServer("showImage: "+ Data.getCurrentItem().childs[Main.selectedVideo].payload.link);
+
+ $("#ivImage")
+ .error(function() {
+ Main.log("ERROR");
+ ImgViewer.hide();
+ Spinner.hide();
+ Notify.showNotify("Error while loading image.", true);
+ })
+ .load(function () {
+ Main.logToServer("showImage Loaded");
+ Spinner.hide();
+ if($(this).height() > $(this).width()) {
+ $(this).css({"height": "100%", "width" : "auto"});
+ }
+ else {
+ $(this).css({"width": "100%", "height" : "auto"});
+ }})
+ .attr('src', Data.getCurrentItem().childs[Main.selectedVideo].payload.link +"?"+Math.random());
+};
+
+ImgViewer.onInput = function () {
+ var keyCode = event.keyCode;
+ Main.log(" ImgViewer key= " + keyCode);
+ switch(keyCode) {
+ case tvKey.KEY_LEFT:
+ Main.log("ImgViewer-Select Left");
+ Spinner.show();
+
+ ImgViewer.showPrevImage();
+ break;
+ case tvKey.KEY_RIGHT:
+ Main.log("ImgViewer-Select Right");
+ Spinner.show();
+
+ ImgViewer.showNextImage();
+ break;
+ case tvKey.KEY_ENTER:
+// Buttons.ynShow();
+ // Show overlay info
+
+ break;
+ case tvKey.KEY_RETURN:
+ case tvKey.KEY_EXIT:
+ case tvKey.KEY_STOP:
+ ImgViewer.hide();
+
+ if (this.returnCallback != null)
+ this.returnCallback();
+ break;
+
+ }
+ try {
+ widgetAPI.blockNavigation(event);
+ }
+ catch (e) {
+ };
+
+};
+// In need an Image Folder on the server, similar to Media Folder
+// All jpg and JPG are found recursively and provided as a Data Structure
+// Subfolders are separated through ~
+
+// in need some plugin preceedures to handle, delete, rotate, ...
+
+// The Media Folder should actually already provide the jpgs
\ No newline at end of file |