Example #1
0
        public void SetMediaHistory(int pListIndex, IMediaSelection pMediaListItem)
        {
            lock (MediaListHistory)
                MediaListHistory.AddHistoryItem(pMediaListItem, pListIndex);

            OnHistoryChanged();
        }
Example #2
0
        private void DoItemChangeEvent(IMediaSelection pItem)
        {
            if (pItem == null)
            {
                throw new Exception("Selected item is null or wrong type");
            }

            switch (pItem.MediaType)
            {
            case MediaListItemType.Group:
                //new Action<int>(selectedIndex =>
                //{
                //    AppMain.MediaManager.SetMediaHistory(selectedIndex, pItem);
                //}
                //    ).BeginInvoke(
                //    MediaList.CurrentListIndex,
                //    null,
                //    null);

                MediaList.ClearAndFillNextList(AppMain.MediaManager.GetNewList(pItem).ToArray());
                MediaList.ChangeListForward();
                break;

            case MediaListItemType.Song:
                AppMain.MediaManager.PlayMediaListItem(pItem);
                break;
            }
        }
Example #3
0
        private void PlayMediaListItemInternal(IMediaSelection pMediaListItem)
        {
            MediaItem?mediaItem = _currentPlayList.FirstOrDefault(item => item.InternalKey == pMediaListItem.Key);

            if (mediaItem != null)
            {
                var index = _currentPlayList.IndexOf(mediaItem.Value);

                _currentMediaIndex = index;
                PlayCurrentMediaItem();
            }
        }
Example #4
0
        public List <MediaListItem> GetNewList(IMediaSelection pGroupItem)
        {
            List <MediaListItem> returnList = new List <MediaListItem>();

            switch (pGroupItem.ObjectType)
            {
            case "FileSystemItem":
            {
                returnList.AddRange(GetNewFSMediaList(pGroupItem.Key));
            }
            break;

            case "DigitalMediaItem":
            {
                int targetId = 0;
                try { int.TryParse(pGroupItem.Key, out targetId); }
                catch { }

                returnList.AddRange(GetNewMediaList(targetId));
            }
            break;

            case "RootItem":
            {
                if (pGroupItem.Key == RootItemType.DigitalMediaLibrary.ToString())
                {
                    returnList.AddRange(GetMLRootLevelItems());
                }
                else if (pGroupItem.Key == RootItemType.FileSystem.ToString())
                {
                    returnList.AddRange(GetFSRootLevelItems());
                }
            }
            break;
            }

            List <MediaListItem> songList = new List <MediaListItem>();

            for (int i = 0; i < returnList.Count; i++)
            {
                if (returnList[i].MediaType == MediaListItemType.Song)
                {
                    songList.Add(returnList[i]);
                }
            }
            _currentViewedList = songList;
            return(returnList);
        }
Example #5
0
        /// <summary>
        /// From a song or group selection
        /// </summary>
        /// <param name="pMediaHistory"></param>
        public void AddHistoryItem(IMediaSelection pMediaListItem, int pListIndex)
        {
            lock (_lockObject)
            {
                while (_mediaHistoryStack.Count > pListIndex)
                {
                    _mediaHistoryStack.Pop();
                }

                MediaHistory newHistoryItem = new MediaHistory()
                {
                    ObjectType       = pMediaListItem.GetType().Name,
                    MediaType        = pMediaListItem.MediaType,
                    ListIndex        = pListIndex,
                    DisplayString    = pMediaListItem.DisplayString,
                    Key              = pMediaListItem.Key,
                    ItemSpecificType = pMediaListItem.ItemSpecificType,
                };

                _mediaHistoryStack.Push(newHistoryItem);

                using (ISession dataSession = DatabaseInterface.DataSession)
                    using (ITransaction transaction = dataSession.BeginTransaction())
                    {
                        try
                        {
                            foreach (MediaHistory historyItem in dataSession.CreateCriteria <MediaHistory>()
                                     .Add(Expression.Ge("ListIndex", pListIndex))
                                     .List <MediaHistory>())
                            {
                                dataSession.Delete(historyItem);
                            }

                            dataSession.Save(newHistoryItem);
                            transaction.Commit();
                        }
                        catch
                        {
                            transaction.Rollback();
                        }
                    }
            }
        }
Example #6
0
 public void PlayMediaListItem(IMediaSelection pMediaListItem)
 {
     SetPlayList();
     PlayMediaListItemInternal(pMediaListItem);
 }
Example #7
0
 public SelectedItemChangedEventArgs(IMediaSelection pDragableListItem,
                                     int pSelectedIndex)
 {
     SelectedItem  = pDragableListItem;
     SelectedIndex = pSelectedIndex;
 }