async void chimneyMpdServer_OnPlay(object sender, ResponseEventArgs e)
{
int index = 0;
if (e.arguments.Count > 0)
{
try
{
index = Convert.ToInt32(e.arguments[0]);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
#if WINDOWS_PHONE_APP
if (current_state.Equals("pause") && BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Paused)
#else
bool statetrue = false;
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
statetrue = (ChimneyMPDMediaElement.CurrentState == MediaElementState.Paused) ? true : false;
});
if (current_state.Equals("pause") && statetrue)
#endif
{
PlayOnPause();
//if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("player"));
}
else
{
CurrentPlaylist song = null;
var currentPlaylist = await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist");
if (currentPlaylist.Count > 0)
{
if (option_random)
{
Random ran = new Random();
song = currentPlaylist[ran.Next(0, currentPlaylist.Count - 1)];
}
else if (currentPlaylist.Count > index)
{
song = currentPlaylist[index];
}
if (song != null)
{
Play(song.Uri, song.IsUri);
}
await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE CurrentPlaylist SET CurrentSong = 0 WHERE CurrentSong = 1");
song.CurrentSong = true;
await Dbconnection.UpdateAsync(song);
}
}
chimneyMpdServer.AppendResponse(string.Empty, e.id, e.position);
if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("player"));
}