Player controls now get dynamically assigned to view model base classes.

This gives view models more freedom in how play events from the player are handled
This commit is contained in:
watsonb8 committed 2019-11-06 22:32:43 -05:00
1 parent 759c05e53b
commit 794b4739b1
12 files changed
+549 -187

No files matched your search

+35 -4
View File
@@ -34,6 +34,19 @@ namespace Aurora.Services.PlayerService
get { return _state; }
}
public bool IsLoaded
{
get
{
return this._currentMedia == null;
}
}
public bool IsMediaLoaded(BaseMedia media)
{
return _currentMedia == media;
}
/// <summary>
/// Load media into the media player.
/// </summary>
@@ -51,7 +64,11 @@ namespace Aurora.Services.PlayerService
_mediaPlayer.Stopped += OnStopped;
md.Dispose();
MediaChanged.Invoke(this, new MediaChangedEventArgs(_currentMedia.Metadata));
if (MediaChanged != null)
{
MediaChanged.Invoke(this, new MediaChangedEventArgs(_currentMedia.Metadata));
}
}
/// <summary>
@@ -62,7 +79,11 @@ namespace Aurora.Services.PlayerService
PlaybackState oldState = _state;
_state = PlaybackState.Playing;
_mediaPlayer.Play();
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
if (PlaybackStateChanged != null)
{
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
}
}
/// <summary>
@@ -73,7 +94,11 @@ namespace Aurora.Services.PlayerService
PlaybackState oldState = _state;
_state = PlaybackState.Buffering;
_mediaPlayer.Pause();
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
if (PlaybackStateChanged != null)
{
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
}
}
/// <summary>
@@ -84,7 +109,12 @@ namespace Aurora.Services.PlayerService
PlaybackState oldState = _state;
_state = PlaybackState.Stopped;
_mediaPlayer.Stop();
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
if (PlaybackStateChanged != null)
{
PlaybackStateChanged.Invoke(this, new PlaybackStateChangedEventArgs(oldState, _state));
}
}
public void Enqueue(BaseMedia song)
@@ -103,6 +133,7 @@ namespace Aurora.Services.PlayerService
private void Unload()
{
_currentMedia.Unload();
_currentMedia = null;
_mediaPlayer.Media = null;
_mediaPlayer = null;
}