示例#1
0
        public void Dispose()
        {
            int track_index = current_track == null ? Count : Math.Max(0, TrackModel.IndexOf(current_track));

            CurrentTrackSchema.Set(track_index);

            ServiceManager.PlayerEngine.DisconnectEvent(OnPlayerEvent);
            ServiceManager.PlaybackController.TrackStarted -= OnTrackStarted;

            if (actions != null)
            {
                actions.Dispose();
            }

            UninstallPreferences();

            Properties.Remove("Nereid.SourceContents.HeaderWidget");

            if (header_widget != null)
            {
                header_widget.Destroy();
                header_widget = null;
            }

            if (!Populate && ClearOnQuitSchema.Get())
            {
                Clear();
            }
        }
示例#2
0
        private void HandleReloaded(object sender, EventArgs e)
        {
            int track_index = CurrentTrackSchema.Get();

            if (track_index < Count)
            {
                SetCurrentTrack(TrackModel[track_index] as DatabaseTrackInfo);
            }

            SetAsPlaybackSourceUnlessPlaying();

            TrackModel.Reloaded -= HandleReloaded;
        }