[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [owncloud] apps/media/js: persistent playlist for the media player
From:       Robin Appelman <icewind1991 () gmail ! com>
Date:       2011-07-31 23:12:40
Message-ID: 20110731231240.44E3EA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 76a2f5b5476c87d330cb81a25793461554af416a by Robin Appelman.
Committed on 01/08/2011 at 01:12.
Pushed by rappelman into branch 'master'.

persistent playlist for the media player

M  +22   -1    apps/media/js/player.js
M  +5    -0    apps/media/js/files.js
M  +1    -0    apps/media/js/music.js

http://commits.kde.org/owncloud/76a2f5b5476c87d330cb81a25793461554af416a

diff --git a/apps/media/js/files.js b/apps/media/js/files.js
index 307c601..79741e1 100644
--- a/apps/media/js/files.js
+++ b/apps/media/js/files.js
@@ -47,4 +47,9 @@ $(document).ready(function() {
 	FileActions.register('application/ogg','','Play',playAudio);
 	FileActions.setDefault('audio','Play');
 	FileActions.setDefault('application/ogg','Play');
+	if(typeof localStorage !== 'undefined'){
+		if(localStorage.hasOwnProperty('oc_playlist_items')){
+			loadPlayer();
+		}
+	}
 });
\ No newline at end of file
diff --git a/apps/media/js/music.js b/apps/media/js/music.js
index 3dee877..90b5a09 100644
--- a/apps/media/js/music.js
+++ b/apps/media/js/music.js
@@ -41,6 +41,7 @@ $(document).ready(function(){
 		});
 		row.find('div.name').append(button);
 	}
+	PlayList.init();
 });
 
 
diff --git a/apps/media/js/player.js b/apps/media/js/player.js
index 1243f20..d79d613 100644
--- a/apps/media/js/player.js
+++ b/apps/media/js/player.js
@@ -33,11 +33,13 @@ var PlayList={
 					PlayList.player.jPlayer("setMedia", PlayList.items[PlayList.current]);
 					PlayList.items[index].playcount++;
 					PlayList.player.jPlayer("play");
-					if(Collection){
+					if (typeof Collection !== 'undefined') {
 						Collection.registerPlay();
 					}
 				}
 			}else{
+				localStorage.setItem('oc_playlist_current',PlayList.current);
+				localStorage.setItem('oc_playlist_playing','true');
 				PlayList.init(PlayList.items[index].type,PlayList.play);
 			}
 		}
@@ -62,6 +64,7 @@ var PlayList={
 			ended:PlayList.next,
 			supplied:type,
 			ready:function(){
+				PlayList.load();
 				if(ready){
 					ready();
 				}
@@ -93,6 +96,7 @@ var PlayList={
 			item[type]=PlayList.urlBase+encodeURIComponent(song.song_path);
 			PlayList.items.push(item);
 		}
+		PlayList.save();
 	},
 	addFile:function(path){
 		var type=musicTypeFromFile(path);
@@ -116,5 +120,22 @@ var PlayList={
 		}else{
 			return !PlayList.player.data("jPlayer").status.paused;
 		}
+	},
+	save:function(){
+		if(typeof localStorage !== 'undefined'){
+			localStorage.setItem('oc_playlist_items',JSON.stringify(PlayList.items));
+		}
+	},
+	load:function(){
+		if(typeof localStorage !== 'undefined'){
+			if(localStorage.hasOwnProperty('oc_playlist_items')){
+				PlayList.items=JSON.parse(localStorage.getItem('oc_playlist_items'));
+				PlayList.current=parseInt((localStorage.getItem('oc_playlist_current')));
+				if(JSON.parse(localStorage.getItem('oc_playlist_playing'))){
+					PlayList.play();
+				}
+				PlayList.render();
+			}
+		}
 	}
 }

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic