Beispiel #1
0
        protected void UpdatePlaylist()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IPlayerContext        pc       = playerContextManager.GetPlayerContext(PlayerChoice.CurrentPlayer);
            IPlaylist             playlist = pc == null ? null : pc.Playlist;

            UpdatePlaylistHeader(pc == null ? null : (AVType?)pc.AVType, pc == null ? true : pc.IsPrimaryPlayerContext);
            lock (_syncObj)
            {
                _playlist = playlist;
                _playlistItems.Clear();
                if (playlist != null)
                {
                    int ct             = 0;
                    int currentItemIdx = playlist.ItemListIndex;
                    foreach (MediaItem mediaItem in playlist.ItemList)
                    {
                        int idx = ct++;
                        PlayableMediaItem item = PlayableMediaItem.CreateItem(mediaItem);

                        item.SetLabel(Consts.KEY_NUMBERSTR, (idx + 1) + ".");
                        item.AdditionalProperties[Consts.KEY_INDEX]           = idx;
                        item.AdditionalProperties[Consts.KEY_IS_CURRENT_ITEM] = currentItemIdx == idx;
                        _playlistItems.Add(item);
                    }
                }
                IsPlaylistEmpty     = _playlistItems.Count == 0;
                NumPlaylistItemsStr = Utils.BuildNumItemsStr(_playlistItems.Count, null);
            }
            _playlistItems.FireChange();
        }
Beispiel #2
0
        protected void UpdatePlaylist()
        {
            IPlayerContextManager playerContextManager = ServiceRegistration.Get <IPlayerContextManager>();
            IPlayerContext        pc       = playerContextManager.GetPlayerContext(PlayerChoice.CurrentPlayer);
            IPlaylist             playlist = pc == null ? null : pc.Playlist;

            UpdatePlaylistHeader(pc == null ? null : (AVType?)pc.AVType, pc == null ? true : pc.IsPrimaryPlayerContext);
            lock (_syncObj)
            {
                // TODO: If playlist objects differ, leave state EditPlaylist?
                _playlist = playlist;
                _items.Clear();
                if (playlist != null)
                {
                    IList <MediaItem> items = playlist.ItemList;
                    for (int i = 0; i < items.Count; i++)
                    {
                        MediaItem         mediaItem = items[i];
                        PlayableMediaItem item      = PlayableMediaItem.CreateItem(mediaItem);

                        item.SetLabel(Consts.KEY_NUMBERSTR, (i + 1) + ".");
                        item.AdditionalProperties[Consts.KEY_INDEX] = i;

                        item.AdditionalProperties[Consts.KEY_IS_DOWN_BUTTON_FOCUSED] = i == _focusedDownButton;
                        item.AdditionalProperties[Consts.KEY_IS_UP_BUTTON_FOCUSED]   = i == _focusedUpButton;
                        _items.Add(item);
                    }
                }
                _focusedDownButton  = -1;
                _focusedUpButton    = -1;
                IsPlaylistEmpty     = _items.Count == 0;
                NumPlaylistItemsStr = Utils.BuildNumItemsStr(_items.Count, null);
            }
            _items.FireChange();
        }