I think i've got simultaneous playback working but it is hard to test
This commit is contained in:
@ -17,17 +17,25 @@ namespace Aurora.Design.Views.Main
|
||||
/// <param name="media"></param>
|
||||
public delegate void SetPlayerMetadataDelegate(BaseMedia media);
|
||||
|
||||
public delegate void SetPlayerVisibleDelegate(Boolean visible);
|
||||
|
||||
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
public partial class MainView : MasterDetailPage, IDisposable
|
||||
{
|
||||
private Dictionary<int, BaseViewModel> _viewModels;
|
||||
private BaseViewModel _lastViewModel;
|
||||
private Player _player;
|
||||
private ContentPresenter _viewContent;
|
||||
|
||||
public MainView()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindingContext = new MainViewModel();
|
||||
_viewModels = new Dictionary<int, BaseViewModel>();
|
||||
|
||||
_player = (Player)ContentPage.FindByName("Player");
|
||||
_viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
|
||||
|
||||
MasterPage.ListView.ItemSelected += OnNavItemSelected;
|
||||
|
||||
Appearing += OnAppearing;
|
||||
@ -84,8 +92,7 @@ namespace Aurora.Design.Views.Main
|
||||
//Assign player controls to viewmodel
|
||||
AssignPlayerControls(vm);
|
||||
|
||||
ContentPresenter viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
|
||||
viewContent.Content = view;
|
||||
_viewContent.Content = view;
|
||||
|
||||
MasterPage.ListView.SelectedItem = null;
|
||||
}
|
||||
@ -121,9 +128,7 @@ namespace Aurora.Design.Views.Main
|
||||
AssignPlayerControls(vm);
|
||||
vm.OnActive();
|
||||
|
||||
|
||||
ContentPresenter viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
|
||||
viewContent.Content = view;
|
||||
_viewContent.Content = view;
|
||||
|
||||
MasterPage.ListView.SelectedItem = screenList.FirstOrDefault();
|
||||
}
|
||||
@ -135,6 +140,7 @@ namespace Aurora.Design.Views.Main
|
||||
private void UnassignPlayerControls(BaseViewModel vm)
|
||||
{
|
||||
vm.SetPlayerMetadata = null;
|
||||
vm.SetPlayerVisible = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -143,25 +149,37 @@ namespace Aurora.Design.Views.Main
|
||||
/// <param name="vm">BaseViewModel to assign controls to</param>
|
||||
private void AssignPlayerControls(BaseViewModel vm)
|
||||
{
|
||||
Player player = (Player)ContentPage.FindByName("Player");
|
||||
player.PlayButtonCommand = new Command(vm.OnPlayExecute, vm.CanPlayExecute);
|
||||
player.NextButtonCommand = new Command(vm.OnNextExecute, vm.CanNextExecute);
|
||||
player.PreviousButtonCommand = new Command(vm.OnPreviousExecute, vm.CanPreviousExecute);
|
||||
_player.PlayButtonCommand = new Command(vm.OnPlayButtonExecute, vm.CanPlayButtonExecute);
|
||||
_player.NextButtonCommand = new Command(vm.OnNextButtonExecute, vm.CanNextButtonExecute);
|
||||
_player.PreviousButtonCommand = new Command(vm.OnPreviousButtonExecute, vm.CanPreviousButtonExecute);
|
||||
|
||||
//Assign SetPlayer delegate
|
||||
vm.SetPlayerMetadata = SetPlayerDelegate;
|
||||
vm.SetPlayerMetadata = SetPlayer;
|
||||
vm.SetPlayerVisible = SetPlayerVisible;
|
||||
}
|
||||
|
||||
private void SetPlayerDelegate(BaseMedia media)
|
||||
/// <summary>
|
||||
/// SetPlayerDelegate implementation
|
||||
/// </summary>
|
||||
/// <param name="media"></param>
|
||||
private void SetPlayer(BaseMedia media)
|
||||
{
|
||||
Player player = (Player)ContentPage.FindByName("Player");
|
||||
if (media.Metadata is AudioMetadata)
|
||||
{
|
||||
AudioMetadata meta = (AudioMetadata)media.Metadata;
|
||||
player.ArtistName = meta.Artist;
|
||||
player.SongTitle = meta.Title;
|
||||
_player.ArtistName = meta.Artist;
|
||||
_player.SongTitle = meta.Title;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetPlayerVisibleDelegate implementation
|
||||
/// </summary>
|
||||
/// <param name="visible"></param>
|
||||
private void SetPlayerVisible(Boolean visible)
|
||||
{
|
||||
_player.IsVisible = visible;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user