]> git.parisson.com Git - telemeta.git/commitdiff
retrieve player.js
authorriccardo <riccardo@parisson.com>
Wed, 9 Feb 2011 14:49:23 +0000 (15:49 +0100)
committerriccardo <riccardo@parisson.com>
Wed, 9 Feb 2011 14:49:23 +0000 (15:49 +0100)
telemeta/htdocs/js/player.js [new file with mode: 0644]
telemeta/htdocs/js/playerUtils.js [new file with mode: 0644]

diff --git a/telemeta/htdocs/js/player.js b/telemeta/htdocs/js/player.js
new file mode 100644 (file)
index 0000000..4ff463d
--- /dev/null
@@ -0,0 +1,102 @@
+var sound = null;
+var soundUrl = null;
+var soundEngineReady = false;
+var map;
+var provider;
+var player;
+var player_image_url = null;
+
+function togglePlayerMaximization() {
+    var view = $('#player');
+    $('#player_maximized, #player_minimized').css('display', 'none');
+    var ctr;
+    if (view.parents('#player_maximized').length) {
+        ctr = $('#player_minimized').append(view);
+    } else {
+        ctr = $('#player_maximized').append(view);
+    }
+    ctr.css({opacity: 0, display: 'block'});
+    if (player)
+        player.resize();
+    ctr.animate({opacity: 1}, 100);
+}
+
+function load_sound() {
+    if (!sound && soundUrl && soundEngineReady) {
+        sound = soundManager.createSound({
+            id: 'sound',
+            url: soundUrl
+        });
+        
+        TimeSide.load(function() {
+            provider.setSource(sound);
+        });
+        // sound.load(); // Auto-loading overloads the Django test server
+    }
+}
+
+function change_visualizer() {
+    set_player_image_url($('#visualizer_id').get(0).value);
+    if (player)
+        player.refreshImage();
+    return false;
+}
+
+function load_player(duration) {
+    $(document).ready(function () {
+        if (!$('#player').length)
+            return;
+
+        soundUrl = $('.ts-wave a').attr('href');
+
+        $('.ts-wave a img').insertAfter('.ts-wave a');
+        $('.ts-wave a').remove();
+
+        TimeSide.load(function() {
+            map = new TimeSide.MarkerMap();
+            provider = new TimeSide.SoundProvider({duration: duration});
+            player = new TimeSide.Player('#player', {
+                image: get_player_image_src
+            });
+            controller = new TimeSide.Controller({
+                player: player,
+                soundProvider: provider, 
+                map: map
+            });
+            change_visualizer();
+            player.resize();
+        });
+
+        $('#visualizer_id').change(change_visualizer);
+        $('#visualizer_id_form').submit(change_visualizer);
+
+        $('#player_maximized .toggle, #player_minimized .toggle').click(function() {
+            togglePlayerMaximization();
+            this.blur();
+            return false;
+        });
+
+        load_sound();
+    });    
+
+    soundManager.onload = function() {
+        soundEngineReady = true;
+        load_sound();
+    }
+
+}
+
+function set_player_image_url(str) {
+    player_image_url = str;
+}
+
+function get_player_image_src(width, height) {
+    var src = null;
+    if (player_image_url && (width || height)) {
+        src = player_image_url.replace('WIDTH', width + '').replace('HEIGHT', height + '');
+    }
+    return src;
+}
+
+
+
diff --git a/telemeta/htdocs/js/playerUtils.js b/telemeta/htdocs/js/playerUtils.js
new file mode 100644 (file)
index 0000000..4ff463d
--- /dev/null
@@ -0,0 +1,102 @@
+var sound = null;
+var soundUrl = null;
+var soundEngineReady = false;
+var map;
+var provider;
+var player;
+var player_image_url = null;
+
+function togglePlayerMaximization() {
+    var view = $('#player');
+    $('#player_maximized, #player_minimized').css('display', 'none');
+    var ctr;
+    if (view.parents('#player_maximized').length) {
+        ctr = $('#player_minimized').append(view);
+    } else {
+        ctr = $('#player_maximized').append(view);
+    }
+    ctr.css({opacity: 0, display: 'block'});
+    if (player)
+        player.resize();
+    ctr.animate({opacity: 1}, 100);
+}
+
+function load_sound() {
+    if (!sound && soundUrl && soundEngineReady) {
+        sound = soundManager.createSound({
+            id: 'sound',
+            url: soundUrl
+        });
+        
+        TimeSide.load(function() {
+            provider.setSource(sound);
+        });
+        // sound.load(); // Auto-loading overloads the Django test server
+    }
+}
+
+function change_visualizer() {
+    set_player_image_url($('#visualizer_id').get(0).value);
+    if (player)
+        player.refreshImage();
+    return false;
+}
+
+function load_player(duration) {
+    $(document).ready(function () {
+        if (!$('#player').length)
+            return;
+
+        soundUrl = $('.ts-wave a').attr('href');
+
+        $('.ts-wave a img').insertAfter('.ts-wave a');
+        $('.ts-wave a').remove();
+
+        TimeSide.load(function() {
+            map = new TimeSide.MarkerMap();
+            provider = new TimeSide.SoundProvider({duration: duration});
+            player = new TimeSide.Player('#player', {
+                image: get_player_image_src
+            });
+            controller = new TimeSide.Controller({
+                player: player,
+                soundProvider: provider, 
+                map: map
+            });
+            change_visualizer();
+            player.resize();
+        });
+
+        $('#visualizer_id').change(change_visualizer);
+        $('#visualizer_id_form').submit(change_visualizer);
+
+        $('#player_maximized .toggle, #player_minimized .toggle').click(function() {
+            togglePlayerMaximization();
+            this.blur();
+            return false;
+        });
+
+        load_sound();
+    });    
+
+    soundManager.onload = function() {
+        soundEngineReady = true;
+        load_sound();
+    }
+
+}
+
+function set_player_image_url(str) {
+    player_image_url = str;
+}
+
+function get_player_image_src(width, height) {
+    var src = null;
+    if (player_image_url && (width || height)) {
+        src = player_image_url.replace('WIDTH', width + '').replace('HEIGHT', height + '');
+    }
+    return src;
+}
+
+
+