2 using System.Collections.Generic;
3 using System.ComponentModel;
7 using System.Windows.Forms;
10 namespace CecConfigGui
12 public partial class DeviceInformation : AsyncForm
14 public DeviceInformation(CecConfigGUI gui, CecLogicalAddress address, ref LibCecSharp lib,
15 bool devicePresent, CecVendorId vendor, bool isActiveSource, ushort physicalAddress,
16 CecVersion version, CecPowerStatus power, string osdName, string menuLanguage)
21 InitializeComponent();
22 this.lDevice.Text = lib.ToString(address);
23 this.lLogicalAddress.Text = String.Format("{0,1:X}", (int)address);
24 this.lPhysicalAddress.Text = String.Format("{0,4:X}", physicalAddress);
25 this.lDevicePresent.Text = devicePresent ? "yes" : "no";
26 this.lActiveSource.Visible = isActiveSource;
27 this.lInactiveSource.Visible = !isActiveSource;
28 this.lVendor.Text = vendor != CecVendorId.Unknown ? lib.ToString(vendor) : "unknown";
29 this.lCecVersion.Text = lib.ToString(version);
30 this.lPowerStatus.Text = lib.ToString(power);
31 bool isPoweredOn = (power == CecPowerStatus.On || power == CecPowerStatus.InTransitionStandbyToOn);
32 this.lOsdName.Text = osdName;
33 this.lMenuLanguage.Text = menuLanguage;
34 this.Text = "Device: " + osdName;
37 private void lInactiveSource_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
39 SetControlVisible(lInactiveSource, false);
40 SetControlVisible(lActiveSource, true);
41 Gui.ActivateSource(Address);
44 private void lStandby_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
46 LinkLabel label = sender as LinkLabel;
47 bool sendPowerOn = label.Text != Lib.ToString(CecPowerStatus.InTransitionStandbyToOn) &&
48 label.Text != Lib.ToString(CecPowerStatus.On);
50 SetControlText(lPowerStatus, Lib.ToString(sendPowerOn ? CecPowerStatus.On : CecPowerStatus.Standby));
52 Gui.SendImageViewOn(Address);
54 Gui.SendStandby(Address);
57 private CecLogicalAddress Address;
58 private CecConfigGUI Gui;
59 private LibCecSharp Lib;