Moved music playing controls from individual viewmodels to main view

This commit is contained in:
watsonb8
2019-12-04 20:42:23 -08:00
parent 187de97503
commit 3576a906e2
7 changed files with 145 additions and 148 deletions

View File

@ -31,7 +31,6 @@ namespace Aurora.Design.Views.Party
private ObservableCollection<PartyMember> _members;
private ObservableCollection<BaseMedia> _queue;
private BaseMedia _selectedMedia;
private PlayerService _player;
private ClientService _client;
public PartyViewModel()
@ -43,7 +42,6 @@ namespace Aurora.Design.Views.Party
_queue = new ObservableCollection<BaseMedia>();
SetState(PartyState.SelectingHost);
this._player = PlayerService.Instance;
PlayCommand = new Command(OnDoubleClickExecute, CanDoubleClickExecute);
@ -296,40 +294,33 @@ namespace Aurora.Design.Views.Party
public override void OnPlayButtonExecute()
{
switch (_player.PlaybackState)
if (base.IsPlaying())
{
case PlaybackState.Buffering:
{
//Fire play resume event
AudioMetadata meta = _selectedMedia.Metadata as AudioMetadata;
MediaResumedEvent mediaResumed = new MediaResumedEvent();
//Fire play stopped event
AudioMetadata meta = _selectedMedia.Metadata as AudioMetadata;
MediaPausedEvent mediaPaused = new MediaPausedEvent();
EventManager.Instance.FireEvent(new BaseEvent()
{
MediaResumedEvent = mediaResumed
});
EventManager.Instance.FireEvent(new BaseEvent()
{
MediaPausedEvent = mediaPaused
});
}
else
{
//Fire play resume event
AudioMetadata meta = _selectedMedia.Metadata as AudioMetadata;
MediaResumedEvent mediaResumed = new MediaResumedEvent();
break;
}
case PlaybackState.Playing:
{
//Fire play stopped event
AudioMetadata meta = _selectedMedia.Metadata as AudioMetadata;
MediaPausedEvent mediaPaused = new MediaPausedEvent();
EventManager.Instance.FireEvent(new BaseEvent()
{
MediaPausedEvent = mediaPaused
});
break;
}
EventManager.Instance.FireEvent(new BaseEvent()
{
MediaResumedEvent = mediaResumed
});
}
}
public override bool CanPlayButtonExecute()
{
return this._state == PartyState.Hosting && this._player.IsLoaded;
return this._state == PartyState.Hosting;
}
public override bool CanNextButtonExecute()
@ -491,21 +482,19 @@ namespace Aurora.Design.Views.Party
return null;
}
}
private async void PlayFromBeginning(BaseMedia args)
private void PlayFromBeginning(BaseMedia args)
{
base.Media = args;
await _player.LoadMedia(base.Media).ConfigureAwait(true);
_player.Play();
base.ChangePlayerState(args, Main.PlayAction.Play);
}
private void PlayResume()
{
_player.Play();
base.ChangePlayerState(null, Main.PlayAction.Resume);
}
private void StopPlaying()
{
_player.Pause();
base.ChangePlayerState(null, Main.PlayAction.Pause);
}
#endregion Private Methods