fixed some state change muckery
This commit is contained in:
parent
d1172c8843
commit
06b03558e6
@ -17,7 +17,7 @@ namespace KaraokePlayer.Classes
|
|||||||
AuthSecret = ConfigurationManager.AppSettings["Firebase.Secret"],
|
AuthSecret = ConfigurationManager.AppSettings["Firebase.Secret"],
|
||||||
BasePath = ConfigurationManager.AppSettings["Firebase.Path"]
|
BasePath = ConfigurationManager.AppSettings["Firebase.Path"]
|
||||||
};
|
};
|
||||||
private string _state = "playing";
|
private PlayerState _state = PlayerState.playing;
|
||||||
private IFirebaseClient _client;
|
private IFirebaseClient _client;
|
||||||
private ControllerStateChangedEventHandler _stateChanged;
|
private ControllerStateChangedEventHandler _stateChanged;
|
||||||
private ControllerSongChangedEventHandler _songChanged;
|
private ControllerSongChangedEventHandler _songChanged;
|
||||||
@ -36,7 +36,8 @@ namespace KaraokePlayer.Classes
|
|||||||
|
|
||||||
public void SetState(PlayerState state)
|
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)
|
public FirebaseController(string clientId, ControllerStateChangedEventHandler stateChanged, ControllerSongChangedEventHandler songChanged)
|
||||||
@ -47,14 +48,7 @@ namespace KaraokePlayer.Classes
|
|||||||
_client = new FirebaseClient(config);
|
_client = new FirebaseClient(config);
|
||||||
SetupListener();
|
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()
|
private async void SetupListener()
|
||||||
{
|
{
|
||||||
await _client.OnAsync(CurrentSongPath,
|
await _client.OnAsync(CurrentSongPath,
|
||||||
@ -77,7 +71,8 @@ namespace KaraokePlayer.Classes
|
|||||||
changed: (s, args, obj) =>
|
changed: (s, args, obj) =>
|
||||||
{
|
{
|
||||||
Console.WriteLine("state changed " + args.Data);
|
Console.WriteLine("state changed " + args.Data);
|
||||||
StateDidChange(args.Data);
|
PlayerState newstate = (PlayerState)Enum.Parse(typeof(PlayerState), args.Data);
|
||||||
|
StateDidChange(newstate);
|
||||||
},
|
},
|
||||||
removed: null
|
removed: null
|
||||||
);
|
);
|
||||||
@ -94,23 +89,11 @@ namespace KaraokePlayer.Classes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StateDidChange(string state)
|
private void StateDidChange(PlayerState newstate)
|
||||||
{
|
{
|
||||||
if (state == _state) return;
|
if (newstate == _state) return;
|
||||||
_state = state;
|
_state = newstate;
|
||||||
switch(state)
|
_stateChanged(new ControllerStateChangedEventArgs(newstate));
|
||||||
{
|
|
||||||
case "paused":
|
|
||||||
_stateChanged(new ControllerStateChangedEventArgs(PlayerState.Paused));
|
|
||||||
break;
|
|
||||||
case "stopped":
|
|
||||||
_stateChanged(new ControllerStateChangedEventArgs(PlayerState.Stopped));
|
|
||||||
break;
|
|
||||||
case "playing":
|
|
||||||
_stateChanged(new ControllerStateChangedEventArgs(PlayerState.Playing));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,8 @@ namespace Herse.Models
|
|||||||
{
|
{
|
||||||
public enum PlayerState
|
public enum PlayerState
|
||||||
{
|
{
|
||||||
Playing,
|
playing,
|
||||||
Stopped,
|
stopped,
|
||||||
Paused
|
paused
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,13 +37,13 @@ namespace KaraokePlayer
|
|||||||
{
|
{
|
||||||
switch (args.State)
|
switch (args.State)
|
||||||
{
|
{
|
||||||
case PlayerState.Playing:
|
case PlayerState.playing:
|
||||||
this.Invoke(new Action(() => { player.play(); }));
|
this.Invoke(new Action(() => { player.play(); }));
|
||||||
break;
|
break;
|
||||||
case PlayerState.Paused:
|
case PlayerState.paused:
|
||||||
this.Invoke(new Action(() => { player.pause(); }));
|
this.Invoke(new Action(() => { player.pause(); }));
|
||||||
break;
|
break;
|
||||||
case PlayerState.Stopped:
|
case PlayerState.stopped:
|
||||||
this.Invoke(new Action(() => { player.stop(); }));
|
this.Invoke(new Action(() => { player.stop(); }));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -62,14 +62,8 @@ namespace KaraokePlayer
|
|||||||
songInfoForm.Show();
|
songInfoForm.Show();
|
||||||
await Task.Delay(TimeSpan.FromSeconds(5));
|
await Task.Delay(TimeSpan.FromSeconds(5));
|
||||||
player.play();
|
player.play();
|
||||||
controller.SetState(PlayerState.Playing);
|
controller.SetState(PlayerState.playing);
|
||||||
songInfoForm.Hide();
|
songInfoForm.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user