type speakermap [display="Speaker Map"] { i32 name_ptr [ui, readonly, display="Name Ptr"]; u8 is_default [ui, readonly, display="Is Default"]; skip(3); // padding i32 channel_maps_ptr [ui, readonly, display="Channel Maps Ptr"]; // Parse inline name if (name_ptr == -1) { name = cstring() [ui, readonly, display="Name"]; _name = name; } // Channel maps (2 entries of SpeakerChannelMap, each 16 bytes) if (channel_maps_ptr == -1) { channel_maps = read(32) [ui, readonly, display="Channel Maps"]; } }