private PersistentID GetPersistentID(IITObject obj) { object refobj = obj; int high, low; itunes.GetITObjectPersistentIDs(ref refobj, out high, out low); return(new PersistentID(high, low)); }
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); }
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)); }
/// <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); }
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"); }
private string GetTrackFilename(IITObject track) { return(GetPersistentId(track) + ".m4a"); }
private PersistentID GetPersistentID(IITObject obj) { object refobj = obj; int high, low; itunes.GetITObjectPersistentIDs(ref refobj, out high, out low); return new PersistentID(high, low); }
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)); } } } }