/// <summary>
        /// Gets called when the player state changes
        /// </summary>
        /// <param name="playbackSource">The current state</param>
        private void SetCurrentlyVisiblePlaylist(PlaybackSources playbackSource)
        {
            switch (playbackSource)
            {
                case PlaybackSources.SEARCH_RESULTS:
                    SelectedPlaylist = null;
                    CurrentlyVisiblePlaylist = SearchResults;
                    break;

                case PlaybackSources.FAVORITES:
                    SelectedPlaylist = null;
                    CurrentlyVisiblePlaylist = Favorites;
                    LoadFavorites();
                    break;

                case PlaybackSources.QUEUE:
                    SelectedPlaylist = null;
                    CurrentlyVisiblePlaylist = Queue;
                    break;

                case PlaybackSources.PLAYLIST:
                    CurrentlyVisiblePlaylist = SelectedPlaylist;
                    break;
            }

            foreach (var t in CurrentlyVisiblePlaylist.Tracks)
            {
                new Thread(() =>
                {
                    if (t.bitrate != 0) return;
                    t.bitrate = BitrateChecker.CheckBitrate(t);
                }).Start();
            }
        }
        private async void LoadFavorites()
        {
            IsLoading = true;
            var favoriteTracks = await vkAPI.GetTracks(null, APIConstants.TRUE, 0, 9999);
            Favorites.Tracks = new ObservableCollection<Track>(favoriteTracks);

            foreach (var t in CurrentlyVisiblePlaylist.Tracks)
            {
                new Thread(() =>
                {
                    if (t.bitrate != 0) return;
                    t.bitrate = BitrateChecker.CheckBitrate(t);
                }).Start();
            }

            IsLoading = false;
        }