void IDisposable.Dispose ()
{
Bus.Session.Unregister (MediaPlayer.Path);
ServiceManager.PlayerEngine.DisconnectEvent (OnPlayerEvent);
ServiceManager.PlaybackController.RepeatModeChanged -= OnRepeatModeChanged;
ServiceManager.PlaybackController.ShuffleModeChanged -= OnShuffleModeChanged;
ServiceManager.SourceManager.SourceAdded -= OnSourceCountChanged;
ServiceManager.SourceManager.SourceRemoved -= OnSourceCountChanged;
ServiceManager.SourceManager.SourceUpdated -= OnSourceUpdated;
ServiceManager.PlaybackController.SourceChanged -= OnPlayingSourceChanged;
Bus.Session.ReleaseName (bus_name);
}