public override int ConfigurationChanged(LibCECConfiguration config) { Config.Update(config); Settings.PhysicalAddress.Value = config.PhysicalAddress; if (config.AutodetectAddress) { Settings.DetectPhysicalAddress.Value = true; Settings.ConnectedDevice.Value = CecLogicalAddress.Unknown; Settings.HDMIPort.Value = 0; _gui.SetControlEnabled(Settings.ConnectedDevice.ValueControl, false); _gui.SetControlEnabled(Settings.HDMIPort.ValueControl, false); } else { Settings.ConnectedDevice.Value = config.BaseDevice == CecLogicalAddress.AudioSystem ? CecLogicalAddress.AudioSystem : CecLogicalAddress.Tv; Settings.HDMIPort.Value = config.HDMIPort; Settings.DetectPhysicalAddress.Value = false; _gui.SetControlEnabled(Settings.ConnectedDevice.ValueControl, true); _gui.SetControlEnabled(Settings.HDMIPort.ValueControl, true); } Settings.WakeDevices.Value = Config.WakeDevices; Settings.PowerOffDevices.Value = Config.PowerOffDevices; Settings.ActivateSource.Value = Config.ActivateSource; Settings.DeviceType.Value = config.DeviceTypes.Types[0]; Settings.TVAutoPowerOn.Value = (config.AutoPowerOn == BoolSetting.Enabled); if (config.TvVendor != CecVendorId.Unknown) { Settings.OverrideTVVendor.Value = true; Settings.TVVendor.Value = config.TvVendor; } else { Settings.OverrideTVVendor.Value = false; } _gui.SetControlText(_gui, Resources.app_name + " - libCEC " + Lib.VersionToString(Config.ServerVersion)); if (Config.AdapterType == CecAdapterType.PulseEightExternal || Config.AdapterType == CecAdapterType.PulseEightDaughterboard) { var versionAvailable = int.Parse(Resources.cec_firmware_version); _gui.SetControlVisible(_gui.pbFirmwareUpgrade, true); _gui.SetControlVisible(_gui.lFirmware, true); _gui.SetControlVisible(_gui.lFirmwareVersion, true); _gui.SetControlVisible(_gui.bFirmwareUpgrade, (File.Exists(FirmwareUpgradeExe))); _gui.SetControlText(_gui.lFirmwareVersion, "v" + Config.FirmwareVersion + " " + Config.FirmwareBuildDate); _gui.SetControlEnabled(_gui.bFirmwareUpgrade, ((Config.FirmwareVersion < versionAvailable) || (Config.FirmwareVersion > 100))); } else { _gui.SetControlVisible(_gui.pbFirmwareUpgrade, false); _gui.SetControlVisible(_gui.lFirmware, false); _gui.SetControlVisible(_gui.lFirmwareVersion, false); _gui.SetControlVisible(_gui.bFirmwareUpgrade, false); } _gui.SetControlVisible(Settings.TVAutoPowerOn.ValueControl, (Config.FirmwareVersion >= 9)); CECActions.UpdatePhysicalAddress(); return(1); }
public override int ConfigurationChanged(LibCECConfiguration config) { Settings.PhysicalAddress.Value = Config.PhysicalAddress; Settings.ConnectedDevice.Value = Config.BaseDevice == CecLogicalAddress.AudioSystem ? CecLogicalAddress.AudioSystem : CecLogicalAddress.Tv; Settings.HDMIPort.Value = Config.HDMIPort; Settings.WakeDevices.Value = Config.WakeDevices; Settings.PowerOffDevices.Value = Config.PowerOffDevices; Settings.ActivateSource.Value = Config.ActivateSource; Settings.DeviceType.Value = config.DeviceTypes.Types[0]; if (config.TvVendor != CecVendorId.Unknown) { Settings.OverrideTVVendor.Value = true; Settings.TVVendor.Value = config.TvVendor; } else { Settings.OverrideTVVendor.Value = false; } _gui.SetControlText(_gui, Resources.app_name + " - libCEC " + Lib.VersionToString(Config.ServerVersion)); CECActions.UpdatePhysicalAddress(); return(1); }
public void Open() { _lib.EnableCallbacks(); if (!_started) { _started = true; CECActions.ConnectToDevice(Config); } }
/// <summary> /// Opens a connection to libCEC and register known applications /// </summary> public void Initialise() { // only load once if (_initialised) { return; } _initialised = true; Applications.Initialise(this); SetControlsEnabled(false); CECActions.ConnectToDevice(Config); }
/// <summary> /// Opens a connection to libCEC and register known applications /// </summary> public void Initialise() { // only load once if (_initialised) { return; } _initialised = true; CECActions.ConnectToDevice(Config); Applications.Initialise(this); }
private void PowerModeChanged(object sender, PowerModeChangedEventArgs e) { switch (e.Mode) { case PowerModes.Suspend: _lib.DisableCallbacks(); break; case PowerModes.Resume: _lib.Close(); CECActions.ConnectToDevice(Config); break; default: break; } }
/// <summary> /// Called when a setting changed /// </summary> /// <param name="setting">The setting that changed</param> /// <param name="oldValue">The old value</param> /// <param name="newValue">The new value</param> private void OnSettingChanged(CECSetting setting, object oldValue, object newValue) { if (setting.KeyName == CECSettings.KeyHDMIPort) { CECSettingByte byteSetting = setting as CECSettingByte; if (byteSetting != null) { if (!Settings.OverridePhysicalAddress.Value) { Config.HDMIPort = byteSetting.Value; } CECActions.SetConnectedDevice(Settings.ConnectedDevice.Value, byteSetting.Value); } } else if (setting.KeyName == CECSettings.KeyConnectedToHDMIDevice) { CECSettingLogicalAddress laSetting = setting as CECSettingLogicalAddress; if (laSetting != null) { if (!Settings.OverridePhysicalAddress.Value) { Config.BaseDevice = laSetting.Value; } CECActions.SetConnectedDevice(laSetting.Value, Settings.HDMIPort.Value); } } else if (setting.KeyName == CECSettings.KeyPhysicalAddress) { CECSettingUShort ushortSetting = setting as CECSettingUShort; if (ushortSetting != null && Settings.OverridePhysicalAddress.Value && Config.PhysicalAddress != ushortSetting.Value) { Config.PhysicalAddress = ushortSetting.Value; CECActions.SetPhysicalAddress(ushortSetting.Value); } } else if (setting.KeyName == CECSettings.KeyOverridePhysicalAddress) { CECSettingBool boolSetting = setting as CECSettingBool; if (boolSetting != null) { Settings.PhysicalAddress.Enabled = boolSetting.Value; Settings.HDMIPort.Enabled = !boolSetting.Value; Settings.ConnectedDevice.Enabled = !boolSetting.Value; if (boolSetting.Value) { Config.BaseDevice = Settings.ConnectedDevice.Value; Config.HDMIPort = 0; Config.PhysicalAddress = Settings.PhysicalAddress.Value; } else { Config.BaseDevice = Settings.ConnectedDevice.Value; Config.HDMIPort = Settings.HDMIPort.Value; Config.PhysicalAddress = 0xFFFF; } } } else if (setting.KeyName == CECSettings.KeyDeviceType) { CECSettingDeviceType dtSetting = setting as CECSettingDeviceType; if (dtSetting != null) { if (dtSetting.Value != Config.DeviceTypes.Types[0] && Settings.OverrideTVVendor.Value) { Config.DeviceTypes.Types[0] = dtSetting.Value; if (!_deviceChangeWarningDisplayed) { _deviceChangeWarningDisplayed = true; MessageBox.Show(Resources.device_type_changed, Resources.app_name, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } else if (setting.KeyName == CECSettings.KeyOverrideTVVendor) { CECSettingBool boolSetting = setting as CECSettingBool; if (boolSetting != null) { Settings.TVVendor.Enabled = boolSetting.Value; Settings.TVVendor.Value = boolSetting.Value ? Lib.GetDeviceVendorId(CecLogicalAddress.Tv) : CecVendorId.Unknown; Config.TvVendor = boolSetting.Value ? Settings.TVVendor.Value : CecVendorId.Unknown; } } else if (setting.KeyName == CECSettings.KeyActivateSource) { CECSettingBool boolSetting = setting as CECSettingBool; if (boolSetting != null) { Config.ActivateSource = boolSetting.Value; } } else if (setting.KeyName == CECSettings.KeyTVVendor) { CECSettingVendorId vendorSetting = setting as CECSettingVendorId; if (vendorSetting != null && Settings.OverrideTVVendor.Value) { Config.TvVendor = vendorSetting.Value; } } else if (setting.KeyName == CECSettings.KeyWakeDevices) { CECSettingLogicalAddresses laSetting = setting as CECSettingLogicalAddresses; if (laSetting != null) { Config.WakeDevices = laSetting.Value; } } else if (setting.KeyName == CECSettings.KeyPowerOffDevices) { CECSettingLogicalAddresses laSetting = setting as CECSettingLogicalAddresses; if (laSetting != null) { Config.PowerOffDevices = laSetting.Value; } } }
/// <summary> /// Called when a setting changed /// </summary> /// <param name="setting">The setting that changed</param> /// <param name="oldValue">The old value</param> /// <param name="newValue">The new value</param> private void OnSettingChanged(CECSetting setting, object oldValue, object newValue) { if (setting.KeyName == CECSettings.KeyHDMIPort) { if (setting is CECSettingByte byteSetting && byteSetting.Value != 0) { Settings.OverridePhysicalAddress.Value = false; Settings.DetectPhysicalAddress.Value = false; Config.HDMIPort = byteSetting.Value; CECActions.SetConnectedDevice(Settings.ConnectedDevice.Value, byteSetting.Value); } } else if (setting.KeyName == CECSettings.KeyConnectedToHDMIDevice) { if (setting is CECSettingLogicalAddress laSetting && laSetting.Value != CecLogicalAddress.Unknown) { Settings.HDMIPort.Label.Text = string.Format(Resources.global_hdmi_port, CECSettingLogicalAddress.FormatValue((int)setting.Value)); Settings.OverridePhysicalAddress.Value = false; Settings.DetectPhysicalAddress.Value = false; Config.BaseDevice = laSetting.Value; CECActions.SetConnectedDevice(laSetting.Value, Settings.HDMIPort.Value); } } else if (setting.KeyName == CECSettings.KeyPhysicalAddress) { if (setting is CECSettingUShort ushortSetting && Settings.OverridePhysicalAddress.Value && !Settings.DetectPhysicalAddress.Value && (Config.PhysicalAddress != ushortSetting.Value)) { Config.PhysicalAddress = ushortSetting.Value; CECActions.SetPhysicalAddress(ushortSetting.Value); } } else if (setting.KeyName == CECSettings.KeyOverridePhysicalAddress) { if (setting is CECSettingBool boolSetting) { Settings.PhysicalAddress.Enabled = boolSetting.Value; Settings.HDMIPort.Enabled = !boolSetting.Value; Settings.ConnectedDevice.Enabled = !boolSetting.Value; Settings.DetectPhysicalAddress.Enabled = !boolSetting.Value; Settings.DetectPhysicalAddress.Value = false; if (boolSetting.Value) { Config.BaseDevice = CecLogicalAddress.Unknown; Config.HDMIPort = 0; Config.PhysicalAddress = Settings.PhysicalAddress.Value; } else { Config.BaseDevice = Settings.ConnectedDevice.Value; Config.HDMIPort = Settings.HDMIPort.Value; Config.PhysicalAddress = 0xFFFF; } } } else if (setting.KeyName == CECSettings.KeyDeviceType) { if (setting is CECSettingDeviceType dtSetting) { if (dtSetting.Value != Config.DeviceTypes.Types[0] && Settings.OverrideTVVendor.Value) { Config.DeviceTypes.Types[0] = dtSetting.Value; if (!_deviceChangeWarningDisplayed) { _deviceChangeWarningDisplayed = true; MessageBox.Show(Resources.device_type_changed, Resources.app_name, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } else if (setting.KeyName == CECSettings.KeyOverrideTVVendor) { if (setting is CECSettingBool boolSetting) { Settings.TVVendor.Enabled = boolSetting.Value; Settings.TVVendor.Value = boolSetting.Value ? Lib.GetDeviceVendorId(CecLogicalAddress.Tv) : CecVendorId.Unknown; Config.TvVendor = boolSetting.Value ? Settings.TVVendor.Value : CecVendorId.Unknown; } } else if (setting.KeyName == CECSettings.KeyActivateSource) { if (setting is CECSettingBool boolSetting) { Config.ActivateSource = boolSetting.Value; } } else if (setting.KeyName == CECSettings.KeyTVVendor) { if (setting is CECSettingVendorId vendorSetting && Settings.OverrideTVVendor.Value) { Config.TvVendor = vendorSetting.Value; } } else if (setting.KeyName == CECSettings.KeyWakeDevices) { if (setting is CECSettingLogicalAddresses laSetting) { Config.WakeDevices = laSetting.Value; } } else if (setting.KeyName == CECSettings.KeyPowerOffDevices) { if (setting is CECSettingLogicalAddresses laSetting) { Config.PowerOffDevices = laSetting.Value; } } else if (setting.KeyName == CECSettings.KeyTVAutoPowerOn) { if (setting is CECSettingBool boolSetting) { Config.AutoPowerOn = (boolSetting.Value ? BoolSetting.Enabled : BoolSetting.Disabled); } } else if (setting.KeyName == CECSettings.KeyDetectPhysicalAddress) { if (setting is CECSettingBool boolSetting) { Settings.OverridePhysicalAddress.Enabled = !boolSetting.Value; if (!boolSetting.Value) { Settings.OverridePhysicalAddress.Value = false; Settings.ConnectedDevice.Enabled = true; Settings.HDMIPort.Enabled = true; } } } }