Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 public void Open()
 {
     _lib.EnableCallbacks();
     if (!_started)
     {
         _started = true;
         CECActions.ConnectToDevice(Config);
     }
 }
Example #4
0
 /// <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);
 }
Example #5
0
        /// <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);
        }
Example #6
0
        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;
            }
        }
Example #7
0
 /// <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;
         }
     }
 }
Example #8
0
 /// <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;
             }
         }
     }
 }