Esempio n. 1
0
        private PersistentID GetPersistentID(IITObject obj)
        {
            object refobj = obj;
            int    high, low;

            itunes.GetITObjectPersistentIDs(ref refobj, out high, out low);
            return(new PersistentID(high, low));
        }
Esempio n. 2
0
        private ulong GetPersistentId(IITObject obj)
        {
            int    high, low;
            object nobj = obj;

            _iTunes.GetITObjectPersistentIDs(ref nobj, out high, out low);
            return(((ulong)high << 32) + (ulong)low);
        }
Esempio n. 3
0
        public static long GetPersistentId(this iTunesApp iTunes, IITObject item)
        {
            object o = item;
            int    high, low;

            iTunes.GetITObjectPersistentIDs(ref o, out high, out low);
            return(Encode(high, low));
        }
Esempio n. 4
0
        /// <summary>
        /// Gets the persisten ID of the current IITObject.
        /// </summary>
        /// <returns>
        /// A PersistentID that represents this IITObject or PersistentID.Empty if this
        /// instance does not derive from IITObject.
        /// </returns>

        protected PersistentID GetPersistentID(IITObject obj)
        {
            if (persistentID.IsEmpty)
            {
                int high = 0;
                int low  = 0;

                Invoke((Action) delegate
                {
                    object refobj = obj;
                    itunes.GetITObjectPersistentIDs(ref refobj, out high, out low);
                    // do not Release(refobj) here or we'll blow away the original obj!
                });

                return(new PersistentID(high, low));
            }

            return(persistentID);
        }
Esempio n. 5
0
        public void LoadPlaylist(Playlist playlist)
        {
            IITObject   playlistObject = _iTunesSucks.GetITObjectByID(playlist.iTunesSourceId, playlist.iTunesPlaylistId, 0, 0);
            IITPlaylist iTunesPlaylist = (IITPlaylist)playlistObject;

            if (playlistObject != null)
            {
                playlist.Name = iTunesPlaylist.Name;
                foreach (IITTrack iTunesTrack in iTunesPlaylist.Tracks)
                {
                    Song track = new Song()
                    {
                        Name   = iTunesTrack.Name,
                        Artist = iTunesTrack.Artist,
                    };

                    playlist.Songs.Add(track);
                }
            }
        }
        /// <summary>
        /// Gets the string hex value of the given object's persistent ID
        /// </summary>
        /// <param name="iTunesObject">An ITunes object</param>
        /// <returns>The persistent ID as a string hex</returns>
        public static string GetPersistentID(IITObject iTunesObject)
        {
            if (_app == null)
                throw new ITunesNotRunningException();

            int high, low;
            _app.GetITObjectPersistentIDs(iTunesObject, out high, out low);

            return high.ToString("X") + low.ToString("X");
        }
Esempio n. 7
0
 private string GetTrackFilename(IITObject track)
 {
     return(GetPersistentId(track) + ".m4a");
 }
Esempio n. 8
0
 private PersistentID GetPersistentID(IITObject obj)
 {
     object refobj = obj;
     int high, low;
     itunes.GetITObjectPersistentIDs(ref refobj, out high, out low);
     return new PersistentID(high, low);
 }
Esempio n. 9
0
        private void DumpChanges(string title, ObjectIDCollection things)
        {
            foreach (ObjectID oid in things)
            {
                if (oid.IsSource)
                {
                    IITSource source = (IITSource)itunes.GetITObjectByID(
                        oid.SourceID, oid.PlaylistID, oid.TrackID, oid.DatabaseID);

                    if (source == null)
                    {
                        Debug.WriteLine(
                            String.Format("Source ({0},{1},{2},{3}): UNKNOWN",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID));
                    }
                    else
                    {
                        Debug.WriteLine(
                            String.Format("Source ({0},{1},{2},{3}): {4}",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID,
                                          source.Name));
                    }
                }
                else if (oid.IsPlaylist)
                {
                    IITPlaylist playlist = (IITPlaylist)itunes.GetITObjectByID(
                        oid.SourceID, oid.PlaylistID, oid.TrackID, oid.DatabaseID);

                    if (playlist == null)
                    {
                        Debug.WriteLine(
                            String.Format("Playlist ({0},{1},{2},{3}): UNKNOWN",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID));
                    }
                    else
                    {
                        Debug.WriteLine(
                            String.Format("Playlist ({0},{1},{2},{3}): {4}, tracks {5}",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID,
                                          playlist.Name, playlist.Tracks.Count));
                    }
                }
                else if (oid.IsTrack)
                {
                    IITTrack track = (IITTrack)itunes.GetITObjectByID(
                        oid.SourceID, oid.PlaylistID, oid.TrackID, oid.DatabaseID);

                    if (track == null)
                    {
                        Debug.WriteLine(
                            String.Format("Track ({0},{1},{2},{3}): UNKNOWN",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID));
                    }
                    else
                    {
                        Debug.WriteLine(
                            String.Format("Track ({0},{1},{2},{3}): {4}, playedCount {5}",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID,
                                          track.Name, track.PlayedCount));
                    }
                }
                else
                {
                    IITObject changed = itunes.GetITObjectByID(
                        oid.SourceID, oid.PlaylistID, oid.TrackID, oid.DatabaseID);

                    if (changed == null)
                    {
                        Debug.WriteLine(
                            String.Format("Unknown ({0},{1},{2},{3})",
                                          oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID));
                    }
                    else
                    {
                        Debug.WriteLine(String.Format(
                                            "other ({0},{1},{2},{3}) -> Name [{4}]",
                                            oid.DatabaseID, oid.SourceID, oid.PlaylistID, oid.TrackID,
                                            changed.Name));
                    }
                }
            }
        }