30 //Longueur horizontale. |
30 //Longueur horizontale. |
31 this.length = len; |
31 this.length = len; |
32 //Nombre d'images dans la mosaïque. |
32 //Nombre d'images dans la mosaïque. |
33 this.imagesToShow = imgToShow; |
33 this.imagesToShow = imgToShow; |
34 //Tableaux des urls des vidéos, des snapshots et de leur position dans la mosaïque. |
34 //Tableaux des urls des vidéos, des snapshots et de leur position dans la mosaïque. |
|
35 this.videos = []; |
35 this.urls = []; |
36 this.urls = []; |
36 this.imgs = []; |
37 this.imgs = []; |
37 this.ids = []; |
38 this.ids = []; |
38 //Dimensions de la mosaïque en pixels. |
39 //Dimensions de la mosaïque en pixels. |
39 this.width; |
40 this.width; |
104 //On charge les images de petite taille pour ne pas surcharger la mosaïque lors de l'affichage global. |
109 //On charge les images de petite taille pour ne pas surcharger la mosaïque lors de l'affichage global. |
105 str += '<div id="snapshotDiv-' + i + '" class="snapshotDivs"><img id="snapshot-' + i + '" class="snapshots" src="snapshots-little/' + this.imgs[i] + '" /></div>'; |
110 str += '<div id="snapshotDiv-' + i + '" class="snapshotDivs"><img id="snapshot-' + i + '" class="snapshots" src="snapshots-little/' + this.imgs[i] + '" /></div>'; |
106 } |
111 } |
107 } |
112 } |
108 |
113 |
|
114 console.log(this.imagesToShow); |
|
115 |
109 return str; |
116 return str; |
110 } |
117 } |
111 |
118 |
112 /* |
119 /* |
113 * Permet de raffraichir la mosaïque. |
120 * Permet de raffraichir la mosaïque. |
114 */ |
121 */ |
115 mosaic.prototype.loadMosaic = function(imgsTab) |
122 mosaic.prototype.loadMosaic = function() |
116 { |
123 { |
|
124 var createMosaic = this.createMosaic(); |
|
125 |
|
126 if(createMosaic == '') |
|
127 { |
|
128 return; |
|
129 } |
|
130 |
|
131 var _this = this; |
|
132 |
117 //On affecte les chemins vers les images à la mosaïque. |
133 //On affecte les chemins vers les images à la mosaïque. |
118 this.imgs = imgsTab; |
|
119 this.previousZoomedSN; |
134 this.previousZoomedSN; |
120 //this.width = |
135 //this.width = |
121 //On met à jour la mosaïque. |
136 //On met à jour la mosaïque. |
122 $('#mainPanel').html(this.createMosaic()); |
137 $('#mainPanel').html(createMosaic); |
123 //On récupère la taille des bordures. |
138 //On récupère la taille des bordures. |
124 this.marginWidth = $('.snapshotDivs').css('margin-bottom'); |
139 this.marginWidth = $('.snapshotDivs').css('margin-bottom'); |
125 this.marginWidth = parseFloat(mos.marginWidth)*2; |
140 this.marginWidth = parseFloat(mos.marginWidth)*2; |
126 //On calcule la taille des divs contenant les snapshots. |
141 //On calcule la taille des divs contenant les snapshots. |
127 this.width = $('#mainPanel').innerWidth(); |
142 this.width = $('#mainPanel').innerWidth(); |
132 |
147 |
133 this.height = $('#mainPanel').innerHeight(); |
148 this.height = $('#mainPanel').innerHeight(); |
134 //On centre verticalement la mosaïque. |
149 //On centre verticalement la mosaïque. |
135 this.MPTop_margin = ($(document).height() - $('#mainPanel').height())/2; |
150 this.MPTop_margin = ($(document).height() - $('#mainPanel').height())/2; |
136 $('#mainPanel').css('margin-top', this.MPTop_margin).css('margin-bottom', this.MPTop_margin); |
151 $('#mainPanel').css('margin-top', this.MPTop_margin).css('margin-bottom', this.MPTop_margin); |
|
152 |
|
153 $('.snapshotDivs').mouseenter(function () |
|
154 { |
|
155 //On effectue un prézoom dès qu'on va sur une image. |
|
156 _this.preZoom($(this)); |
|
157 }); |
|
158 $('body').keypress(function (event) |
|
159 { |
|
160 //Si on a appuié sur la touche 'q' ou 'Q'; |
|
161 if(event.which == 113 || event.which == 81) |
|
162 { |
|
163 _this.unzoom(); |
|
164 } |
|
165 }); |
137 } |
166 } |
138 |
167 |
139 /* |
168 /* |
140 * Zoom sur la position d'une image, 1ère partie. Durant le laps de temps de time ms, l'utilisateur a le choix de zoomer sur une autre image. |
169 * Zoom sur la position d'une image, 1ère partie. Durant le laps de temps de time ms, l'utilisateur a le choix de zoomer sur une autre image. |
141 * Après ce laps de temps, l'image zoom complétement et il n'est plus possible de sélectionner une autre image par pointage. |
170 * Après ce laps de temps, l'image zoom complétement et il n'est plus possible de sélectionner une autre image par pointage. |
375 { |
404 { |
376 //On configure les options de lancement. |
405 //On configure les options de lancement. |
377 IriSP.libFiles.defaultDir = "../lib/"; |
406 IriSP.libFiles.defaultDir = "../lib/"; |
378 IriSP.widgetsDir = "./player/metadataplayer/" |
407 IriSP.widgetsDir = "./player/metadataplayer/" |
379 |
408 |
|
409 var videoToPlay = this.videos[this.centerId]; |
|
410 var currentMetadata = this.urls[this.centerId]; |
|
411 console.log('VIDEO[' + this.centerId + '] : ' + videoToPlay); |
|
412 console.log('MD[' + this.centerId + '] : ' + currentMetadata); |
|
413 |
380 console.log(newZoomTop + " " + newZoomLeft); |
414 console.log(newZoomTop + " " + newZoomLeft); |
381 |
415 |
382 var _metadata = { |
416 var _metadata = { |
383 url: 'http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/cljson/id/7c912bce-66b8-11e1-80f6-00145ea4a2be?callback=?', |
417 url: currentMetadata, |
384 format: 'ldt' |
418 format: 'ldt' |
385 }; |
419 }; |
386 var _config = { |
420 var _config = { |
387 gui: { |
421 gui: { |
388 width: newSnWidth, |
422 width: newSnWidth, |
554 { |
588 { |
555 'top': 0, |
589 'top': 0, |
556 'left': 0, |
590 'left': 0, |
557 'width': $(this).width() - marginValue*2, |
591 'width': $(this).width() - marginValue*2, |
558 'height': $(this).height() - marginValue*2, |
592 'height': $(this).height() - marginValue*2, |
559 'background-image': 'url(' + $('img', $(this)).attr('src') + ')', |
593 'background-image': 'url("' + $('img', $(this)).attr('src') + '")', |
560 'background-size': $(this).width() + 'px ' + $(this).height() + 'px', |
594 'background-size': $(this).width() + 'px ' + $(this).height() + 'px', |
561 'background-position': -marginValue + 'px ' + -marginValue + 'px', |
595 'background-position': -marginValue + 'px ' + -marginValue + 'px', |
562 'opacity': '0.4' |
596 'opacity': '0.4' |
563 }); |
597 }); |
564 |
598 |
733 return false; |
767 return false; |
734 } |
768 } |
735 } |
769 } |
736 return true; |
770 return true; |
737 } |
771 } |
|
772 |
|
773 /* |
|
774 * Charge les vidéos, les snapshots et les annotations depuis un fichier json. |
|
775 */ |
|
776 mosaic.prototype.loadFromJson = function(path) |
|
777 { |
|
778 var _this = this; |
|
779 |
|
780 $.getJSON(path, function(data) |
|
781 { |
|
782 $.each(data, function(key, val) |
|
783 { |
|
784 // console.log(val); |
|
785 $.each(val, function(key_video, val_video) |
|
786 { |
|
787 $.getJSON(val_video.metadata, function(meta) |
|
788 { |
|
789 _this.affectVideoById(val_video.metadata, meta.medias[0].url.replace('rtmp://', 'http://').replace('/ddc_player/', '/')); |
|
790 //console.log(meta.medias[0].url.replace('rtmp://', 'http://').replace('/ddc_player/', '/')); |
|
791 }); |
|
792 |
|
793 _this.imgs.push(val_video.snapshot); |
|
794 _this.urls.push(val_video.metadata); |
|
795 }); |
|
796 }); |
|
797 console.log('rdy'); |
|
798 _this.loadMosaic(); |
|
799 }); |
|
800 } |
|
801 |
|
802 /* |
|
803 * Affecte une vidéo au tableau des vidéos selon son id |
|
804 */ |
|
805 mosaic.prototype.affectVideoById = function(metadata_id, video) |
|
806 { |
|
807 for (i = 0 ; i < this.urls.length ; i++) |
|
808 { |
|
809 if(this.urls[i] == metadata_id) |
|
810 { |
|
811 this.videos[i] = video; |
|
812 break; |
|
813 } |
|
814 } |
|
815 } |