diff -r 7c1d08cf6956 -r 4da0a5740b6c src/js/init.js --- a/src/js/init.js Fri Sep 14 10:38:04 2012 +0900 +++ b/src/js/init.js Mon Sep 17 00:17:06 2012 +0900 @@ -18,8 +18,7 @@ _container.innerHTML = '

Loading... Chargement...

'; this.sourceManager = new IriSP.Model.Directory(); this.config = config; - this.callbackQueue = []; - this.isLoaded = false; + this.__events = {}; this.loadLibs(); } @@ -27,26 +26,18 @@ return 'Metadataplayer in #' + this.config.gui.container; } -IriSP.Metadataplayer.prototype.deferCallback = function(_callback) { - var _this = this; - IriSP._.defer(function() { - _callback.call(_this); - }); +IriSP.Metadataplayer.prototype.on = function(_event, _callback) { + if (typeof this.__events[_event] === "undefined") { + this.__events[_event] = []; + } + this.__events[_event].push(_callback); } -IriSP.Metadataplayer.prototype.handleCallbacks = function() { - this.isLoaded = true; - while (this.callbackQueue.length) { - this.deferCallback(this.callbackQueue.splice(0,1)[0]); - } -} - -IriSP.Metadataplayer.prototype.onLoad = function(_callback) { - if (this.isLoaded) { - this.deferCallback(_callback); - } else { - this.callbackQueue.push(_callback); - } +IriSP.Metadataplayer.prototype.trigger = function(_event, _data) { + var _element = this; + IriSP._(this.__events[_event]).each(function(_callback) { + _callback.call(_element, _data); + }); } IriSP.Metadataplayer.prototype.loadLibs = function() { @@ -100,7 +91,7 @@ IriSP.loadCss(IriSP.getLib("cssjQueryUI")); IriSP.loadCss(this.config.gui.css); - this.videoData = this.loadMetadata(this.config.player.metadata); +// this.videoData = this.loadMetadata(this.config.player.metadata); this.$ = IriSP.jQuery('#' + this.config.gui.container); this.$.css({ "width": this.config.gui.width, @@ -110,10 +101,19 @@ this.$.css("height", this.config.gui.height); } + this.widgets = []; var _this = this; + for(var i = 0; i < this.config.gui.widgets.length; i++) { + this.loadWidget(this.config.gui.widgets[i], function(_widget) { + _this.widgets.push(_widget) + }); + }; + this.$.find('.Ldt-Loader').detach(); +/* this.videoData.onLoad(function() { _this.onVideoDataLoaded(); }); +*/ } IriSP.Metadataplayer.prototype.loadMetadata = function(_metadataInfo) { @@ -130,6 +130,7 @@ } } +// TODO: REMOVE ! IriSP.Metadataplayer.prototype.onVideoDataLoaded = function() { /* Setting default media from metadata */ @@ -318,7 +319,6 @@ }); }; this.$.find('.Ldt-Loader').detach(); - this.handleCallbacks(); } IriSP.Metadataplayer.prototype.loadWidget = function(_widgetConfig, _callback) { @@ -380,3 +380,5 @@ return [newDiv, spacerDiv]; }; + +IriSP.Metadataplayer.prototype.on