From ce1d13c9b6adf351818637649ca90a757c67df96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20BERNIGAUD?= Date: Thu, 25 Aug 2011 20:37:51 +0200 Subject: [PATCH] playlist working --- apps/media/js/player.js | 52 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/apps/media/js/player.js b/apps/media/js/player.js index b3beed8c3b..7581c27393 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -5,10 +5,8 @@ var PlayList={ player:null, volume:0.8, active:false, - tempPlaylist:[], - isTemp:true, next:function(){ - var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; + var items=PlayList.items; var next=PlayList.current+1; if(next>=items.length){ next=0; @@ -17,7 +15,7 @@ var PlayList={ PlayList.render(); }, previous:function(){ - var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; + var items=PlayList.items; var next=PlayList.current-1; if(next<0){ next=items.length-1; @@ -26,7 +24,7 @@ var PlayList={ PlayList.render(); }, play:function(index,time,ready){ - var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items; + var items=PlayList.items; if(index==null){ index=PlayList.current; } @@ -34,8 +32,11 @@ var PlayList={ PlayList.current=index; if(PlayList.player){ if(PlayList.player.data('jPlayer').options.supplied!=items[index].type){//the the audio type changes we need to reinitialize jplayer + PlayList.player.jPlayer("play",time); + localStorage.setItem(oc_current_user+'oc_playlist_time',time); PlayList.player.jPlayer("destroy"); - PlayList.init(items[index].type,function(){PlayList.play(null,time,ready)}); + PlayList.save(); // so that the init don't lose the playlist + PlayList.init(items[index].type,null); // init calls load that calls play }else{ PlayList.player.jPlayer("setMedia", items[PlayList.current]); items[index].playcount++; @@ -60,7 +61,10 @@ var PlayList={ } } }else{ - PlayList.init(items[index].type,PlayList.play); + localStorage.setItem(oc_current_user+'oc_playlist_time',time); + localStorage.setItem(oc_current_user+'oc_playlist_playing','true'); + PlayList.save(); // so that the init don't lose the playlist + PlayList.init(items[index].type,null); // init calls load that calls play } } }, @@ -100,37 +104,30 @@ var PlayList={ swfPath:OC.linkTo('media','js'), }); }, - add:function(song,temp,dontReset){ + add:function(song,dontReset){ if(!dontReset){ - PlayList.tempPlaylist=[];//clear the temp playlist + PlayList.items=[];//clear the playlist } - PlayList.isTemp=temp; - PlayList.isTemp=true; if(!song){ return; } if(song.substr){//we are passed a string, asume it's a url to a song - PlayList.addFile(song,temp,true); + PlayList.addFile(song,true); } if(song.albums){//a artist object was passed, add all albums inside it $.each(song.albums,function(index,album){ - PlayList.add(album,temp,true); + PlayList.add(album,true); }); - } - if(song.songs){//a album object was passed, add all songs inside it + } else if(song.songs){//a album object was passed, add all songs inside it $.each(song.songs,function(index,song){ - PlayList.add(song,temp,true); + PlayList.add(song,true); }); } if(song.path){ var type=musicTypeFromFile(song.path); var item={name:song.name,type:type,artist:song.artist,album:song.album,length:song.length,playcount:song.playCount}; item[type]=PlayList.urlBase+encodeURIComponent(song.path); - if(PlayList.isTemp){ - PlayList.tempPlaylist.push(item); - }else{ - PlayList.items.push(item); - } + PlayList.items.push(item); } }, addFile:function(path){ @@ -145,6 +142,7 @@ var PlayList={ PlayList.items.push(item); }, remove:function(index){ + alert('remove'); PlayList.items.splice(index,1); PlayList.render(); }, @@ -160,10 +158,14 @@ var PlayList={ if(typeof localStorage !== 'undefined' && localStorage){ localStorage.setItem(oc_current_user+'oc_playlist_items',JSON.stringify(PlayList.items)); localStorage.setItem(oc_current_user+'oc_playlist_current',PlayList.current); - var time=Math.round(PlayList.player.data('jPlayer').status.currentTime); - localStorage.setItem(oc_current_user+'oc_playlist_time',time); - var volume=PlayList.player.data('jPlayer').options.volume*100; - localStorage.setItem(oc_current_user+'oc_playlist_volume',volume); + if(PlayList.player) { + if(PlayList.player.data('jPlayer')) { + var time=Math.round(PlayList.player.data('jPlayer').status.currentTime); + localStorage.setItem(oc_current_user+'oc_playlist_time',time); + var volume=PlayList.player.data('jPlayer').options.volume*100; + localStorage.setItem(oc_current_user+'oc_playlist_volume',volume); + } + } if(PlayList.active){ localStorage.setItem(oc_current_user+'oc_playlist_active','false'); }