Audio: register Generator.GeneratorOn -> generatorOn (@0x1D4) (task #50)

The last cleanly-backed subsystem audio attr: GeneratorOn (AudioLogicalTrigger)
now resolves to the real generatorOn member instead of the inert pad.  Static for
now (init 1, no shutdown writer drives it to 0 yet), but bound correctly.

Remaining inert attrs (ReportLeak/ConfigureActivePress/MotionState/
SpeedOfTorsoHorizontal/TargetRangeExponent) have no modeled backing member in
their size-locked subsystem layouts -- they read the inert pad (silent, no crash)
until those members are reconstructed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-15 21:44:42 -05:00
co-authored by Claude Opus 4.8
parent 0e05a22a55
commit dcdd7dd0a7
2 changed files with 3 additions and 1 deletions
+2 -1
View File
@@ -886,7 +886,8 @@ const Generator::IndexEntry
Generator::AttributePointers[]=
{
ATTRIBUTE_ENTRY(Generator, OutputVoltage, outputVoltage), // @0x1DC
ATTRIBUTE_ENTRY(Generator, GeneratorState, stateAlarm) // @0x1FC (0x54 StateIndicator-compatible alarm; SetLevel fires audio)
ATTRIBUTE_ENTRY(Generator, GeneratorState, stateAlarm), // @0x1FC (0x54 StateIndicator-compatible alarm; SetLevel fires audio)
ATTRIBUTE_ENTRY(Generator, GeneratorOn, generatorOn) // @0x1D4 (AudioLogicalTrigger; init 1 -- static until a shutdown writer drives it to 0)
};
Generator::AttributeIndexSet&
+1
View File
@@ -343,6 +343,7 @@ class Generator;
enum {
OutputVoltageAttributeID = HeatSink::NextAttributeID,
GeneratorStateAttributeID, // audio binds an AudioStateWatcher -> stateAlarm (0x54 StateIndicator)
GeneratorOnAttributeID, // audio binds an AudioLogicalTrigger -> generatorOn (@0x1D4)
NextAttributeID
};
private: