Merge remote-tracking branch 'origin/gui' into gui

This commit is contained in:
2015-10-31 00:05:46 +01:00
5 changed files with 60 additions and 6 deletions
+12 -2
View File
@@ -5,6 +5,8 @@ using System.Text;
using System.Threading.Tasks;
using MusicPlayer;
using Newtonsoft.Json.Linq;
using System.IO;
using System.Drawing;
namespace MusicPlayer
{
@@ -95,13 +97,21 @@ namespace MusicPlayer
public List<Album> GetAlbums()
{
List<Album> albumlist = new List<Album>();
Image def = Image.FromStream(nw.downloadArtwork("default-cover.png"));
JObject o = nw.SendString("getalbums?id=hallo");
if (o["result"].ToString() == "OK")
{
for (int i = 0; i < o["albums"].Count(); i++)
{
albumlist.Add(new Album(o["albums"][i][0].ToString()));
MemoryStream stream = nw.downloadArtwork(o["albums"][i][0].ToString() + ".jpg");
if (stream != null) {
albumlist.Add(new Album(o["albums"][i][0].ToString(), Image.FromStream(stream)));
stream.Close();
}
else
{
albumlist.Add(new Album(o["albums"][i][0].ToString(), def));
}
}
}
Executable → Regular
+7 -2
View File
@@ -1,12 +1,17 @@
namespace MusicPlayer
using System.Drawing;
namespace MusicPlayer
{
public class Album
{
public string albumnaam { get; set; }
public Image cover;
public Album(string albumnaam)
public Album(string albumnaam, Image c)
{
this.albumnaam = albumnaam;
this.cover = c;
}
}
}
Executable → Regular
+5 -1
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MusicPlayer
{
@@ -15,6 +16,7 @@ namespace MusicPlayer
public AudioHandler audio;
private SongsTable table;
private ImageList imagelist;
public Main(NetworkHandler nw, APIHandler api, MainForm form, PlaylistHandler pl)
{
@@ -26,6 +28,7 @@ namespace MusicPlayer
audio = new AudioHandler();
table = new SongsTable();
imagelist = new ImageList();
form.SongsTableView.DataSource = table;
form.SongsTableView.Columns[5].Visible = false;
Populate();
@@ -33,7 +36,8 @@ namespace MusicPlayer
private void Populate()
{
this.api.GetAlbums().ForEach(a => form.AlbumListView.Items.Add(a.albumnaam));
form.AlbumListView.LargeImageList = imagelist;
this.api.GetAlbums().ForEach(a => { var item = form.AlbumListView.Items.Add(a.albumnaam); imagelist.Images.Add(a.albumnaam, a.cover); item.ImageKey = 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));
+35
View File
@@ -2,6 +2,7 @@
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Web;
using System.Net;
using System.IO;
using Newtonsoft.Json.Linq;
@@ -40,6 +41,40 @@ namespace MusicPlayer
streamResponse.Close();
streamRead.Close();
return o;
}
public MemoryStream downloadArtwork(string album)
{
try
{
WebRequest req = WebRequest.Create((ip + "/music/artwork/"+album).Replace(" ", "%20"));
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
//Download in chuncks
byte[] buffer = new byte[1024]; //Get Total Size
int dataLength = (int)response.ContentLength;
//Download to memory
MemoryStream memStream = new MemoryStream();
while (true)
{
//Try to read the data
int bytesRead = stream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
{
break;
}
else
{ memStream.Write(buffer, 0, bytesRead);
}
} //Clean up
stream.Close();
//Convert the downloaded stream to a byte array
return memStream;
}
catch (Exception)
{ return null;
}
}
}
}
+1 -1
View File
@@ -17,7 +17,7 @@ namespace MusicPlayer
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NetworkHandler nw = new NetworkHandler("http://www.imegumii.nl");
NetworkHandler nw = new NetworkHandler("http://jancokock.me");
APIHandler api = new APIHandler(nw);
MainForm form = new MainForm();
PlaylistHandler pl = new PlaylistHandler(api);