+ public void CheckActiveDevices()
+ {
+ CecLogicalAddresses activeDevices = Lib.GetActiveDevices();
+ List<string> deviceList = new List<string>();
+ foreach (CecLogicalAddress activeDevice in activeDevices.Addresses)
+ {
+ if (activeDevice != CecLogicalAddress.Unknown)
+ deviceList.Add(string.Format("{0,1:X} : {1}", (int)activeDevice, Lib.ToString(activeDevice)));
+ }
+ deviceList.Add(string.Format("{0,1:X} : {1}", (int)CecLogicalAddress.Broadcast, Lib.ToString(CecLogicalAddress.Broadcast)));
+
+ SetActiveDevices(deviceList.ToArray());
+ }
+
+ delegate void SetActiveDevicesCallback(string[] activeDevices);
+ private void SetActiveDevices(string[] activeDevices)
+ {
+ if (this.cbCommandDestination.InvokeRequired)
+ {
+ SetActiveDevicesCallback d = new SetActiveDevicesCallback(SetActiveDevices);
+ try
+ {
+ this.Invoke(d, new object[] { activeDevices });
+ }
+ catch (Exception) { }
+ }
+ else
+ {
+ this.cbCommandDestination.Items.Clear();
+ foreach (string item in activeDevices)
+ this.cbCommandDestination.Items.Add(item);
+ }
+ }
+