void IDisposable.Dispose()
{
_disposed = true;
_prefs["RemoteControl"]["BansheeRemote"].Remove(_portPref);
_prefs["RemoteControl"]["BansheeRemote"].Remove(_passIdPref);
_prefs["RemoteControl"].Remove(_prefs["RemoteControl"].FindById("BansheeRemote"));
_prefs.Remove(_prefs.FindById("RemoteControl"));
ServiceManager.SourceManager.SourceRemoved += OnSourceRemoved;
if (_listener != null) {
try {
_listener.Close();
} catch (Exception e) {
Log.Error("error while closing socket of remote listener: " + e.Message);
}
}
}