public void SetMediaHistory(int pListIndex, IMediaSelection pMediaListItem) { lock (MediaListHistory) MediaListHistory.AddHistoryItem(pMediaListItem, pListIndex); OnHistoryChanged(); }
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; } }
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(); } }
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); }
/// <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(); } } } }
public void PlayMediaListItem(IMediaSelection pMediaListItem) { SetPlayList(); PlayMediaListItemInternal(pMediaListItem); }
public SelectedItemChangedEventArgs(IMediaSelection pDragableListItem, int pSelectedIndex) { SelectedItem = pDragableListItem; SelectedIndex = pSelectedIndex; }