got end of song working

This commit is contained in:
Don Archer 2016-08-06 09:59:23 -07:00
parent cdce3825bd
commit c3e65fcb63
3 changed files with 23 additions and 4 deletions

View File

@ -34,6 +34,15 @@ namespace KaraokePlayer.Classes
public string Id { get; set; }
public Song CurrentSong { get; set; }
public void EndSong()
{
//_client.DeleteAsync(CurrentSongPath.TrimEnd('/'));
var response = _client.Get(string.Format("controllers/{0}/queue", this.Id));
List<QueueItem> queue = response.ResultAs<List<QueueItem>>();
queue.RemoveAt(0);
_client.Set(string.Format("controllers/{0}/queue", this.Id), queue);
}
public void SetState(PlayerState state)
{
_state = state;
@ -82,7 +91,7 @@ namespace KaraokePlayer.Classes
{
var response = _client.Get(CurrentSongPath);
var item = response.ResultAs<QueueItem>();
if (item == null) return;
if (item == null) return;
if (CurrentSong == null || CurrentSong.Path != item.Song.Path)
{
CurrentSong = item.Song;

View File

@ -21,10 +21,16 @@ namespace KaraokePlayer
private FirebaseController controller;
private PlayerWrapper player;
public void SongEnded()
{
controller.EndSong();
}
public MainForm()
{
InitializeComponent();
player = new PlayerWrapper(karaokeCDGPlayer, karaokeMP4Player);
player.OnSongEnded += SongEnded;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
//this.WindowState = FormWindowState.Maximized;
@ -53,7 +59,8 @@ namespace KaraokePlayer
this.Invoke(new Action(() => { player.stop(); }));
player.Song = args.Song;
this.Invoke(new Action(() => { previewSong(); }));
});
}
);
}
private async void previewSong()

View File

@ -18,6 +18,9 @@ namespace KaraokePlayer
private KaraokeVideoPlayer cdgPlayer;
public Song Song { get; set; }
public delegate void SongEndedEventHandler();
public SongEndedEventHandler OnSongEnded { get; set; }
public PlayerWrapper(KaraokeVideoPlayer cdgPlayer, KaraokeVideoPlayer mp4Player)
{
cdgPlayer.setup(true, true);
@ -32,15 +35,15 @@ namespace KaraokePlayer
private void karaokePlayerSongEnded(object sender, EventArgs e)
{
//TODO: figure out how to play the next song. probably just delete the current one
if (OnSongEnded != null) OnSongEnded();
}
public void stop()
{
if (currentPlayer == null) return;
currentPlayer.Stop();
}
public void pause()
{
if (currentPlayer == null) return;