//changes the status and throws the event private void changeStatus(ScrobblerStatus status) { this.status = status; Application.Invoke (delegate{ if (StatusChanged != null) StatusChanged (status); }); }
//throw a hard failed message private void throwFailed(string message) { this.status = ScrobblerStatus.Failed; string reason = null; if (message.StartsWith ("FAILED")) reason = message.Substring (7); if (Failed != null) Failed (reason); }
//the status of the scrobbler has changed private void status_changed(ScrobblerStatus status) { switch (status) { case ScrobblerStatus.BadAuthentication: status_label.Markup = String.Format (status_format, "Authentication Failed"); enableWidgets (); break; case ScrobblerStatus.ClientBanned: status_label.Markup = String.Format (status_format, "Client Banned"); details_label.Markup = "<small>Upgrade to a newer version of Fuse Media Centre</small>"; break; case ScrobblerStatus.BadTimeStamp: status_label.Markup = String.Format (status_format, "Invalid Timestamp"); details_label.Markup = "</small>Correct your system time</small>"; enableWidgets (); break; case ScrobblerStatus.ConnectionFailed: status_label.Markup = String.Format (status_format, "Connection Failed"); if (!scrobbler.Retrying) enableWidgets (); break; case ScrobblerStatus.OK: saveAutoLogin (); status_label.Markup = String.Format (status_format, "Online"); login_button.Image = new Image (Stock.Disconnect, IconSize.Button); login_button.Label = "Sign Off"; scrobbler.Start (); main.LoadProfile (); break; } }