public List <string> GetActiveDevices() { _lib.RescanActiveDevices(); List <string> devices = new List <string>(); CecLogicalAddresses addresses = _lib.GetActiveDevices(); for (int i = 0; i < addresses.Addresses.Length; i++) { CecLogicalAddress address = (CecLogicalAddress)i; if (!addresses.IsSet(address)) { continue; } string device = String.Empty; device += _lib.ToString(_lib.GetDeviceVendorId(address)) + ','; device += _lib.GetDeviceOSDName(address) + ','; device += _lib.ToString(_lib.GetDevicePowerStatus(address)) + ','; device += _lib.IsActiveDevice(address).ToString() + ','; device += _lib.GetDevicePhysicalAddress(address).ToString(); devices.Add(device); } return(devices); }
public DeviceInformation(CECController controller, CecLogicalAddress address, ref LibCecSharp lib, bool devicePresent, CecVendorId vendor, bool isActiveSource, ushort physicalAddress, CecVersion version, CecPowerStatus power, string osdName, string menuLanguage) { _controller = controller; _lib = lib; Address = address; InitializeComponent(); lDevice.Text = lib.ToString(address); lLogicalAddress.Text = String.Format("{0,1:X}", (int)address); Update(devicePresent, vendor, isActiveSource, physicalAddress, version, power, osdName, menuLanguage); }
public void Scan() { StringBuilder output = new StringBuilder(); output.AppendLine("CEC bus information"); output.AppendLine("==================="); CecLogicalAddresses addresses = Lib.GetActiveDevices(); for (int iPtr = 0; iPtr < addresses.Addresses.Length; iPtr++) { CecLogicalAddress address = (CecLogicalAddress)iPtr; if (!addresses.IsSet(address)) { continue; } CecVendorId iVendorId = Lib.GetDeviceVendorId(address); bool bActive = Lib.IsActiveDevice(address); ushort iPhysicalAddress = Lib.GetDevicePhysicalAddress(address); string strAddr = Lib.PhysicalAddressToString(iPhysicalAddress); CecVersion iCecVersion = Lib.GetDeviceCecVersion(address); CecPowerStatus power = Lib.GetDevicePowerStatus(address); string osdName = Lib.GetDeviceOSDName(address); string lang = Lib.GetDeviceMenuLanguage(address); output.AppendLine("device #" + iPtr + ": " + Lib.ToString(address)); output.AppendLine("address: " + strAddr); output.AppendLine("active source: " + (bActive ? "yes" : "no")); output.AppendLine("vendor: " + Lib.ToString(iVendorId)); output.AppendLine("osd string: " + osdName); output.AppendLine("CEC version: " + Lib.ToString(iCecVersion)); output.AppendLine("power status: " + Lib.ToString(power)); if (!string.IsNullOrEmpty(lang)) { output.AppendLine("language: " + lang); } output.AppendLine(""); } Debug.WriteLine(output.ToString()); }
public CecSharpClient() { Config = new LibCECConfiguration(); Config.DeviceTypes.Types[0] = CecDeviceType.RecordingDevice; Config.DeviceName = "CEC Tester"; Config.ClientVersion = CecClientVersion.Version1_5_0; Config.SetCallbacks(this); LogLevel = (int)CecLogLevel.All; Lib = new LibCecSharp(Config); Console.WriteLine("CEC Parser created - libcec version " + Lib.ToString(Config.ServerVersion)); }
/// <summary> /// /// </summary> /// <param name="newVal"></param> /// <returns></returns> public override int ReceiveMenuStateChange(CecMenuState newVal) { Trace.WriteLine("CEC menu state changed to: " + iLib.ToString(newVal)); return(1); }