fix: adaptive triggers + opt-in OLED sleep + brightness persistence
Closes the three non-audio user issues (audio path untouched): - #6: adaptive trigger FFB was silently dropped. state_update() copied the RightTriggerFFB/LeftTriggerFFB params into the outgoing state but never set the Allow{Right,Left}TriggerFFB apply-bits in byte 0, so the DS5 discarded them on BOTH the standalone 0x31 path and the 0x36 audio-frame fold, while direct USB worked. Mirror the host's two allow-flags in, like the rumble flags already were (matches what the on-device Trigger Test screen does). - #8/#9: new CtrlWake setting (default on = unchanged behavior). Set off and controller input no longer keeps the OLED awake, so the dim/off timeouts run during gameplay and the panel can sleep while the controller is in use; only KEY0/KEY1 wake it. - #9: OLED brightness (screen_brightness) now persists across a power cycle instead of resetting to full on every boot. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8fc369b1af
commit
71cead401d
@@ -113,6 +113,14 @@ void config_valid() {
|
||||
body->bt_mic_enable = 1;
|
||||
printf("[Config] bt_mic_enable invalid, defaulting to 1 (on)\n");
|
||||
}
|
||||
if (body->screen_brightness > 3) { // kBrightLevels has 4 entries (0..3)
|
||||
body->screen_brightness = 0; // full brightness
|
||||
printf("[Config] screen_brightness invalid, defaulting to 0 (full)\n");
|
||||
}
|
||||
if (body->controller_wakes_display > 1) { // 0xFF erased / upgrade → default ON
|
||||
body->controller_wakes_display = 1;
|
||||
printf("[Config] controller_wakes_display invalid, defaulting to 1 (on)\n");
|
||||
}
|
||||
if (body->config_version != CONFIG_VERSION) {
|
||||
body->config_version = CONFIG_VERSION;
|
||||
printf("[Config] Warning: Config may breaking change\n");
|
||||
|
||||
Reference in New Issue
Block a user