src/widgets/PopcornPlayer.js
changeset 970 b1c3bf6eca78
parent 967 b4c6e64acb2d
child 976 4b9ec475026a
--- a/src/widgets/PopcornPlayer.js	Tue Oct 02 18:08:05 2012 +0200
+++ b/src/widgets/PopcornPlayer.js	Wed Oct 24 11:08:31 2012 +0200
@@ -83,57 +83,64 @@
         }
     }
     
-
+    var _media = this.media;
+    
     // Binding functions to Popcorn
     
-    this.media.getCurrentTime = function() {
-        return new IriSP.Model.Time(1000*_popcorn.currentTime());
-    }
-    this.media.getVolume = function() {
-        return _popcorn.volume();
-    }
-    this.media.getPaused = function() {
-        return _popcorn.media.paused;
-    }
-    this.media.getMuted = function() {
-        return _popcorn.muted();
-    }
-    this.media.setCurrentTime = function(_milliseconds) {
-        return _popcorn.currentTime(_milliseconds / 1000);
-    }
-    this.media.setVolume = function(_vol) {
-        return _popcorn.volume(_vol);
-    }
-    this.media.mute = function() {
-        return _popcorn.muted(true);
-    }
-    this.media.unmute = function() {
-        return _popcorn.muted(false);
-    }
-    this.media.play = function() {
-        return _popcorn.play();
-    }
-    this.media.pause = function() {
-        return _popcorn.pause();
-    }
+    _media.on("setcurrenttime", function(_milliseconds) {
+        _popcorn.currentTime(_milliseconds / 1000);
+    });
+    
+    _media.on("setvolume", function(_vol) {
+        _popcorn.volume(_vol);
+        _media.volume = _vol;
+    });
+    
+    _media.on("setmuted", function(_muted) {
+        _popcorn.muted(_muted);
+        _media.muted = _muted;
+    });
+    
+    _media.on("setplay", function() {
+        _popcorn.play();
+    });
+    
+    _media.on("setpause", function() {
+        _popcorn.pause();
+    });
     
     // Binding Popcorn events to media
     
-    var _media = this.media;
+    function getVolume() {
+        _media.muted = _popcorn.muted();
+        _media.volume = _popcorn.volume();
+    }
+    
+    _popcorn.on("loadedmetadata", function() {
+        getVolume();
+        _media.trigger("loadedmetadata");
+        _media.trigger("volumechange");
+    })
+    
     _popcorn.on("timeupdate", function() {
-        _media.trigger("timeupdate", _media.getCurrentTime());
+        _media.trigger("timeupdate", new IriSP.Model.Time(1000*_popcorn.currentTime()));
     });
     
-    function simpleEventBind(_eventname) {
-        _popcorn.on(_eventname, function() {
-            _media.trigger(_eventname);
-        });
-    }
+    _popcorn.on("volumechange", function() {
+        getVolume();
+        _media.trigger("volumechange");
+    })
     
-    simpleEventBind("play");
-    simpleEventBind("pause");
-    simpleEventBind("seeked");
-    simpleEventBind("loadedmetadata");
-    simpleEventBind("volumechange");
+    _popcorn.on("play", function() {
+        _media.trigger("play");
+    });
+    
+    _popcorn.on("pause", function() {
+        _media.trigger("pause");
+    });
+    
+    _popcorn.on("seeked", function() {
+        _media.trigger("seeked");
+    });
     
 }
\ No newline at end of file