private void OnServiceFound(object o, ServiceArgs args)
        {
            ThreadAssist.ProxyToMain(delegate {
                DaapSource source = new DaapSource(args.Service);
                string key        = String.Format("{0}:{1}", args.Service.Name, args.Service.Port);

                if (source_map.Count == 0)
                {
                    ServiceManager.SourceManager.AddSource(container);
                }

                if (source_map.ContainsKey(key))
                {
                    // Received new connection info for service
                    container.RemoveChildSource(source_map [key]);
                    source_map [key] = source;
                }
                else
                {
                    // New service information
                    source_map.Add(key, source);
                }

                container.AddChildSource(source);

                // Don't flash shares we find on startup (well, within 5s of startup)
                if ((DateTime.Now - locator_started).TotalSeconds > 5)
                {
                    source.NotifyUser();
                }
            });
        }
        private void AddDaapServer (Service service)
        {
            ThreadAssist.ProxyToMain (delegate {
                DaapSource source = new DaapSource (service);
                string key = String.Format ("{0}:{1}", service.Name, service.Port);

                if (source_map.Count == 0) {
                    ServiceManager.SourceManager.AddSource (container);
                }

                if (source_map.ContainsKey (key)) {
                    // Received new connection info for service
                    container.RemoveChildSource (source_map [key]);
                    source_map [key] = source;
                } else {
                    // New service information
                    source_map.Add (key, source);
                }

                container.AddChildSource (source);

                // Don't flash shares we find on startup (well, within 5s of startup)
                if ((DateTime.Now - locator_started).TotalSeconds > 5) {
                    source.NotifyUser ();
                }
            });
        }