Exemple #1
0
        public static void AddRangeTracks(this IITUserPlaylist self, params IITTrack[] tracks)
        {
            ArgumentValidator.Validate(self, tracks);

            foreach (IITTrack track in tracks)
            {
                self.AddTrack(track);
            }
        }
Exemple #2
0
        public void AddToPlaylist(IITUserPlaylist pl, params SamTrack[] sortable_tracks)
        {
            Array.Sort(sortable_tracks);

            foreach (var t in sortable_tracks)
            {
                object track = t._Track;
                pl.AddTrack(ref track);
            }
        }
Exemple #3
0
        public static void AddTrackToPlaylistByPersistentId(this iTunesApp iTunes, IITUserPlaylist playlist, long id)
        {
            var track = iTunes.GetTrackByPersistentId(id);

            if (track != null)
            {
                playlist.AddTrack(track);
                Marshal.ReleaseComObject(track);
            }
        }
        public static IITUserPlaylist ShufflePlayList(IITUserPlaylist playlist)
        {
            IITTrackCollection tracks = playlist.Tracks;
            Random             rndm   = new Random((int)DateTime.Now.Ticks);
            int nTracks = tracks.Count;

            // Generate shuffled track order
            int[] shuffle = new int[nTracks];
            for (int n = 0; n < nTracks; n++)
            {
                shuffle[n] = n + 1;
            }
            for (int n = 0; n < nTracks; n++)
            {
                int i1 = rndm.Next(nTracks);
                int i2 = rndm.Next(nTracks);
                int t  = shuffle[i1];
                shuffle[i1] = shuffle[i2];
                shuffle[i2] = t;
            }

            // Create temporary playlist
            string          plName  = playlist.Name;
            string          tplName = string.Format("{0}_shfl", plName);
            IITUserPlaylist parent  = playlist.get_Parent();
            IITUserPlaylist pl1     = (parent == null) ? App.iTunes.CreatePlaylist(tplName) as IITUserPlaylist : parent.CreatePlaylist(tplName) as IITUserPlaylist;

            // populate playlist with shuffled track order
            for (int n = 0; n < nTracks; n++)
            {
                IITTrack trk = tracks[shuffle[n]];
                pl1.AddTrack(trk);
            }

            // delete original playlist
            playlist.Delete();

            // rename new playlist to original name
            pl1.Name = plName;

            // Retuen new playlist so tree can be updated.
            return(pl1);
        }