private void EnumVideoSettings() { int numVideoSettings = AVProLiveCameraPlugin.GetNumDeviceVideoSettings(_deviceIndex); for (int i = 0; i < numVideoSettings; i++) { int settingType; int dataType; string name; bool canAutomatic; if (AVProLiveCameraPlugin.GetDeviceVideoSettingInfo(_deviceIndex, i, out settingType, out dataType, out name, out canAutomatic)) { AVProLiveCameraSettingBase setting = null; // Data type is boolean if (dataType == 0) { bool defaultValue; bool currentValue; bool isAutomatic; if (AVProLiveCameraPlugin.GetDeviceVideoSettingBoolean(_deviceIndex, i, out defaultValue, out currentValue, out isAutomatic)) { setting = new AVProLiveCameraSettingBoolean(_deviceIndex, i, settingType, name, canAutomatic, isAutomatic, defaultValue, currentValue); } } // Data type is float else if (dataType == 1) { bool isAutomatic; float defaultValue; float currentValue; float minValue, maxValue; if (AVProLiveCameraPlugin.GetDeviceVideoSettingFloat(_deviceIndex, i, out defaultValue, out currentValue, out minValue, out maxValue, out isAutomatic)) { setting = new AVProLiveCameraSettingFloat(_deviceIndex, i, settingType, name, canAutomatic, isAutomatic, defaultValue, currentValue, minValue, maxValue); } } if (setting != null) { _settings.Add(setting); _settingsByType.Add(settingType, setting); } } } }