public void TestIndexer() { MusicFile m1 = new MusicFile("t1.mp3", "Rivers", "JT", MusicGenre.Dance); MusicFile m2 = new MusicFile("t2.mp3", "Mountains", "Britney"); MusicFile m3 = new MusicFile("t3.mp3", "Hills", "Toni", MusicGenre.Dance); // full playlist with all genres PlaylistCollection pl = new PlaylistCollection("Songs"); pl.AddTrack(m1); pl.AddTrack(m2); pl.AddTrack(m3); // Manually adding dance music List <MusicFile> danceList = new List <MusicFile>(); danceList.Add(m1); danceList.Add(m3); // Indexer adding based on genre List <MusicFile> playlistDanceList = new List <MusicFile>(); foreach (MusicFile m in pl[MusicGenre.Dance]) { playlistDanceList.Add(m); } // checks both lists are equal CollectionAssert.AreEqual(danceList, playlistDanceList); }
private void RefreshPlaylist() { PlaylistCollection plc = PlaylistCollection.GetDatabase(); if (plc == null) { return; } TrackListsViewModel trackListsVM = lb_PlaylistMenu.DataContext as TrackListsViewModel; if (trackListsVM == null) { return; } Playlist pl = null; trackListsVM.UpdateTrackLists(plc.TrackLists); if (trackListsVM.CurrentPlaylist != null) { pl = trackListsVM.TrackLists.FirstOrDefault(x => x.GUID == trackListsVM.CurrentPlaylist.GUID); } lb_PlaylistMenu.SelectedItem = pl; }
private void InitializePlaylistContent() { TracksViewModel tracksVM = new TracksViewModel(PlaylistCollection.GetPlaylist(Properties.Settings.Default.LastSelectedPlaylistGUID)); TrackListsViewModel trackListsVM = lb_PlaylistMenu.DataContext as TrackListsViewModel; if (trackListsVM == null) { throw new Exception("Failed to cast object"); } lv_Playlist.DataContext = tracksVM; if (trackListsVM.CurrentPlaylist != null) { lv_Playlist.ItemsSource = trackListsVM.CurrentPlaylist.Soundtracks as IEnumerable <TrackInfo>; tracksVM.UpdateSoundtracks(trackListsVM.CurrentPlaylist); } else { lv_Playlist.ItemsSource = null; } // Bind event for updating content of view-model of lb_PlaylistMenu tracksVM.PlaylistIsUpdatedEvent += (lb_PlaylistMenu.DataContext as TrackListsViewModel).UpdateTrackList; // Update trackQueue tracksVM.PlaylistIsUpdatedEvent += OnPlaylistIsUpdated; }
private void HandlePlaylistsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Replace) { foreach (PlaylistModel model in e.OldItems) { PlaylistCollection.Remove(PlaylistLookupMap[model.PlaylistId]); PlaylistLookupMap.Remove(model.PlaylistId); } } if (e.Action == NotifyCollectionChangedAction.Add || e.Action == NotifyCollectionChangedAction.Replace) { foreach (PlaylistModel model in e.NewItems) { LookupPlaylist(model); } } if (e.Action == NotifyCollectionChangedAction.Reset) { PlaylistCollection.Clear(); PlaylistLookupMap.Clear(); } }
public MainWindow() { InitializeComponent(); //musicCollection = new MusicCollection(); playlistCollection = new PlaylistCollection(); //XmlLoader<Song> readSongs = new XmlLoader<Song>(fileSongs); //musicCollection.songs = readSongs.GetItems(); XmlLoader <Playlist> readPl = new XmlLoader <Playlist>(filePlaylists); playlistCollection.playlists = readPl.GetItems(); PlaylistsPanelRefresh(playlistCollection.playlists); selectedPlaylist = playlistCollection.playlists[0]; PlaylistInfoShow(selectedPlaylist); if (playlistCollection.playlists.Count > 0) { MusicListViewRefresh(playlistCollection.playlists[0].Songs); } myPlayer = new MyPlayer(); }
private void InitializePlaylistMenu() { TrackListsViewModel trackListsVM = new TrackListsViewModel(); trackListsVM.CurrentPlaylist = PlaylistCollection.GetPlaylist(Properties.Settings.Default.LastSelectedPlaylistGUID); lb_PlaylistMenu.DataContext = trackListsVM; lb_PlaylistMenu.ItemsSource = trackListsVM.TrackLists; }
public void TestAddTrack2() { MusicFile m1 = new MusicFile("t1.mp3", "Rivers", "JT", MusicGenre.Dance); PlaylistCollection pl = new PlaylistCollection("Songs"); pl.AddTrack(m1); pl.AddTrack(new MusicFile("t1.mp3", "Rivers", "JT", MusicGenre.Dance)); }
void PlaylistView_Play(string x) { var items = PlaylistCollection.Where(X => X.Name == x).First(); CurrentPlaylist = items; CurrentPlaylist_position = 0; MainWindow.Instance.MyControl.SourceProvider.MediaPlayer.Play(new FileInfo(items.Items[CurrentPlaylist_position])); }
public ObservableCollection <ISong> GetFilteredTrackCollection() { // merge in mixableRange tempo so we get the track tempo as a double rather than the tempo slider value as a int, for when getting next var slowestTempoSliderValue = Math.Round(Convert.ToDouble(TempoSliderValue), 3); var fastestTempoSliderValue = Math.Round(Convert.ToDouble(TempoSliderValue + 1), 3); // refactor ito Range project var tempoRangeValue = GetTempoRangeValue(); var slowestTempoSliderRangeValue = Math.Round((slowestTempoSliderValue - tempoRangeValue), 3); var fastestTempoSliderRangeValue = Math.Round((fastestTempoSliderValue + tempoRangeValue), 3); _harmonicKeyRange.Load(SelectedHarmonicKeyComboBoxItem); _trackSearch.Reset(); _trackSearch.Text = SearchTextBoxText; _trackSearch.Load(); var selectedPlaylists = PlaylistCollection.Where(p => p.Selected); return(new ObservableCollection <ISong>(ImportedTrackCollection.Where(t => // not in preparation list (!PreparationCollection.Contains(t) // and playlist is selected && (selectedPlaylists.FirstOrDefault(p => p.Path == Path.GetDirectoryName(t.Path)) != null) // and (exact filter match && ((!IsMixableRangeCheckboxChecked && (TempoSliderValue == 0 || (Math.Round(t.LeadingTempo, 3) >= slowestTempoSliderValue && Math.Round(t.LeadingTempo, 3) <= fastestTempoSliderValue)) && (string.IsNullOrEmpty(SelectedHarmonicKeyComboBoxItem) || t.LeadingHarmonicKey == SelectedHarmonicKeyComboBoxItem)) // or mixable range filter match) || (IsMixableRangeCheckboxChecked && ((TempoSliderValue == 0 || (Math.Round(t.LeadingTempo, 3) >= slowestTempoSliderRangeValue && Math.Round(t.LeadingTempo, 3) <= fastestTempoSliderRangeValue)) && ((string.IsNullOrEmpty(SelectedHarmonicKeyComboBoxItem) || (t.LeadingHarmonicKey == _harmonicKeyRange.InnerCircleHarmonicKey || t.LeadingHarmonicKey == _harmonicKeyRange.OuterCircleHarmonicKey || t.LeadingHarmonicKey == _harmonicKeyRange.PlusOneHarmonicKey || t.LeadingHarmonicKey == _harmonicKeyRange.MinusOneHarmonicKey)))))) // and matches playlist && (string.IsNullOrEmpty(SelectedPlaylistComboBoxItem) || t.Playlist == SelectedPlaylistComboBoxItem) // and matches search text && (string.IsNullOrEmpty(_trackSearch.Text) || t.Artist.ToLower().Contains(_trackSearch.Text.ToLower().Trim()) || t.Title.ToLower().Contains(_trackSearch.Text.ToLower().Trim())) || (!string.IsNullOrEmpty(_trackSearch.Artist) && !string.IsNullOrEmpty(_trackSearch.Title) && ((t.Artist.ToLower().Contains(_trackSearch.Artist.ToLower()) && t.Title.ToLower().Contains(_trackSearch.Title.ToLower())) || (t.Artist.ToLower().Contains(_trackSearch.Title.ToLower()) && t.Title.ToLower().Contains(_trackSearch.Artist.ToLower())))) )))); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DoLoaded(object sender, RoutedEventArgs e) { manager.StateChanged += new UsbStateChangedEventHandler(DoStateChanged); ConveyDevices(); playlists = controller.GetPreferredPlaylists(); playlistBox.ItemsSource = playlists.Values; selector.DataContext = disks; }
public static SongCollection GetSongs() { using (SongHelper.library = new MediaLibrary()) { SongHelper.songs = library.Songs; SongHelper.playlists = library.Playlists; return(songs); } }
/// <summary> /// Delete the specified Playlist from the collections and from the storage /// </summary> /// <param name="playlistToDelete"></param> public static void DeletePlaylist(Playlist playlistToDelete) { PlaylistCollection.Remove(playlistToDelete); playlistToDelete.Clear(); // Now delete the playlist itself. No need to wait for this to finish DbAccess.DeleteAsync(playlistToDelete); }
public static SongCollection GetSongs() { using (SongHelper.library = new MediaLibrary()) { SongHelper.songs = library.Songs; SongHelper.playlists = library.Playlists; return songs; } }
void CreatePlaylist_AddNewPlaylist() { PlaylistCollection.Add(new Playlist { Name = CreatePlaylist_Name, Items = new ObservableCollection <string> { NewFilePath } }); CreateSelectPlaylist_final(); }
public Mp3PlaylistFormatRewriter(PlaylistCollection playlistsToRewrite, string destinationPath) : base(playlistsToRewrite, destinationPath) { ElementsToReplace.Add(new ReplacementPair("m4a", Mp3FileExtension)); ElementsToReplace.Add(new ReplacementPair("M4A", Mp3FileExtension)); ElementsToReplace.Add(new ReplacementPair("flac", Mp3FileExtension)); ElementsToReplace.Add(new ReplacementPair("FLAC", Mp3FileExtension)); ElementsToReplace.Add(new ReplacementPair("Flac", Mp3FileExtension)); }
public Playlist CreatePlaylist() { string listName = PlaylistCollection.AddSerialNum(this.trackLists.ToList(), "New Playlist"); Playlist pl = new Playlist(listName); PlaylistCollection.AddPlaylist(pl); trackLists.Add(pl); CurrentPlaylist = pl; return(pl); }
public void UpdatePlaylistName(Guid targetGUID, string newName) { PlaylistCollection plc = PlaylistCollection.GetDatabase(); Playlist pl = plc.TrackLists.Find(x => x.GUID == targetGUID); pl.ListName = newName; plc.SaveToDatabase(); trackLists.First(x => x.GUID == targetGUID).ListName = newName; }
/// <summary> /// Initialize a new instance of the dialog using the given Controller. /// </summary> /// <param name="controller"></param> public SynchronizeDialog(Controller controller) : this() { this.controller = controller; this.manager = new UsbManager(); this.disks = manager.GetAvailableDisks(); this.playlists = null; this.percentageCompleted = 0; this.selector.Loaded += new RoutedEventHandler(DoLoaded); }
/// <summary> /// Initialize a new instance of the dialog using the given Controller. /// </summary> /// <param name="controller"></param> public SynchronizeDialog(Controller controller) : this() { this.controller = controller; this.manager = new UsbManager(); this.disks = manager.GetAvailableDisks(); this.playlists = null; this.percentageCompleted = 0; this.selector.Loaded += new RoutedEventHandler(DoLoaded); }
public main_menuControl() { this.InitializeComponent(); IsFavoritePanel = false; arg = new MsgBroker.MsgBrokerMsg(); playCollection = new PlaylistCollection(); myFavoriteMgr = MyfavoritelistMgr.instance(); result_playlist.DataContext = playCollection; favorite_playlist.DataContext = myFavoriteMgr.MyfavoriteCollection; favoritelist_Content.Visibility = Visibility.Hidden; }
public Playlist() { CustomProperties = new Dictionary<string, string>(); Items = new PlaylistCollection(); Items.CollectionChanged += Items_CollectionChanged; Loop = false; AutoLoad = true; AutoPlay = false; EnableCachedComposition = true; EnableCaptions = true; StartMuted = false; StretchMode = Stretch.Uniform; }
public void TestAddTrack1() { MusicFile m1 = new MusicFile("t1.mp3", "Rivers", "JT", MusicGenre.Dance); MusicFile m2 = new MusicFile("t2.mp3", "Mountains", "Britney"); PlaylistCollection pl = new PlaylistCollection("Songs"); pl.AddTrack(m1); pl.AddTrack(m2); CollectionAssert.Contains(pl.Tracks, m1); CollectionAssert.Contains(pl.Tracks, m2); }
public void RemoveTracks() { PlaylistCollection.DeleteTracksByIndices(selectedIndices.ToArray(), TracklistGUID); for (int i = selectedIndices.Count - 1; i >= 0; i--) { soundtracks.RemoveAt(selectedIndices[i]); } Playlist pl = PlaylistCollection.GetPlaylist(TracklistGUID); UpdatePlaylistEventArgs e = new UpdatePlaylistEventArgs(pl, PlayingTrack); PlaylistIsUpdatedEvent?.Invoke(e); }
/// <summary> /// </summary> /// <param name="bypassCache"> </param> /// <returns> </returns> public virtual PlaylistCollection <TPlaylist> GetView(bool bypassCache) { _sites = GetItem(_sites); if (bypassCache || _sites == null) { _sites = _loader.LoadSites(false); const string tldEnd = ".fm"; _sites.ForEach(t => { t.SiteUri = new Uri(string.Format(Resources.Properties.Resources.UrlContainer, (t.Name + tldEnd))); if (t.SiteUri.AbsoluteUri.Contains(Resources.Properties.Resources.DIHomePage)) { t.PlaylistType = StationType.DI; t.PlaylistIcon = Resources.Properties.Resources.DIIconNew.ToBitmap(); } else if (t.SiteUri.AbsoluteUri.Contains(Resources.Properties.Resources.SkyHomePage)) { t.PlaylistType = StationType.Sky; t.PlaylistIcon = Resources.Properties.Resources.SkyIcon.ToBitmap(); } else if (t.Name.Contains("Custom")) { t.PlaylistType = StationType.Custom; t.PlaylistIcon = Resources.Properties.Resources.icon_web; } else if (t.Name.Contains("External")) { t.PlaylistType = StationType.External; t.PlaylistIcon = Resources.Properties.Resources.icon_web; } else { t.PlaylistType = StationType.All; t.PlaylistIcon = Resources.Properties.Resources.icon_web; } }); Sort(_sites); InsertItem(_sites); } return(_sites); }
static void Main(string[] args) { controller = new Controller(); Thread thread = new Thread(new ThreadStart(delegate { while (controller.IsConnected) { using (Track track = controller.CurrentTrack) { if (track != null) { Console.WriteLine(String.Format("CurrenTrack.Name = '{0}'", track.Name)); } } using (PlaylistCollection collection = controller.Playlists) { int sum = 0; if (collection != null) { foreach (Playlist playlist in collection.Values) { if (playlist != null) { sum += playlist.PlaylistID; } } } Console.WriteLine(String.Format("Playlist sum [{0}]", sum)); } Thread.Sleep(1000); } })); thread.Start(); Console.WriteLine("... Press Enter to quit"); Console.ReadLine(); controller.Dispose(); thread.Abort(); thread = null; controller = null; Console.WriteLine("... Done"); }
private void RemoveAction(Pathlist pathlist) { if (PlaylistCollection.Contains(pathlist)) { PlaylistCollection.Remove(pathlist); } if (!removePlaylist.Contains(pathlist)) { removePlaylist.Add(pathlist); } RaisePropertyChanged(() => this.PlayCollectionCountString); }
public PlaylistViewModel LookupPlaylist(PlaylistModel playlist) { if (PlaylistLookupMap.ContainsKey(playlist.PlaylistId)) { return(PlaylistLookupMap[playlist.PlaylistId]); } else { PlaylistViewModel newViewModel = new PlaylistViewModel(playlist); PlaylistLookupMap.Add(newViewModel.PlaylistId, newViewModel); PlaylistCollection.Add(newViewModel); return(newViewModel); } }
/// <summary> /// Get the parent playlist for a playlistitem /// </summary> /// <param name="playlistId"></param> /// <returns></returns> public static Playlist GetParentPlaylist(PlaylistItem playlistItem) { Playlist parentPlaylist = null; // Playlist ids are not unique as they are held in different tables, so we need to match the playlist type as well as its id if (playlistItem is SongPlaylistItem) { parentPlaylist = PlaylistCollection.Where(play => (play.Id == playlistItem.PlaylistId) && (play is SongPlaylist)).FirstOrDefault(); } else { parentPlaylist = PlaylistCollection.Where(play => (play.Id == playlistItem.PlaylistId) && (play is AlbumPlaylist)).FirstOrDefault(); } return(parentPlaylist); }
public PlaylistCollection GetPlaylistCollectionTree() { var playlistCollection = new PlaylistCollection(); if (!IsActive) { return(playlistCollection); } foreach (IITPlaylist playlist in _app.LibrarySource.Playlists) { playlistCollection.InsertNode(playlist); } return(playlistCollection); }
public MainWindow() { InitializeComponent(); if (File.Exists("Playlists.txt")) { Serializer slop1 = new Serializer("Playlists.txt", false); playlists = (PlaylistCollection)slop1.ReadObject(); slop1.Close(); } if (File.Exists("Compositions.txt")) { Serializer slop2 = new Serializer("Compositions.txt", false); compositions = (CompositionCollection)slop2.ReadObject(); slop2.Close(); } listbox1.ItemsSource = playlists; }
/// <summary> /// 构造函数 /// </summary> public App() { XmlManipulate.InitializeIsolatedStorageFile(); XmlManipulate.InitializeAppSetting(); this.Sc01 = ml01.Songs; this.Alc01 = ml01.Albums; this.Arc01 = ml01.Artists; this.Plc01 = ml01.Playlists; this.CurrentSc01 = this.Sc01; this.Smd01.SleepModeOff(); // 未捕获的异常的全局处理程序。 UnhandledException += Application_UnhandledException; // 标准 XAML 初始化 InitializeComponent(); // 特定于电话的初始化 InitializePhoneApplication(); // 语言显示初始化 InitializeLanguage(); // 调试时显示图形分析信息。 if (Debugger.IsAttached) { // 显示当前帧速率计数器。 Application.Current.Host.Settings.EnableFrameRateCounter = true; // 显示在每个帧中重绘的应用程序区域。 //Application.Current.Host.Settings.EnableRedrawRegions = true; // 启用非生产分析可视化模式, // 该模式显示递交给 GPU 的包含彩色重叠区的页面区域。 //Application.Current.Host.Settings.EnableCacheVisualization = true; // 通过禁用以下对象阻止在调试过程中关闭屏幕 // 应用程序的空闲检测。 // 注意: 仅在调试模式下使用此设置。禁用用户空闲检测的应用程序在用户不使用电话时将继续运行 // 并且消耗电池电量。 PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; } }
public async Task Populate_ShouldSetMenuItemsForEachPlaylist() { var playlistCollection = new PlaylistCollection { Playlists = new List <Playlist> { new Playlist(), new Playlist() } }; _mockGetAllPlaylistsResult.GetResultFunc = () => playlistCollection; await Subject.Populate(); Subject.MenuItems.Count.Should().Be(2); }
/// <summary> /// </summary> /// <param name="bypassCache"> </param> /// <returns> </returns> public virtual PlaylistCollection <T> LoadSites(bool bypassCache) { var playlists = new PlaylistCollection <T>(); if (_playlists != null) { _playlists.ForEach(playlists.Add); } if ((bypassCache) || (playlists.Count == 0)) { _playlists = new PlaylistCollection <T>(); } _playlistArray = new T[Enum.GetNames(typeof(StationType)).Length]; var i = 0; foreach (var playlist in Enum.GetNames(typeof(StationType))) { _playlist = playlists.Contains(playlists[playlist]) ? playlists[playlist] : new T(); _playlist.Name = playlist; // _playlist.PlaylistIcon _playlistArray[i] = _playlist; i++; } playlists.Clear(); playlists.AddRange(_playlistArray); if (_playlists != null) { _playlists.Clear(); playlists.Clone(_playlists); return(_playlists); } // create SiteDictionary loaded w/ channels and events per site, create tabbed control in main form // foreach site, i.e. DI, Sky, WFAE, etc...bind per tab. pass in PlaylistType to ctor. return(null); }
public TrackInfo GetTrack(Guid listGUID, int selIdx, PlaybackMode mode) { if (trackQueue == null) { Playlist pl = PlaylistCollection.GetDatabase().TrackLists.Find(x => x.GUID == listGUID); if (pl == null || pl.TrackAmount == 0) { throw new InvalidPlaylistException(string.Format("Given playlist \"{0}\" is invalid.", listGUID)); } trackQueue = new TrackQueue(pl, selIdx, mode); Properties.Settings.Default.TaskPlaylistGUID = listGUID; Properties.Settings.Default.Save(); } TrackInfo nextTrack; int nextTrackIdx = trackQueue.Next(out nextTrack); return(nextTrack); }
private PlaylistCollection SearchFolder(string folderName, PlaylistCollection currentNode) { if (folderName.Equals(currentNode.Name)) { return(currentNode); } // search all children foreach (var currentNodePlaylistNode in currentNode.PlaylistNodes) { var result = SearchFolder(folderName, currentNodePlaylistNode); if (result != null) { return(result); } } return(null); }
/// <summary> /// Gets a special collection of playlists suitable for synchronization. /// </summary> /// <returns></returns> public PlaylistCollection GetPreferredPlaylists() { PlaylistCollection playlists = new PlaylistCollection(); Invoke((Action)delegate { // CurrentPlaylist would be null if viewing the iTunes Store int currentID = CurrentPlaylist == null ? 0 : CurrentPlaylist.PlaylistID; foreach (IITPlaylist ilist in itunes.LibrarySource.Playlists) { if (ilist != null) { if ((ilist.Kind != ITPlaylistKind.ITPlaylistKindUser) || ilist.Name.Equals(Resx.PlaylistGenius)) { continue; } IITUserPlaylist ulist = (IITUserPlaylist)ilist; if ((ulist.SpecialKind == ITUserPlaylistSpecialKind.ITUserPlaylistSpecialKindNone) || (ulist.SpecialKind == ITUserPlaylistSpecialKind.ITUserPlaylistSpecialKindPurchases) || (ulist.SpecialKind == ITUserPlaylistSpecialKind.ITUserPlaylistSpecialKindFolder)) { if (ulist.Tracks.Count > 0) { Playlist playlist = new Playlist(ulist); playlist.IsSelected = (playlist.PlaylistID == currentID); playlists.Add(playlist); } } } } }); return playlists; }
/// <summary> /// Initializes a new instance of the PlaylistItem class. /// </summary> public PlaylistItem(PlaylistCollection collectionParent) { Init(); this.collectionParent = collectionParent; }
/// <summary> /// Initializes the media library. /// </summary> private void InitializeMediaLibrary() { this.mediaLibrary = new MediaLibrary(); this.pictures = mediaLibrary.Pictures; int currentIndex = 0; // Search for the picture specified in the settings file. // Store the pictures into a list, so that we can easily navigate back and forward (the collection allows only forward navigation). foreach (Picture picture in this.pictures) { if ((this.settings.Background != null) && (this.settings.Background != "") && (picture.Name == this.settings.Background)) { this.currentlySelectedPictureIndex = currentIndex; } currentIndex++; } this.playlists = this.mediaLibrary.Playlists; }
//---------------------------------------------------------------------------------------- /// <summary> /// Invoked when the Sync button is pressed, starts the synchronization process. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DoSync(object sender, RoutedEventArgs e) { string text = String.Format(Resx.SyncWarningText, selector.Location); MessageBoxResult result = MessageWindow.Show( null, text, Resx.SyncWarningCaption, MessageBoxButton.OKCancel, MessageWindowImage.Warning, MessageBoxResult.Cancel); if (result != MessageBoxResult.OK) { e.Handled = true; return; } countBox.Visibility = Visibility.Hidden; playlistBox.IsEnabled = false; selector.IsEnabled = false; syncButton.Visibility = Visibility.Collapsed; progressPanel.Visibility = Visibility.Visible; string format = PathHelper.GetPathFormat(selector.FormatTag); bool withPlaylist = format.Contains("playlist"); PlaylistCollection selectedPlaylists = new PlaylistCollection(); selectedPlaylists.AddRange(playlists.FindAll(p => p.IsSelected == true)); PersistentIDCollection list = new PersistentIDCollection(); foreach (Playlist playlist in selectedPlaylists.Values) { if (playlist != null) { PersistentID pid = playlist.PersistentID; PersistentIDCollection tracks = controller.Librarian.Catalog.FindTracksByPlaylist(pid); if (withPlaylist) { // Cannot modify a value type (PersistentID) from within a foreach loop // or the .ForEach extension method, so we need to recreate each pid // to set the playlist name. Unfortunate design consequence... foreach (PersistentID track in tracks) { PersistentID tid = track; tid.PlaylistName = playlist.Name; list.Add(tid); } } else { list.AddRange(tracks); } } } // show iTunes incase a protection fault occurs; otherwise you cannot see the // dialog if iTunes is minimized as a Taskbar toolbar controller.ShowiTunes(); controller.Librarian.ProgressChanged += new ProgressChangedEventHandler(DoProgressChanged); controller.Librarian.Export(list, selector.Location, format); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DoLoaded(object sender, RoutedEventArgs e) { manager.StateChanged += new UsbStateChangedEventHandler(DoStateChanged); ConveyDevices(); playlists = controller.GetPreferredPlaylists(); playlistBox.ItemsSource = playlists.Values; selector.DataContext = disks; }
/// <summary> /// Initializes a new instance of the PlaylistItem class. /// </summary> /// <param name="uriDocument">Uri of the source document.</param> /// <param name="collectionParent">The collection we are being added to.</param> /// <param name="element">Xml element describing this PlaylistItem.</param> public PlaylistItem(Uri uriDocument, PlaylistCollection collectionParent, XElement element) { m_collectionParent = collectionParent; XAttribute xa = element.Attribute("title"); if (xa != null) { Title = MediaPlayer.UNEscape(xa.Value); } xa = element.Attribute("thumbSource"); if (xa != null ) { String tmp = System.Uri.UnescapeDataString(xa.Value); if ( tmp.Length > 0 ) { m_thumbSource = MediaPlayer.PathFromUri(uriDocument, tmp).ToString(); } } xa = element.Attribute("width"); if (xa != null) { Double width = Double.PositiveInfinity; if (Double.TryParse(xa.Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out width)) { m_width = width; } } xa = element.Attribute("height"); if (xa != null) { Double height = Double.PositiveInfinity; if (Double.TryParse(xa.Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out height)) { m_height = height; } } xa = element.Attribute("mediaSource"); if (xa != null) { MediaUrl = MediaPlayer.PathFromUri(uriDocument, System.Uri.UnescapeDataString(xa.Value)); } else { MediaUrl = MediaPlayer.PathFromUri(uriDocument, string.Empty); } xa = element.Attribute("description"); if (xa != null) { Description = MediaPlayer.UNEscape(xa.Value); } xa = element.Attribute("adaptiveStreaming"); if (xa != null) { IsAdaptiveStreaming = bool.Parse(xa.Value); } xa = element.Attribute("frameRate"); if (xa != null) { Double rate = -1; if (Double.TryParse(xa.Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out rate)) { FrameRate = TimeCode.ParseFramerate(rate); } else { FrameRate = SmpteFrameRate.Unknown; } } for (IEnumerator<XElement> chaptersEnumerator = element.Descendants("chapter").GetEnumerator(); chaptersEnumerator.MoveNext(); ) { Chapters.Add(new ChapterItem(chaptersEnumerator.Current)); } }
protected MyfavoritelistMgr() { MyfavoriteCollection = new PlaylistCollection(); }
/// <summary> /// Release manages resources. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DoClosed(object sender, EventArgs e) { if (percentageCompleted > 0) { controller.Librarian.ProgressChanged -= new ProgressChangedEventHandler(DoProgressChanged); } // must detach collection from WPF control otherwise will not dispose selector.DataContext = null; disks.Clear(); disks = null; playlistBox.ItemsSource = null; playlists.Dispose(); playlists = null; manager.Dispose(); manager = null; controller = null; }