update new config system

This commit is contained in:
xpeng
2022-11-05 01:32:17 +01:00
parent be88d76799
commit d3840cb36e
40 changed files with 10198 additions and 628 deletions
@@ -10,23 +10,44 @@ public class CaptureSettingManager : MonoBehaviour
private void Start()
{
windowTexture = GetComponent<UwcWindowTexture>();
ConfigManager.onConfigChanged += ApplyConfig;
ConfigManager.EnsureInitialization();
ApplyConfig();
}
private void ApplyConfig()
{
windowTexture.captureMode = (CaptureMode)ConfigManager.config.CaptureMode - 1;
var modeWidget = ConfigManager.GetConfigPanelWidget("CaptureMode");
var fpsWidget = ConfigManager.GetConfigPanelWidget("CaptureFPS");
var desktopWidget = ConfigManager.GetConfigPanelWidget("CaptureDesktop");
var desktopIndexWidget = ConfigManager.GetConfigPanelWidget("DesktopIndex");
var fps = Enum.GetName(typeof(Config.captureFPS), ConfigManager.config.CaptureFPS);
windowTexture.captureFrameRate = int.Parse(fps.Remove(0, 3));
var modeDropdown = modeWidget.GetComponent<TMP_Dropdown>();
var fpsDropdown = fpsWidget.GetComponent<TMP_Dropdown>();
var desktopToggle = desktopWidget.GetComponent<Toggle>();
var desktopIndexDropdown = desktopIndexWidget.GetComponent<TMP_Dropdown>();
if (ConfigManager.config.CaptureDesktop)
{
windowTexture.type = WindowTextureType.Desktop;
windowTexture.desktopIndex = ConfigManager.config.CaptureDesktopNumber;
}
else
windowTexture.type = WindowTextureType.Window;
modeDropdown.onValueChanged.AddListener((int value) => {
windowTexture.captureMode = (CaptureMode)Enum.GetValues(typeof(CaptureMode)).GetValue(value) - 1;
});
fpsDropdown.onValueChanged.AddListener((int value) => {
var fps = Enum.GetName(typeof(CEnum.FPS), value);
windowTexture.captureFrameRate = int.Parse(fps.Remove(0, 3));
});
desktopToggle.onValueChanged.AddListener((bool value) => {
if (value)
{
windowTexture.type = WindowTextureType.Desktop;
desktopIndexDropdown.interactable = true;
}
else
{
windowTexture.type = WindowTextureType.Desktop;
desktopIndexDropdown.interactable = false;
}
});
desktopIndexDropdown.onValueChanged.AddListener((int value) => {
windowTexture.desktopIndex = value;
});
modeDropdown.onValueChanged?.Invoke(modeDropdown.value);
fpsDropdown.onValueChanged?.Invoke(fpsDropdown.value);
desktopToggle.onValueChanged?.Invoke(desktopToggle.isOn);
desktopIndexDropdown.onValueChanged?.Invoke(desktopIndexDropdown.value);
}
}