diff --git a/MusicPlayer/MusicPlayer/APIHandler.cs b/MusicPlayer/MusicPlayer/APIHandler.cs
index 145f02a..2a855c0 100755
--- a/MusicPlayer/MusicPlayer/APIHandler.cs
+++ b/MusicPlayer/MusicPlayer/APIHandler.cs
@@ -55,7 +55,7 @@ namespace MusicPlayer
dynamic songs = o["songs"];
for (int i = 0; i < songs.Count; i++)
{
- allsongslist.Add(new Song(songs[i][0].ToString(), songs[i][3].ToString(), songs[i][5].ToString(), songs[i][4].ToString(), this));
+ allsongslist.Add(new Song(songs[i][0].ToString(), songs[i][3].ToString(), songs[i][5].ToString(), songs[i][4].ToString(), songs[i][1].ToString(), (int)songs[i][9], this));
}
}
return allsongslist;
diff --git a/MusicPlayer/MusicPlayer/Main.cs b/MusicPlayer/MusicPlayer/Main.cs
index c1fc010..621a820 100755
--- a/MusicPlayer/MusicPlayer/Main.cs
+++ b/MusicPlayer/MusicPlayer/Main.cs
@@ -11,16 +11,18 @@ namespace MusicPlayer
public APIHandler api;
public MainForm form;
public NetworkHandler nw;
+ public PlaylistHandler pl;
public AudioHandler audio;
private SongsTable table;
- public Main(NetworkHandler nw, APIHandler api, MainForm form)
+ public Main(NetworkHandler nw, APIHandler api, MainForm form, PlaylistHandler pl)
{
this.nw = nw;
this.api = api;
this.form = form;
form.main = this;
+ this.pl = pl;
audio = new AudioHandler();
table = new SongsTable();
@@ -34,6 +36,7 @@ namespace MusicPlayer
this.api.GetAlbums().ForEach(a => form.AlbumListView.Items.Add(a.albumnaam));
this.api.GetArtists().ForEach(a => form.ArtistListBox.Items.Add(a.naam));
this.api.GetGenres().ForEach(g => form.GenreListBox.Items.Add(g.name));
+ this.pl.GetPlaylists().ForEach(p => form.PlaylistBox.Items.Add(p.name));
}
public void ArtistFilter(string artist)
diff --git a/MusicPlayer/MusicPlayer/MainForm.Designer.cs b/MusicPlayer/MusicPlayer/MainForm.Designer.cs
index c70b9d7..bc28ba8 100644
--- a/MusicPlayer/MusicPlayer/MainForm.Designer.cs
+++ b/MusicPlayer/MusicPlayer/MainForm.Designer.cs
@@ -431,7 +431,7 @@
private System.Windows.Forms.Label GenreListLabel;
private System.Windows.Forms.ToolStripMenuItem playlistsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem overviewToolStripMenuItem;
- private System.Windows.Forms.ListBox PlaylistBox;
+ public System.Windows.Forms.ListBox PlaylistBox;
private System.Windows.Forms.Label PlaylistListLabel;
}
}
diff --git a/MusicPlayer/MusicPlayer/MusicPlayer.csproj b/MusicPlayer/MusicPlayer/MusicPlayer.csproj
index 0f3f9af..1911bc7 100755
--- a/MusicPlayer/MusicPlayer/MusicPlayer.csproj
+++ b/MusicPlayer/MusicPlayer/MusicPlayer.csproj
@@ -73,6 +73,8 @@
NotificationPopup.cs
+
+
diff --git a/MusicPlayer/MusicPlayer/Playlist.cs b/MusicPlayer/MusicPlayer/Playlist.cs
new file mode 100644
index 0000000..303d2ba
--- /dev/null
+++ b/MusicPlayer/MusicPlayer/Playlist.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace MusicPlayer
+{
+ public class Playlist
+ {
+ public string name { get; }
+ private string basedir;
+ public List songs;
+ public Playlist(string name, string basedir)
+ {
+ this.songs = new List();
+ this.name = name;
+ this.basedir = basedir;
+ }
+
+ public void AddSong(Song s)
+ {
+ this.songs.Add(s);
+ }
+
+ public void WriteToFile()
+ {
+ using (StreamWriter stw = new StreamWriter(basedir + name + ".txt"))
+ {
+ this.songs.ForEach(s =>
+ {
+ stw.WriteLine(s.ToString());
+ });
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/MusicPlayer/MusicPlayer/PlaylistHandler.cs b/MusicPlayer/MusicPlayer/PlaylistHandler.cs
new file mode 100644
index 0000000..e0f3450
--- /dev/null
+++ b/MusicPlayer/MusicPlayer/PlaylistHandler.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace MusicPlayer
+{
+ public class PlaylistHandler
+ {
+ private List playlists;
+ private readonly string basedir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\.mpplaylists\\";
+ public PlaylistHandler()
+ {
+ this.playlists = new List();
+ Populate();
+ }
+
+ private void Populate()
+ {
+ try {
+ Directory.GetFiles(basedir).ToList().ForEach(f =>
+ {
+ if (f.EndsWith(".txt"))
+ {
+ playlists.Add(new Playlist(Path.GetFileName(f.Replace(".txt","")) ,basedir));
+ }
+ });
+ }
+ catch (DirectoryNotFoundException)
+ {
+ Directory.CreateDirectory(basedir);
+ Populate();
+ }
+
+
+ }
+
+ public List GetPlaylists()
+ {
+ return playlists;
+ }
+ }
+}
\ No newline at end of file
diff --git a/MusicPlayer/MusicPlayer/Program.cs b/MusicPlayer/MusicPlayer/Program.cs
index 173d7ff..eaf250f 100755
--- a/MusicPlayer/MusicPlayer/Program.cs
+++ b/MusicPlayer/MusicPlayer/Program.cs
@@ -19,28 +19,9 @@ namespace MusicPlayer
NetworkHandler nw = new NetworkHandler("http://www.imegumii.nl");
APIHandler api = new APIHandler(nw);
-// api.GetSongsByArtist("Amon Amarth").ForEach(s =>
-// {
-// Console.WriteLine(s.SongID);
-// });
-// api.GetSongsByYear("2009").ForEach(s =>
-// {
-// Console.WriteLine(s.Name);
-// });
-// api.GetSongsByGenre("Melodic Death Metal").ForEach(s =>
-// {
-// Console.WriteLine(s.Name);
-// });
-// api.GetSongsByAlbum("Stronger").ForEach(s =>
-// {
-// Console.WriteLine(s.Name);
-// });
- api.GetAllSongs().ForEach(s =>
- {
- Console.WriteLine(s.Name);
- });
MainForm form = new MainForm();
- new Main(nw, api, form);
+ PlaylistHandler pl = new PlaylistHandler();
+ new Main(nw, api, form,pl);
Application.Run(form);
}
diff --git a/MusicPlayer/MusicPlayer/Song.cs b/MusicPlayer/MusicPlayer/Song.cs
index 18a3bf4..aa8a637 100755
--- a/MusicPlayer/MusicPlayer/Song.cs
+++ b/MusicPlayer/MusicPlayer/Song.cs
@@ -48,5 +48,10 @@ namespace MusicPlayer
{
url = str;
}
+
+ public override string ToString()
+ {
+ return $"{this.SongID}|{this.Name}|{this.Album}|{this.Artist}|{this.Seconds}|{this.Genre}";
+ }
}
}