Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
 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();
     }
 }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        private void InitializePlaylistMenu()
        {
            TrackListsViewModel trackListsVM = new TrackListsViewModel();

            trackListsVM.CurrentPlaylist = PlaylistCollection.GetPlaylist(Properties.Settings.Default.LastSelectedPlaylistGUID);
            lb_PlaylistMenu.DataContext  = trackListsVM;
            lb_PlaylistMenu.ItemsSource  = trackListsVM.TrackLists;
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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]));
        }
Ejemplo n.º 9
0
        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()))))
                                                                                  ))));
        }
Ejemplo n.º 10
0
        /// <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;
        }
Ejemplo n.º 11
0
 public static SongCollection GetSongs()
 {
     using (SongHelper.library = new MediaLibrary())
     {
         SongHelper.songs     = library.Songs;
         SongHelper.playlists = library.Playlists;
         return(songs);
     }
 }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
 public static SongCollection GetSongs()
 {
     using (SongHelper.library = new MediaLibrary())
     {
         SongHelper.songs = library.Songs;
         SongHelper.playlists = library.Playlists;
         return songs;
     }
 }
Ejemplo n.º 14
0
 void CreatePlaylist_AddNewPlaylist()
 {
     PlaylistCollection.Add(new Playlist {
         Name = CreatePlaylist_Name, Items = new ObservableCollection <string> {
             NewFilePath
         }
     });
     CreateSelectPlaylist_final();
 }
Ejemplo n.º 15
0
 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));
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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;
        }
Ejemplo n.º 18
0
        /// <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);
        }
Ejemplo n.º 19
0
        /// <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;
        }
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
        /// <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);
        }
Ejemplo n.º 25
0
        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");
        }
Ejemplo n.º 26
0
        private void RemoveAction(Pathlist pathlist)
        {
            if (PlaylistCollection.Contains(pathlist))
            {
                PlaylistCollection.Remove(pathlist);
            }

            if (!removePlaylist.Contains(pathlist))
            {
                removePlaylist.Add(pathlist);
            }

            RaisePropertyChanged(() => this.PlayCollectionCountString);
        }
Ejemplo n.º 27
0
        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);
            }
        }
Ejemplo n.º 28
0
        /// <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);
        }
Ejemplo n.º 29
0
        public PlaylistCollection GetPlaylistCollectionTree()
        {
            var playlistCollection = new PlaylistCollection();

            if (!IsActive)
            {
                return(playlistCollection);
            }


            foreach (IITPlaylist playlist in _app.LibrarySource.Playlists)
            {
                playlistCollection.InsertNode(playlist);
            }

            return(playlistCollection);
        }
Ejemplo n.º 30
0
 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;
 }
Ejemplo n.º 31
0
        /// <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);
        }
Ejemplo n.º 33
0
        /// <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);
        }
Ejemplo n.º 34
0
        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);
        }
Ejemplo n.º 35
0
        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);
        }
Ejemplo n.º 36
0
        /// <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;
        }
Ejemplo n.º 37
0
 /// <summary>
 /// Initializes a new instance of the PlaylistItem class.
 /// </summary>
 public PlaylistItem(PlaylistCollection collectionParent)
 {
     Init();
     this.collectionParent = collectionParent;
 }
Ejemplo n.º 38
0
        /// <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;
        }
Ejemplo n.º 39
0
        //----------------------------------------------------------------------------------------
        /// <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);
        }
Ejemplo n.º 40
0
        /// <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;
        }
Ejemplo n.º 41
0
        /// <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();
 }
Ejemplo n.º 43
0
        /// <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;
        }