protected override void QueueInternal(Song song)
 {
     MetaDataLookup lookup = new MetaDataLookup(song);
     this.songStatusMap[song] = lookup;
     lookup.StatusEvent += new EventHandler<MetaDataEventArgs>(lookupStatusEvent);
     lookup.ChangeState(MetaDataStatus.Waiting);
 }
        protected override void QueueInternal(Song song)
        {
            MetaDataLookup lookup = new MetaDataLookup(song);

            this.songStatusMap[song] = lookup;
            lookup.StatusEvent      += new EventHandler <MetaDataEventArgs>(lookupStatusEvent);
            lookup.ChangeState(MetaDataStatus.Waiting);
        }
        protected override void CancelInternal(Song song)
        {
            MetaDataLookup lookup = (MetaDataLookup)this.songStatusMap[song];

            if (lookup != null)
            {
                lookup.Cancel();
            }
        }
 void lookupStatusEvent(object sender, MetaDataEventArgs e)
 {
     this.OnStatusEvent(e);
     if (e.MetaData.IsFinished)
     {
         MetaDataLookup lookup = (MetaDataLookup)sender;
         lookup.StatusEvent -= new EventHandler <MetaDataEventArgs>(lookupStatusEvent);
         this.CleanupOne(e.MetaData.Song);
     }
 }
Example #5
0
        static void TestMetaDataLookup()
        {
            string file = @"C:\Documents and Settings\Admin_2\My Documents\My Music\iTunes\iTunes Music\After the fire\Der Kommissar\01 Der Kommissar.mp3";
            //string file = @"C:\Documents and Settings\Admin_2\My Documents\My Music\iTunes\iTunes Music\Alanis Morissette\So-Called Chaos\01 Eight Easy Steps.mp3";
            //string file = @"C:\Documents and Settings\Admin_2\My Documents\My Music\iTunes\iTunes Music\Unknown Artist\Unknown Album\16 Pump UP the jam.mp3";
            //string file = @"C:\Documents and Settings\Admin_2\My Documents\My Music\iTunes\iTunes Music\Ziqo\Unknown Album\01 Vamos Embora.mp3";

            MetaDataLookup req = new MetaDataLookup();
            Console.WriteLine("looking up '{0}'...", file);
            req.Lookup(file);
            Console.WriteLine("puid={0}", req.MetaData.Puid);
            Console.WriteLine("title={0}", req.MetaData.Title);
            Console.WriteLine("artist={0}", req.MetaData.Artist);
            Console.WriteLine("genre={0}", req.MetaData.Genre);
        }
Example #6
0
        static void TestManyMetaDataLookup()
        {
            ITunesLibrary lib = new ITunesLibrary();
            lib.MaxSongsToFetch = 50;
            lib.LoadSongs();
            lib.WaitLoad();

            Stopwatch sw = new Stopwatch();
            sw.Start();
            try {
                foreach (Song song in lib.Songs) {
                    MetaDataLookup req = new MetaDataLookup();
                    //MetaDataLookupOld req = new MetaDataLookupOld();
                    req.Lookup(song);
                    if (req.Status == MetaDataStatus.Success) {
                        if (song.Title == req.MetaData.Title && song.Artist == req.MetaData.Artist)
                            System.Diagnostics.Debug.WriteLine(String.Format("same: {0}", song));
                        else
                            System.Diagnostics.Debug.WriteLine(String.Format("different: {0}. title={1}, artist={2}", song, req.MetaData.Title, req.MetaData.Artist));
                    } else {
                        System.Diagnostics.Debug.WriteLine(String.Format("failed: {0}", song));
                    }
                }
            }
            finally {
                sw.Stop();
                System.Diagnostics.Debug.WriteLine(String.Format("Tried {0} song in {1} ({2} secs per song)", lib.Songs.Count, sw.Elapsed, (sw.ElapsedMilliseconds / lib.Songs.Count) / 1000));
            }
        }
        protected override void StartInternal(Song song)
        {
            MetaDataLookup lookup = (MetaDataLookup)this.songStatusMap[song];

            lookup.RunAsync(song);
        }