Audio: chirp ACTUALLY killed -- 9 configure-ticker triggers, typed -1 pad (task #50)

The previous 'chirp killed' verification was WRONG: it checked the 1/s playing
snapshot (which misses 0.12s pulses) instead of delivery counts -- the run had
186 ProgramButton deliveries.  Corrected metric + trigcfg now prints its target
component, revealing NINE thresh=-1 Start triggers on the configure-ticker
sequence: ConfigureActivePress on Avionics + Myomers (backed real, -1) AND
SEVEN more subsystems still on the inert pad (0 = "button 0 held" -> ticker on).

Fix: a TYPED pad in the missing-attribute redirect -- ConfigureActivePress
resolves to a shared static int = -1 (the authored none-held idle) instead of
the zero pad; every other missing attr keeps the zero pad.  Covers all
configurable subsystems at once with no layout changes; self-clears per
subsystem as each gets a real driven member.

VERIFIED BY DELIVERY COUNT: ProgramButton01 deliveries = 0 (was 31-186/run);
7 attrs took the -1 pad; the rest of the soundscape intact (weapon cycles,
loops, translocate).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-16 08:55:17 -05:00
co-authored by Claude Opus 4.8
parent be626c71ce
commit b8908b965e
2 changed files with 15 additions and 3 deletions
+14 -2
View File
@@ -118,10 +118,22 @@ AttributeWatcher::AttributeWatcher(
if (attributePointer == NULL)
{
static char s_missingAttrPad[64] = {0};
// TYPED pad: ConfigureActivePress is the held-configure-button INDEX whose
// authored idle is -1 (none) -- NINE audio triggers gate the configure-mode
// ticker on it with threshold -1 across the configurable subsystems. The
// zero pad read as "button 0 held" and started the ticker at load (the
// eternal 2.7/s chirp). Redirect this attribute to a -1 pad; others keep 0.
static int s_configureIdlePad = -1;
CString configure_name("ConfigureActivePress");
if (attribute_name == configure_name)
attributePointer = &s_configureIdlePad;
else
attributePointer = s_missingAttrPad;
if (getenv("BT_AUDIO_LOG"))
DEBUG_STREAM << "[attrnull] " << subsystem_name << "." << attribute_name
<< " not reconstructed -> inert pad\n" << std::flush;
attributePointer = s_missingAttrPad;
<< " not reconstructed -> "
<< (attributePointer == (void*)&s_configureIdlePad ? "-1 pad" : "inert pad")
<< "\n" << std::flush;
}
Check_Pointer(attributePointer);