//Used internaly internal void Update(StatusResponse sr) { this.sr = sr; }
//Used internaly internal void Update(StatusResponse sr) { this.sr = sr; }
internal void tick(object sender, EventArgs e) { api.Update(); if (response == null) { response = mh.GetStatusResponse(); timer.Start(); return; } StatusResponse new_response = mh.GetStatusResponse(); if(new_response == null) { timer.Start(); return; } if (!new_response.running && new_response.track == null) { timer.Start(); return; } if (new_response.track != null && response.track != null) { if (new_response.track.GetTrackName() != response.track.GetTrackName() && OnTrackChange != null) { OnTrackChange(new TrackChangeEventArgs() { old_track = response.track, new_track = new_response.track }); } } if (new_response.playing != response.playing && OnPlayStateChange != null) { OnPlayStateChange(new PlayStateEventArgs() { playing = new_response.playing }); } if (new_response.volume != response.volume && OnVolumeChange != null) { OnVolumeChange(new VolumeChangeEventArgs() { old_volume = response.volume, new_volume = new_response.volume }); } if(new_response.playing_position != response.playing_position && OnTrackTimeChange != null) { OnTrackTimeChange(new TrackTimeChangeEventArgs() { track_time = new_response.playing_position }); } response = new_response; timer.Start(); }