Beispiel #1
0
 //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();
 }