Added GetQueue method that returns the hosts library
This commit is contained in:
@ -5,6 +5,9 @@ using System.Linq;
|
||||
using Aurora.Proto.Party;
|
||||
using Aurora.Proto.Events;
|
||||
using Aurora.Services.EventManager;
|
||||
using Aurora.Services;
|
||||
using Aurora.Models.Media;
|
||||
using System.Collections;
|
||||
|
||||
namespace Aurora.RemoteImpl
|
||||
{
|
||||
@ -82,5 +85,50 @@ namespace Aurora.RemoteImpl
|
||||
response.Members.AddRange(_partyMembers);
|
||||
return Task.FromResult(response);
|
||||
}
|
||||
|
||||
public override Task<QueueResponse> GetQueue(Proto.General.Empty empty, Grpc.Core.ServerCallContext context)
|
||||
{
|
||||
//This will change as queuing operation gets solidified
|
||||
//Simply return the hosts library
|
||||
|
||||
ObservableCollection<BaseMedia> queue = LibraryService.Instance.GetLibrary();
|
||||
|
||||
QueueResponse mediaList = new QueueResponse();
|
||||
foreach (BaseMedia media in queue)
|
||||
{
|
||||
AudioMetadata metadata = new AudioMetadata();
|
||||
try
|
||||
{
|
||||
if (media.Metadata is AudioMetadata)
|
||||
{
|
||||
metadata = media.Metadata as AudioMetadata;
|
||||
|
||||
RemoteMediaData data = new RemoteMediaData();
|
||||
data.Title = metadata.Title == null ? metadata.Title : "";
|
||||
if (metadata.Artist != null)
|
||||
{
|
||||
data.Artist = metadata.Artist;
|
||||
}
|
||||
if (metadata.Album != null)
|
||||
{
|
||||
data.Album = metadata.Album;
|
||||
}
|
||||
if (metadata.Duration != null)
|
||||
{
|
||||
data.Duration = metadata.Duration;
|
||||
}
|
||||
|
||||
mediaList.MediaList.Add(data);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(string.Format("Error preparing queue: {0}", ex.Message));
|
||||
}
|
||||
}
|
||||
|
||||
return Task.FromResult(mediaList);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user