private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; string ip = service.HostEntry.AddressList[0].ToString(); string serial = ""; ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); if (item.Key == "device") { serial = item.ValueString; Regex regexASNSerial = new Regex(@"AS\w{8}"); Match match; match = regexASNSerial.Match(serial); if (match.Success) { name2Serial.Add(args.Service.Name, serial); serial2IP.Add(serial, ip); Console.WriteLine("Found Aroma Shooter: serial = {0}, IP = {1}.", serial, ip); } } } } }
private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; Console.Write("*** Resolved name = '{0}', host ip = '{1}', hostname = {2}, port = '{3}', " + "interface = '{4}', address type = '{5}'", service.FullName, service.HostEntry.AddressList[0], service.HostEntry.HostName, service.Port, service.NetworkInterface, service.AddressProtocol); ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { Console.Write(", TXT Record = ["); for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); Console.Write("{0} = '{1}'", item.Key, item.ValueString); if (i < n - 1) { Console.Write(", "); } } Console.WriteLine("]"); } else { Console.WriteLine(""); } }
private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; Console.Write("*** Resolved name = '{0}', port = '{1}', interface = '{2}'", service.FullName, service.Port, service.NetworkInterface); foreach (System.Net.IPAddress j in service.HostEntry.AddressList) { Console.Write("host = '{0}'", j); } ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { Console.Write(", TXT Record = ["); for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); Console.Write("{0} = '{1}'", item.Key, item.ValueString); if (i < n - 1) { Console.Write(", "); } } Console.WriteLine("]"); } else { Console.WriteLine(""); } }
private void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; if (service == null) { return; } Log.DebugFormat("Resolved RAOP service at {0}", service.HostEntry.AddressList[0]); ITxtRecord record = service.TxtRecord; string version = String.Empty; int sample_size = 16, sample_rate = 44100, channels = 2; for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); switch (item.Key) { case "vs": version = item.ValueString; break; case "ss": sample_size = Convert.ToInt32(item.ValueString); break; case "sr": sample_rate = Convert.ToInt32(item.ValueString); break; case "ch": channels = Convert.ToInt32(item.ValueString); break; } } lock (speakers) { // TODO: better Name speakers.Add(new RemoteSpeaker(service.HostEntry.HostName, service.HostEntry.AddressList[0], service.Port, version, sample_rate, sample_size, channels)); } EventHandler handler = SpeakersChanged; if (handler != null) { handler(this, EventArgs.Empty); } }
public void Register() { lock (eg_mutex) { if (entry_group != null) { entry_group.Reset(); } else { entry_group = new AV.EntryGroup(client); entry_group.StateChanged += OnEntryGroupStateChanged; } try { string [] rendered_txt_record = null; if (txt_record != null && txt_record.Count > 0) { rendered_txt_record = new string[txt_record.Count]; for (int i = 0; i < txt_record.Count; i++) { TxtRecordItem item = txt_record.GetItemAt(i); rendered_txt_record[i] = String.Format("{0}={1}", item.Key, item.ValueString); } } entry_group.AddService(name, regtype, reply_domain, (ushort)port, rendered_txt_record); entry_group.Commit(); } catch (AV.ClientException e) { if (e.ErrorCode == AV.ErrorCode.Collision && OnResponse(e.ErrorCode)) { return; } else { throw e; } } } }
private void OnServiceResolved(object o, ServiceResolvedEventArgs args) { string path = ""; IResolvableService service = o as IResolvableService; ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); if (item.Key.CompareTo("path") == 0) { path = item.ValueString; } } } url = "http://" + service.HostEntry.AddressList[0] + ":" + service.Port + "/" + path; register(); }
public TxtRecordItem GetItemAt(int index) { return(record.GetItemAt(index)); }