From 06b03558e680213f34d74b091063345cb2638a4f Mon Sep 17 00:00:00 2001 From: Don Archer Date: Thu, 4 Aug 2016 22:42:51 -0700 Subject: [PATCH] fixed some state change muckery --- FirebaseKaraoke/FirebaseController.cs | 37 ++++++++------------------- Herse.Models/PlayerState.cs | 6 ++--- KaraokePlayer/MainForm.cs | 14 +++------- 3 files changed, 17 insertions(+), 40 deletions(-) diff --git a/FirebaseKaraoke/FirebaseController.cs b/FirebaseKaraoke/FirebaseController.cs index b446018..2507933 100644 --- a/FirebaseKaraoke/FirebaseController.cs +++ b/FirebaseKaraoke/FirebaseController.cs @@ -17,7 +17,7 @@ namespace KaraokePlayer.Classes AuthSecret = ConfigurationManager.AppSettings["Firebase.Secret"], BasePath = ConfigurationManager.AppSettings["Firebase.Path"] }; - private string _state = "playing"; + private PlayerState _state = PlayerState.playing; private IFirebaseClient _client; private ControllerStateChangedEventHandler _stateChanged; private ControllerSongChangedEventHandler _songChanged; @@ -36,7 +36,8 @@ namespace KaraokePlayer.Classes public void SetState(PlayerState state) { - Update(string.Format("controllers/{0}", this.Id), new { state = _state }); + _state = state; + _client.Set(StatePath, "playing"); } public FirebaseController(string clientId, ControllerStateChangedEventHandler stateChanged, ControllerSongChangedEventHandler songChanged) @@ -47,14 +48,7 @@ namespace KaraokePlayer.Classes _client = new FirebaseClient(config); SetupListener(); } - - public void PlaySong(Song song) { Update(string.Format("Controllers/{0}", this.Id), new { CurrentSong = song }); } - - - private void Delete(string path) { _client.DeleteAsync(path); } - - private void Update(string path, object data) { _client.UpdateAsync(path, data); } - + private async void SetupListener() { await _client.OnAsync(CurrentSongPath, @@ -77,7 +71,8 @@ namespace KaraokePlayer.Classes changed: (s, args, obj) => { Console.WriteLine("state changed " + args.Data); - StateDidChange(args.Data); + PlayerState newstate = (PlayerState)Enum.Parse(typeof(PlayerState), args.Data); + StateDidChange(newstate); }, removed: null ); @@ -94,23 +89,11 @@ namespace KaraokePlayer.Classes } } - private void StateDidChange(string state) + private void StateDidChange(PlayerState newstate) { - if (state == _state) return; - _state = state; - switch(state) - { - case "paused": - _stateChanged(new ControllerStateChangedEventArgs(PlayerState.Paused)); - break; - case "stopped": - _stateChanged(new ControllerStateChangedEventArgs(PlayerState.Stopped)); - break; - case "playing": - _stateChanged(new ControllerStateChangedEventArgs(PlayerState.Playing)); - break; - } + if (newstate == _state) return; + _state = newstate; + _stateChanged(new ControllerStateChangedEventArgs(newstate)); } - } } diff --git a/Herse.Models/PlayerState.cs b/Herse.Models/PlayerState.cs index 05c6fd8..07a72a1 100644 --- a/Herse.Models/PlayerState.cs +++ b/Herse.Models/PlayerState.cs @@ -8,8 +8,8 @@ namespace Herse.Models { public enum PlayerState { - Playing, - Stopped, - Paused + playing, + stopped, + paused } } diff --git a/KaraokePlayer/MainForm.cs b/KaraokePlayer/MainForm.cs index 057fba9..d816f21 100644 --- a/KaraokePlayer/MainForm.cs +++ b/KaraokePlayer/MainForm.cs @@ -37,13 +37,13 @@ namespace KaraokePlayer { switch (args.State) { - case PlayerState.Playing: + case PlayerState.playing: this.Invoke(new Action(() => { player.play(); })); break; - case PlayerState.Paused: + case PlayerState.paused: this.Invoke(new Action(() => { player.pause(); })); break; - case PlayerState.Stopped: + case PlayerState.stopped: this.Invoke(new Action(() => { player.stop(); })); break; } @@ -62,14 +62,8 @@ namespace KaraokePlayer songInfoForm.Show(); await Task.Delay(TimeSpan.FromSeconds(5)); player.play(); - controller.SetState(PlayerState.Playing); + controller.SetState(PlayerState.playing); songInfoForm.Hide(); } - - - - - - } }