public static void Main(string[] argv)
        {
            if (argv.Length < 1)
            {
                Console.WriteLine("Usage: ChromaPrintTest.exe <audio file>");
                return;
            }

            Application.Init();
            Loop = new GLib.MainLoop();

            var reader = new AcoustIDReader("TP95csTg");

            reader.GetID(argv [0], (id, list) => {
                Console.WriteLine("Track ID: " + id);
                foreach (Recording rec in list)
                {
                    Console.WriteLine("=========================");
                    Console.WriteLine("Recording ID: " + rec.ID);
                    Console.WriteLine("Title: " + rec.Title);
                    Console.WriteLine("Artists: ");
                    foreach (Artist artist in rec.Artists)
                    {
                        Console.WriteLine("\t * {0} (ID: {1})", artist.Name, artist.ID);
                    }
                    Console.WriteLine("Release Groups: ");
                    foreach (ReleaseGroup release_group in rec.ReleaseGroups)
                    {
                        string sec_types = "";
                        if (release_group.SecondaryTypes.Count == 0)
                        {
                            sec_types = "no secondary types";
                        }
                        else
                        {
                            foreach (string t in release_group.SecondaryTypes)
                            {
                                sec_types += t + ", ";
                            }
                            sec_types = sec_types.Remove(sec_types.Length - 2);
                        }
                        Console.WriteLine("\t * {0} (Type: {1} /{3}/, ID: {2})", release_group.Title, release_group.Type, release_group.ID, sec_types);
                    }
                }

                Loop.Quit();
            });

            Loop.Run();
        }
        public static void Main(string[] argv)
        {
            if (argv.Length < 1) {
                Console.WriteLine ("Usage: ChromaPrintTest.exe <audio file>");
                return;
            }

            Application.Init ();
            Loop = new GLib.MainLoop();

            var reader = new AcoustIDReader ("TP95csTg");
            reader.GetID (argv [0], (id, list) => {
                Console.WriteLine ("Track ID: " + id);
                foreach (Recording rec in list) {
                    Console.WriteLine ("=========================");
                    Console.WriteLine ("Recording ID: " + rec.ID);
                    Console.WriteLine ("Title: " + rec.Title);
                    Console.WriteLine ("Artists: ");
                    foreach (Artist artist in rec.Artists) {
                        Console.WriteLine ("\t * {0} (ID: {1})", artist.Name, artist.ID);
                    }
                    Console.WriteLine("Release Groups: ");
                    foreach (ReleaseGroup release_group in rec.ReleaseGroups) {
                        string sec_types = "";
                        if (release_group.SecondaryTypes.Count == 0) {
                            sec_types = "no secondary types";
                        } else {
                            foreach (string t in release_group.SecondaryTypes) {
                                sec_types += t + ", ";
                            }
                            sec_types = sec_types.Remove (sec_types.Length - 2);
                        }
                        Console.WriteLine ("\t * {0} (Type: {1} /{3}/, ID: {2})", release_group.Title, release_group.Type, release_group.ID, sec_types);
                    }
                }

                Loop.Quit ();
            });

            Loop.Run();
        }