Fix Preset Save

This commit is contained in:
copecone committed 2026-07-25 08:18:27 +09:00
1 parent 8bc855db41
commit c07b57b273
5 files changed
+79 -70

No files matched your search

+20 -15
View File
@@ -84,9 +84,9 @@ namespace ADOFAIRenderer.Data
// 2. legacy top-level Codec -> VideoConfig.Codec
var legacyCodecToken = configObj["Codec"];
if (legacyCodecToken != null)
if (legacyCodecToken != null && legacyCodecToken.Type != JTokenType.Null)
{
if (configObj["VideoConfig"] == null)
if (configObj["VideoConfig"] == null || configObj["VideoConfig"]!.Type == JTokenType.Null)
{
configObj["VideoConfig"] = new JObject();
}
@@ -98,22 +98,27 @@ namespace ADOFAIRenderer.Data
}
// 3. legacy top-level Audio properties -> AudioConfig
if (configObj["AudioConfig"] == null)
string[] legacyAudioProps = { "RenderAudio", "AudioSampleRate", "AudioChannels", "AudioBitrate" };
foreach (var prop in legacyAudioProps)
{
var audioConfigObj = new JObject();
if (configObj["RenderAudio"] != null)
audioConfigObj["RenderAudio"] = configObj["RenderAudio"];
if (configObj["AudioSampleRate"] != null)
audioConfigObj["AudioSampleRate"] = configObj["AudioSampleRate"];
if (configObj["AudioChannels"] != null)
audioConfigObj["AudioChannels"] = configObj["AudioChannels"];
if (configObj["AudioBitrate"] != null)
audioConfigObj["AudioBitrate"] = configObj["AudioBitrate"];
if (audioConfigObj.HasValues)
var legacyToken = configObj[prop];
if (legacyToken != null && legacyToken.Type != JTokenType.Null)
{
configObj["AudioConfig"] = audioConfigObj;
if (configObj["AudioConfig"] == null || configObj["AudioConfig"]!.Type == JTokenType.Null)
{
configObj["AudioConfig"] = new JObject();
}
var audioConfigObj = (JObject)configObj["AudioConfig"]!;
audioConfigObj[prop] ??= legacyToken;
}
configObj.Remove(prop);
}
if (configObj["AudioConfig"] != null && configObj["AudioConfig"]!.Type == JTokenType.Null)
{
configObj.Remove("AudioConfig");
}
}