private void populateSources() { try { // Clear the sources, if there are any. sourceListing1.Items.Clear(); sourceListing2.Items.Clear(); sources = iTunes.Sources; // Populate the source listings with libraries and iPods. foreach (IITSource source in sources) { if (source.Kind == ITSourceKind.ITSourceKindLibrary || source.Kind == ITSourceKind.ITSourceKindIPod) { sourceListing1.Items.Add(source.Name); sourceListing2.Items.Add(source.Name); } } if (sourceListing1.Items.Count == 1) { MessageBox.Show("Only one available source was detected. Please add another source (such as an iPod) and refresh the sources from the menu to continue."); buttonPreview.Visible = false; } else { buttonPreview.Visible = true; } } catch (Exception ex) { MessageBox.Show("There was a problem getting the listing of sources." + System.Environment.NewLine + "Message: " + ex.Message); } }
/// <summary> /// Returns all sources currently loaded into iTunes. /// </summary> /// <returns>DataTable with source information.</returns> public DataTable GetSources() { DataTable dt = new DataTable(); dt.Columns.Add("Index"); dt.Columns.Add("Name"); dt.Columns.Add("Kind"); dt.Columns.Add("SourceId"); //dt.Columns.Add("PlaylistId"); //dt.Columns.Add("TrackDatabaseId"); //dt.Columns.Add("TrackId"); dt.Columns.Add("Capacity"); dt.Columns.Add("FreeSpace"); IITSourceCollection sources = iTunes.Sources; DataRow dr; foreach (IITSource source in sources) { dr = dt.NewRow(); dr["Index"] = source.Index; dr["Name"] = source.Name; dr["Kind"] = source.Kind; dr["SourceId"] = source.sourceID; //dr["PlaylistId"] = source.playlistID; //dr["TrackDatabaseId"] = source.TrackDatabaseID; //dr["TrackId"] = source.trackID; dr["Capacity"] = source.Capacity; dr["FreeSpace"] = source.FreeSpace; dt.Rows.Add(dr); //source.Playlists;//IITPlaylistCollection } return(dt); }
// update all iPods public static void SyncAlliPods() { iTunesApp iTunes = new iTunesApp(); IITSourceCollection sources = iTunes.Sources; foreach (IITSource source in sources) { if (source.Kind == ITSourceKind.ITSourceKindIPod) { ((IITIPodSource)source).UpdateIPod(); } } }
private bool GetSourceListing() { try { if (iTunes.Sources.Count > 0) { sources = iTunes.Sources; return(true); } else { Console.WriteLine("There are no sources available."); return(false); } } catch (Exception ex) { Console.WriteLine("Unable to get a listing of sources from iTunes."); Console.WriteLine("Error message: " + ex.Message); return(false); } }
private void ApplicationStartUp() { try { // Connect to iTunes. iTunes = new iTunesAppClass(); toolStripStatusLabel.Text = "Connected to iTunes. Attempting to get available sources."; // Get the available sources. sources = iTunes.Sources; toolStripStatusLabel.Text = "Available sources retrieved."; // Clear whatever is in the list box. listBoxSources.Items.Clear(); // Generate the listing of fields that can be output in the Xml document. foreach (IITSource source in sources) { if (source.Kind == ITSourceKind.ITSourceKindLibrary || source.Kind == ITSourceKind.ITSourceKindIPod) { toolStripStatusLabel.Text = "Source found. Adding to list."; listBoxSources.Items.Add(source.Name); } } toolStripStatusLabel.Text = "All available sources added."; toolStripStatusLabel.Text = "Attempting to retrieve configuration settings."; toolStripStatusLabel.Text = "Application started. Select a source and/or playlist."; } catch (Exception ex) { MessageBox.Show("Unable to connect to iTunes. Please exit application and verify that iTunes is installed on your machine." + System.Environment.NewLine + "Message: " + ex.Message); return; } // Setup the main background worker. bWorker.WorkerSupportsCancellation = true; bWorker.WorkerReportsProgress = true; bWorker.DoWork += new DoWorkEventHandler(PopulateXmlDataWorker); bWorker.ProgressChanged += new ProgressChangedEventHandler(OnGenericWorkerProgressChanged); if (listBoxSources.Items.Count > 0) { if (startingSource.Length > 0 && listBoxSources.Items.Contains(startingSource)) { listBoxSources.SelectedIndex = listBoxSources.Items.IndexOf(startingSource); } else { listBoxSources.SelectedIndex = 0; } } }
/// <summary> /// Returns a DataTable with all tracks on a particular source. /// </summary> /// <param name="sourceId">Unique ID associated to sources by iTunes. Use GetSources method for listing.</param> /// <returns>DataTable with basic track information.</returns> public DataTable GetSourceTracks(int sourceId) { DataTable dt = new DataTable(); dt.Columns.Add("Index"); dt.Columns.Add("Name"); dt.Columns.Add("Artist"); dt.Columns.Add("Album"); //dt.Columns.Add(""); DataRow dr; IITSourceCollection sources = iTunes.Sources; foreach (IITSource source in sources) { if (source.sourceID == sourceId) { foreach (IITPlaylist playlist in source.Playlists) { if (playlist.Kind == ITPlaylistKind.ITPlaylistKindLibrary) { foreach (IITTrack track in playlist.Tracks) { dr = dt.NewRow(); dr["Index"] = track.Index; dr["Name"] = track.Name; dr["Artist"] = track.Artist; dr["Album"] = track.Album; dt.Rows.Add(dr); } break; } } break; } } return(dt); }
private void AllProps(iTunesAppClass itunes) { bool acmpEnabled = itunes.AppCommandMessageProcessingEnabled; IITEncoder encoder = itunes.CurrentEncoder; IITEQPreset eqPreset = itunes.CurrentEQPreset; IITPlaylist playlist = itunes.CurrentPlaylist; string streamTitle = itunes.CurrentStreamTitle; string streamURL = itunes.CurrentStreamURL; IITTrack track = itunes.CurrentTrack; IITVisual visual = itunes.CurrentVisual; IITEncoderCollection encoders = itunes.Encoders; bool eqEnabled = itunes.EQEnabled; IITEQPresetCollection eqPresets = itunes.EQPresets; // this always seems to raise a COM exception, whether playing or stopped... //IITWindow eqWindow = itunes.EQWindow; bool fgOnDialog = itunes.ForceToForegroundOnDialog; bool fsVisuals = itunes.FullScreenVisuals; IITLibraryPlaylist libPlaylist = itunes.LibraryPlaylist; IITSource libSource = itunes.LibrarySource; string libXmlPath = itunes.LibraryXMLPath; bool mute = itunes.Mute; // this will raise a COM exception when iTunes first started //int position = itunes.PlayerPosition; ITPlayerState state = itunes.PlayerState; IITTrackCollection selectedTracks = itunes.SelectedTracks; int volume = itunes.SoundVolume; bool volEnabled = itunes.SoundVolumeControlEnabled; IITSourceCollection sources = itunes.Sources; string version = itunes.Version; IITVisualCollection visuals = itunes.Visuals; bool visualsEnabled = itunes.VisualsEnabled; ITVisualSize visualSize = itunes.VisualSize; IITWindowCollection windows = itunes.Windows; }
public static CPlaylist LoadPlaylists(iTunesApp itunes) { CPlaylist retPlaylist = new CPlaylist(null); IITSourceCollection sources = itunes.Sources; IITPlaylistCollection playlists = null; IITSource plSource = null; foreach (IITSource source in sources) { if (source.Kind == ITSourceKind.ITSourceKindLibrary) { plSource = source; playlists = source.Playlists; break; } } foreach (IITPlaylist pl in playlists) { if (pl.Kind != ITPlaylistKind.ITPlaylistKindUser) { continue; } try { IITUserPlaylist upl = (IITUserPlaylist)pl; if (upl.Smart) { continue; } if (upl.SpecialKind == ITUserPlaylistSpecialKind.ITUserPlaylistSpecialKindPodcasts) { continue; } string strDir = string.Empty; Stack <IITUserPlaylist> parentStack = new Stack <IITUserPlaylist>(); IITUserPlaylist uplp = upl.get_Parent(); if (uplp != null) { parentStack.Push(uplp); IITUserPlaylist uplc = uplp; do { uplp = uplc.get_Parent(); if (uplp != null) { parentStack.Push(uplp); uplc = uplp; } } while (uplp != null); } CPlaylist parentPL = retPlaylist; bool bFoundLeaf = false; do { uplp = (parentStack.Count > 0) ? parentStack.Pop() : null; if (uplp == null) { bFoundLeaf = true; } else { CPlaylist childPL = null; foreach (var item in parentPL.Children) { if (item.Name == uplp.Name) { childPL = item; break; } } if (childPL != null) { parentPL = childPL; } else { bFoundLeaf = true; } } } while (!bFoundLeaf); while (uplp != null) { CPlaylist plChild = new CPlaylist(uplp, true); parentPL.Children.Add(plChild); parentPL = plChild; uplp = (parentStack.Count > 0) ? parentStack.Pop() : null; } parentPL.Children.Add(new CPlaylist(upl)); } catch (Exception ex) { Debug.WriteLine(ex); } } return(retPlaylist); }