From: riccardo Date: Wed, 9 Feb 2011 14:49:23 +0000 (+0100) Subject: retrieve player.js X-Git-Tag: 1.1~455 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=1911cce6b7a86760c3f350fab257736bbe89a4b8;p=telemeta.git retrieve player.js --- diff --git a/telemeta/htdocs/js/player.js b/telemeta/htdocs/js/player.js new file mode 100644 index 00000000..4ff463d1 --- /dev/null +++ b/telemeta/htdocs/js/player.js @@ -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 index 00000000..4ff463d1 --- /dev/null +++ b/telemeta/htdocs/js/playerUtils.js @@ -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; +} + + +