Progress
This commit is contained in:
parent
01736333e9
commit
cf05045448
@ -99,10 +99,24 @@ namespace Aurora.Design.Components.DataGrid
|
|||||||
self._noDataView.IsVisible = false;
|
self._noDataView.IsVisible = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
void HandleItemsSourceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
void HandleItemsSourceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
InternalItems = new List<object>(((IEnumerable)sender).Cast<object>());
|
// InternalItems = new List<object>(((IEnumerable)sender).Cast<object>());
|
||||||
|
if (e.NewItems != null)
|
||||||
|
{
|
||||||
|
foreach (object item in e.NewItems)
|
||||||
|
{
|
||||||
|
InternalItems.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.OldItems != null)
|
||||||
|
{
|
||||||
|
foreach (object item in e.OldItems)
|
||||||
|
{
|
||||||
|
InternalItems.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (SelectedItem != null && !InternalItems.Contains(SelectedItem))
|
if (SelectedItem != null && !InternalItems.Contains(SelectedItem))
|
||||||
SelectedItem = null;
|
SelectedItem = null;
|
||||||
}
|
}
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ContentView
|
|
||||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
||||||
x:Class="Aurora.Design.Components.HostSelector.HostSelector">
|
|
||||||
<ContentView.Content>
|
|
||||||
<Grid>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition
|
|
||||||
Height="*"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<StackLayout
|
|
||||||
Grid.Row="0"
|
|
||||||
x:Name="CredentialEditorLayout"
|
|
||||||
HorizontalOptions="Center"
|
|
||||||
VerticalOptions="Start">
|
|
||||||
<Label
|
|
||||||
Text="Hostname"
|
|
||||||
VerticalOptions="Center"/>
|
|
||||||
<Entry
|
|
||||||
x:Name="HostnameEntry"/>
|
|
||||||
<StackLayout
|
|
||||||
Orientation="Horizontal"
|
|
||||||
HorizontalOptions="Center">
|
|
||||||
<Button
|
|
||||||
HorizontalOptions="Center"
|
|
||||||
x:Name="buttonHost"
|
|
||||||
Text="Host"/>
|
|
||||||
<Button
|
|
||||||
HorizontalOptions="Center"
|
|
||||||
x:Name="buttonClient"
|
|
||||||
Text="Join"/>
|
|
||||||
</StackLayout>
|
|
||||||
</StackLayout>
|
|
||||||
</Grid>
|
|
||||||
</ContentView.Content>
|
|
||||||
</ContentView>
|
|
@ -1,121 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace Aurora.Design.Components.HostSelector
|
|
||||||
{
|
|
||||||
public enum ConnectionType
|
|
||||||
{
|
|
||||||
Host,
|
|
||||||
Client,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum SelectorState
|
|
||||||
{
|
|
||||||
SelectingHost,
|
|
||||||
EnteringCredentials,
|
|
||||||
}
|
|
||||||
|
|
||||||
public partial class HostSelector : ContentView
|
|
||||||
{
|
|
||||||
|
|
||||||
public HostSelector()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
//Set initial conditions
|
|
||||||
CredentialEditorLayout.IsVisible = true;
|
|
||||||
|
|
||||||
buttonHost.Clicked += OnButtonHostClicked;
|
|
||||||
buttonClient.Clicked += OnButtonClientClicked;
|
|
||||||
HostnameEntry.TextChanged += (sender, e) =>
|
|
||||||
{
|
|
||||||
Hostname = e.NewTextValue;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// On the host button clicked.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender">Sender.</param>
|
|
||||||
/// <param name="e">E.</param>
|
|
||||||
void OnButtonHostClicked(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (HostCommand.CanExecute(null))
|
|
||||||
{
|
|
||||||
HostCommand.Execute(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// On the client button clicked.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender">Sender.</param>
|
|
||||||
/// <param name="e">E.</param>
|
|
||||||
void OnButtonClientClicked(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (JoinCommand.CanExecute(null))
|
|
||||||
{
|
|
||||||
JoinCommand.Execute(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Host Selected Command
|
|
||||||
public static readonly BindableProperty HostCommandProperty =
|
|
||||||
BindableProperty.Create(propertyName: "HostSelectedCommand",
|
|
||||||
returnType: typeof(Command),
|
|
||||||
declaringType: typeof(HostSelector));
|
|
||||||
|
|
||||||
public Command HostCommand
|
|
||||||
{
|
|
||||||
get { return (Command)GetValue(HostCommandProperty); }
|
|
||||||
set { SetValue(HostCommandProperty, value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Host Selected Command
|
|
||||||
|
|
||||||
#region Client Selected Command
|
|
||||||
public static readonly BindableProperty JoinCommandProperty =
|
|
||||||
BindableProperty.Create(propertyName: "JoinSelectedCommand",
|
|
||||||
returnType: typeof(Command),
|
|
||||||
declaringType: typeof(HostSelector));
|
|
||||||
|
|
||||||
public Command JoinCommand
|
|
||||||
{
|
|
||||||
get { return (Command)GetValue(JoinCommandProperty); }
|
|
||||||
set { SetValue(JoinCommandProperty, value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Client Selected Command
|
|
||||||
|
|
||||||
#region Hostname property
|
|
||||||
public static readonly BindableProperty HostnameProperty =
|
|
||||||
BindableProperty.Create(propertyName: "Hostname",
|
|
||||||
returnType: typeof(string),
|
|
||||||
declaringType: typeof(HostSelector),
|
|
||||||
defaultBindingMode: BindingMode.TwoWay,
|
|
||||||
propertyChanged: OnHostNameChanged);
|
|
||||||
|
|
||||||
public string Hostname
|
|
||||||
{
|
|
||||||
get { return (string)GetValue(HostnameProperty); }
|
|
||||||
set { SetValue(HostnameProperty, value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnHostNameChanged(BindableObject bindable, object oldValue, object newValue)
|
|
||||||
{
|
|
||||||
string newVal = newValue as string;
|
|
||||||
HostSelector instance = bindable as HostSelector;
|
|
||||||
if (instance.HostnameEntry.Text != newVal)
|
|
||||||
{
|
|
||||||
instance.HostnameEntry.Text = newVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Hostname property
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,8 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Aurora.Models.Media;
|
using Aurora.Models.Media;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
namespace Aurora.Design.Components.Library
|
namespace Aurora.Design.Components.Library
|
||||||
{
|
{
|
||||||
@ -29,7 +32,54 @@ namespace Aurora.Design.Components.Library
|
|||||||
returnType: typeof(IEnumerable<object>),
|
returnType: typeof(IEnumerable<object>),
|
||||||
declaringType: typeof(Library),
|
declaringType: typeof(Library),
|
||||||
defaultBindingMode: BindingMode.Default,
|
defaultBindingMode: BindingMode.Default,
|
||||||
propertyChanged: OnItemsSourceChanged);
|
propertyChanged: (BindableObject bindable, object oldValue, object newValue) =>
|
||||||
|
{
|
||||||
|
Library control = bindable as Library;
|
||||||
|
|
||||||
|
var libraryDataGrid = control.LibraryDataGrid;
|
||||||
|
libraryDataGrid.ItemsSource = newValue as IEnumerable<object>;
|
||||||
|
if (newValue is INotifyPropertyChanged)
|
||||||
|
{
|
||||||
|
var collection = newValue as INotifyCollectionChanged;
|
||||||
|
collection.CollectionChanged += (object sender, NotifyCollectionChangedEventArgs eventArgs) =>
|
||||||
|
OnItemSourceCollectionChanged(sender, eventArgs, bindable);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldValue is INotifyPropertyChanged)
|
||||||
|
{
|
||||||
|
var collection = newValue as INotifyCollectionChanged;
|
||||||
|
collection.CollectionChanged -= (object sender, NotifyCollectionChangedEventArgs eventArgs) =>
|
||||||
|
OnItemSourceCollectionChanged(sender, eventArgs, bindable);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
private static void OnItemSourceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e, BindableObject bindable)
|
||||||
|
{
|
||||||
|
if (sender is IEnumerable<object>)
|
||||||
|
{
|
||||||
|
Library control = bindable as Library;
|
||||||
|
var libraryDataGrid = control.LibraryDataGrid;
|
||||||
|
var collection = libraryDataGrid.ItemsSource as IEnumerable<object>;
|
||||||
|
if (e.NewItems != null)
|
||||||
|
{
|
||||||
|
foreach (object obj in e.NewItems)
|
||||||
|
{
|
||||||
|
collection.Concat(new[] { obj });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.OldItems != null)
|
||||||
|
{
|
||||||
|
foreach (object obj in e.OldItems)
|
||||||
|
{
|
||||||
|
var list = collection.ToList();
|
||||||
|
list.Remove(obj);
|
||||||
|
collection = list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Backing property for the ItemsSource property.
|
/// Backing property for the ItemsSource property.
|
||||||
@ -47,19 +97,6 @@ namespace Aurora.Design.Components.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ItemsSource Changed event handler
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="bindable"></param>
|
|
||||||
/// <param name="oldValue"></param>
|
|
||||||
/// <param name="newValue"></param>
|
|
||||||
private static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue)
|
|
||||||
{
|
|
||||||
Library control = bindable as Library;
|
|
||||||
|
|
||||||
var libraryDataGrid = control.LibraryDataGrid;
|
|
||||||
libraryDataGrid.ItemsSource = newValue as IEnumerable<object>;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion ItemsSource Property
|
#endregion ItemsSource Property
|
||||||
|
|
||||||
|
@ -10,6 +10,6 @@ namespace Aurora.Design.Views
|
|||||||
|
|
||||||
public FinishDialogDelegate Finish { get; set; }
|
public FinishDialogDelegate Finish { get; set; }
|
||||||
|
|
||||||
public DialogReturnType ReturnObject { get; protected set; }
|
public object ReturnObject { get; protected set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
namespace Aurora.Design.Views
|
|
||||||
{
|
|
||||||
public class DialogReturnType
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -22,6 +22,7 @@
|
|||||||
<ColumnDefinition Width="150"/>
|
<ColumnDefinition Width="150"/>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!--Header-->
|
<!--Header-->
|
||||||
<StackLayout
|
<StackLayout
|
||||||
x:Name="Header"
|
x:Name="Header"
|
||||||
@ -51,7 +52,7 @@
|
|||||||
<views:PageContainer
|
<views:PageContainer
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
x:Name="ContentPage"/>
|
x:Name="Content"/>
|
||||||
|
|
||||||
<!--Modal Dialog-->
|
<!--Modal Dialog-->
|
||||||
<dialog:Modal x:Name="Modal"
|
<dialog:Modal x:Name="Modal"
|
||||||
|
@ -48,7 +48,7 @@ namespace Aurora.Design.Views.Main
|
|||||||
|
|
||||||
_playerComponent = Player;
|
_playerComponent = Player;
|
||||||
|
|
||||||
_viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
|
_viewContent = (ContentPresenter)Content.FindByName("ViewContent");
|
||||||
_playerService = PlayerService.Instance;
|
_playerService = PlayerService.Instance;
|
||||||
|
|
||||||
MasterPage.ListView.ItemSelected += OnNavItemSelected;
|
MasterPage.ListView.ItemSelected += OnNavItemSelected;
|
||||||
@ -267,7 +267,6 @@ namespace Aurora.Design.Views.Main
|
|||||||
|
|
||||||
private void ChangeModalVisiblity(bool isVisible)
|
private void ChangeModalVisiblity(bool isVisible)
|
||||||
{
|
{
|
||||||
ContentPage.IsVisible = !isVisible;
|
|
||||||
Modal.IsVisible = isVisible;
|
Modal.IsVisible = isVisible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace Aurora.Design.Views.Party.NewPartyDialog
|
|||||||
Join
|
Join
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ConnectionDetails : DialogReturnType
|
public class ConnectionDetails
|
||||||
{
|
{
|
||||||
public ConnectionDetails()
|
public ConnectionDetails()
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
<ContentView
|
<ContentView
|
||||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:hs="clr-namespace:Aurora.Design.Components.HostSelector"
|
|
||||||
xmlns:ml="clr-namespace:Aurora.Design.Components.MemberList"
|
xmlns:ml="clr-namespace:Aurora.Design.Components.MemberList"
|
||||||
xmlns:library="clr-namespace:Aurora.Design.Components.Library"
|
xmlns:library="clr-namespace:Aurora.Design.Components.Library"
|
||||||
x:Class="Aurora.Design.Views.Party.PartyView">
|
x:Class="Aurora.Design.Views.Party.PartyView">
|
||||||
@ -13,8 +12,7 @@
|
|||||||
Height="*"/>
|
Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<StackLayout
|
<StackLayout
|
||||||
Grid.Row="0"
|
Grid.Row="0">
|
||||||
IsVisible="{Binding IsNotSelectingHost}">
|
|
||||||
<Label
|
<Label
|
||||||
Text="Party Members"/>
|
Text="Party Members"/>
|
||||||
<ml:MemberList
|
<ml:MemberList
|
||||||
@ -26,8 +24,7 @@
|
|||||||
ItemsSource="{Binding Queue}"
|
ItemsSource="{Binding Queue}"
|
||||||
SelectedItem="{Binding SelectedSong}"
|
SelectedItem="{Binding SelectedSong}"
|
||||||
ItemDoubleClicked="{Binding PlayCommand}"/>
|
ItemDoubleClicked="{Binding PlayCommand}"/>
|
||||||
</StackLayout>
|
</StackLayout><!--<hs:HostSelector
|
||||||
<!--<hs:HostSelector
|
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
x:Name="HostSelectionDialog"
|
x:Name="HostSelectionDialog"
|
||||||
Hostname="{Binding Hostname}"
|
Hostname="{Binding Hostname}"
|
||||||
|
@ -28,7 +28,7 @@ namespace Aurora.Design.Views.Party
|
|||||||
public class PartyViewModel : BaseViewModel
|
public class PartyViewModel : BaseViewModel
|
||||||
{
|
{
|
||||||
private PartyState _state;
|
private PartyState _state;
|
||||||
private string _hostname;
|
private string _hostname = "";
|
||||||
private ObservableCollection<PartyMember> _members;
|
private ObservableCollection<PartyMember> _members;
|
||||||
private ObservableCollection<BaseMedia> _queue;
|
private ObservableCollection<BaseMedia> _queue;
|
||||||
private BaseMedia _selectedMedia;
|
private BaseMedia _selectedMedia;
|
||||||
@ -36,9 +36,6 @@ namespace Aurora.Design.Views.Party
|
|||||||
|
|
||||||
public PartyViewModel()
|
public PartyViewModel()
|
||||||
{
|
{
|
||||||
this.JoinCommand = new Command(OnJoinExecute, CanJoinExecute);
|
|
||||||
this.HostCommand = new Command(OnHostExecute, CanHostExecute);
|
|
||||||
|
|
||||||
_members = new ObservableCollection<PartyMember>();
|
_members = new ObservableCollection<PartyMember>();
|
||||||
_queue = new ObservableCollection<BaseMedia>();
|
_queue = new ObservableCollection<BaseMedia>();
|
||||||
|
|
||||||
@ -78,20 +75,6 @@ namespace Aurora.Design.Views.Party
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsSelectingHost
|
|
||||||
{
|
|
||||||
get { return _state == PartyState.SelectingHost; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Public property indicating the state.
|
|
||||||
/// </summary>
|
|
||||||
/// <value></value>
|
|
||||||
public bool IsNotSelectingHost
|
|
||||||
{
|
|
||||||
get { return _state != PartyState.SelectingHost; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Public property for queue item source
|
/// Public property for queue item source
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -111,18 +94,6 @@ namespace Aurora.Design.Views.Party
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Public property for the hostname bindable field
|
|
||||||
/// </summary>
|
|
||||||
/// <value></value>
|
|
||||||
public string Hostname
|
|
||||||
{
|
|
||||||
get { return _hostname; }
|
|
||||||
set { SetProperty(ref _hostname, value); }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Public property for the currently selected song.
|
/// Public property for the currently selected song.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -139,18 +110,6 @@ namespace Aurora.Design.Views.Party
|
|||||||
/// <value></value>
|
/// <value></value>
|
||||||
public Command PlayCommand { get; private set; }
|
public Command PlayCommand { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Public property for join command
|
|
||||||
/// </summary>
|
|
||||||
/// <value></value>
|
|
||||||
public Command JoinCommand { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Pubic property for host command
|
|
||||||
/// </summary>
|
|
||||||
/// <value></value>
|
|
||||||
public Command HostCommand { get; set; }
|
|
||||||
|
|
||||||
#endregion Properties
|
#endregion Properties
|
||||||
|
|
||||||
#region Events
|
#region Events
|
||||||
@ -167,8 +126,26 @@ namespace Aurora.Design.Views.Party
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var asdf = await this.ShowModal(typeof(NewPartyDialog.NewPartyDialog), typeof(NewPartyDialogViewModel));
|
//Open host selection modal
|
||||||
System.Diagnostics.Debug.WriteLine("");
|
var modalResult = await this.ShowModal(typeof(NewPartyDialog.NewPartyDialog), typeof(NewPartyDialogViewModel));
|
||||||
|
if (modalResult is ConnectionDetails)
|
||||||
|
{
|
||||||
|
ConnectionDetails details = modalResult as ConnectionDetails;
|
||||||
|
_hostname = details.HostName;
|
||||||
|
switch (details.ConnectionType)
|
||||||
|
{
|
||||||
|
case ConnectionType.Host:
|
||||||
|
{
|
||||||
|
OnHostExecute();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ConnectionType.Join:
|
||||||
|
{
|
||||||
|
OnJoinExecute();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,7 +227,7 @@ namespace Aurora.Design.Views.Party
|
|||||||
private async void OnJoinExecute()
|
private async void OnJoinExecute()
|
||||||
{
|
{
|
||||||
SetState(PartyState.Connecting);
|
SetState(PartyState.Connecting);
|
||||||
_client.Start(Hostname, SettingsService.Instance.DefaultPort.ToString());
|
_client.Start(_hostname, SettingsService.Instance.DefaultPort.ToString());
|
||||||
await JoinParty(false);
|
await JoinParty(false);
|
||||||
|
|
||||||
//TODO add cancellation token
|
//TODO add cancellation token
|
||||||
@ -392,9 +369,10 @@ namespace Aurora.Design.Views.Party
|
|||||||
//Subscribe to events
|
//Subscribe to events
|
||||||
await SubscribeToEvents();
|
await SubscribeToEvents();
|
||||||
|
|
||||||
|
Queue.Clear();
|
||||||
QueueResponse queueResponse = _client.RemotePartyClient.GetQueue(new Empty());
|
QueueResponse queueResponse = _client.RemotePartyClient.GetQueue(new Empty());
|
||||||
|
|
||||||
Queue.Clear();
|
|
||||||
//Convert received data to remote audio models
|
//Convert received data to remote audio models
|
||||||
foreach (RemoteMediaData data in queueResponse.MediaList)
|
foreach (RemoteMediaData data in queueResponse.MediaList)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user