/trunk/SoundBeam/Form1.cs |
@@ -59,27 +59,15 @@ |
|
private static readonly Dictionary<TcpClient, WasapiOut> WasapiOut = new Dictionary<TcpClient, WasapiOut>(); |
|
private static readonly BindingList<DiscoveredServer> DiscoveredServersBindingList = new BindingList<DiscoveredServer>(); |
|
private static readonly BindingSource DiscoveredServersBindingSource = |
new BindingSource(DiscoveredServersBindingList, null); |
|
public Form1() |
{ |
InitializeComponent(); |
|
// Set the tool strip combo box binding. |
sendToolStripComboBox.ComboBox.DisplayMember = "Hostname"; |
sendToolStripComboBox.ComboBox.ValueMember = "Hostname"; |
sendToolStripComboBox.ComboBox.DataSource = DiscoveredServersBindingSource; |
sendToolStripComboBox.ComboBox.BindingContext = this.BindingContext; |
|
// Register local service. |
SoundBeamRegisterService.Name = "SoundBeam Audio Sink"; |
SoundBeamRegisterService.RegType = "_soundbeam._tcp"; |
SoundBeamRegisterService.Port = 9000; |
SoundBeamRegisterService.UPort = 9000; |
SoundBeamRegisterService.ReplyDomain = "local."; |
SoundBeamRegisterService.ReplyDomain = "local"; |
|
SoundBeamRegisterService.Response += OnRegisterServiceResponse; |
SoundBeamRegisterService.Register(); |
@@ -86,7 +74,7 @@ |
|
// Browse for services. |
SoundBeamServiceBrowser.ServiceAdded += OnSoundBeamServiceBrowserServiceAdded; |
SoundBeamServiceBrowser.Browse(0, AddressProtocol.Any, "_soundbeam._tcp", "local."); |
SoundBeamServiceBrowser.Browse(0, AddressProtocol.Any, "_soundbeam._tcp", "local"); |
} |
|
/// <summary> |
@@ -119,32 +107,9 @@ |
|
private void OnSoundBeamServiceBrowserServiceAdded(object o, ServiceBrowseEventArgs args) |
{ |
if (args?.Service == null) |
return; |
|
args.Service.Resolved += OnSoundBeamServiceResolved; |
args.Service.Resolve(); |
var a = args.Service.HostTarget; |
} |
|
private void OnSoundBeamServiceResolved(object o, ServiceResolvedEventArgs args) |
{ |
if (args?.Service == null) |
return; |
|
args.Service.Resolved -= OnSoundBeamServiceResolved; |
|
// Do not add already added servers. |
if (DiscoveredServersBindingList.Any(server => |
string.Equals(server.Hostname, args.Service.HostTarget, StringComparison.OrdinalIgnoreCase) && |
server.Port == args.Service.Port)) |
return; |
|
Invoke((Action) (() => |
{ |
DiscoveredServersBindingList.Add(new DiscoveredServer(args.Service.HostTarget, args.Service.Port)); |
})); |
} |
|
private void OnRegisterServiceResponse(object o, RegisterServiceEventArgs args) |
{ |
if (args.IsRegistered) |
@@ -184,14 +149,7 @@ |
|
private void OnQuitToolStripMenuItemClick(object sender, EventArgs e) |
{ |
Dispose(true); |
|
Application.Exit(); |
} |
|
private void OnFormLoad(object sender, EventArgs e) |
{ |
|
} |
} |
} |