···152152 int hdmi_period_pos; // samples written so far
153153 int hdmi_period_size; // target period size in frames
154154155155+ // Recording tap: if set, called after each mixed period with final int16 PCM
156156+ void (*rec_callback)(const int16_t *pcm, int frames, void *userdata);
157157+ void *rec_userdata;
158158+155159 // Diagnostic info (exposed to JS via system.hw)
156160 char audio_device[32]; // ALSA device name that opened successfully
157161 char audio_status[64]; // human-readable status ("ok", "no card", etc.)