153a5a1b3Sopenharmony_ci#pragma once 253a5a1b3Sopenharmony_ci 353a5a1b3Sopenharmony_ci/* 453a5a1b3Sopenharmony_ci * Parameters for use with mSBC over eSCO link 553a5a1b3Sopenharmony_ci */ 653a5a1b3Sopenharmony_ci 753a5a1b3Sopenharmony_ci#define MSBC_H2_ID0 0x01 853a5a1b3Sopenharmony_ci#define MSBC_H2_ID1 0x08 953a5a1b3Sopenharmony_ci#define MSBC_FRAME_SIZE 57 1053a5a1b3Sopenharmony_ci 1153a5a1b3Sopenharmony_ci#define MSBC_SYNC_BYTE 0xad 1253a5a1b3Sopenharmony_ci 1353a5a1b3Sopenharmony_cistruct msbc_h2_id1_s { 1453a5a1b3Sopenharmony_ci uint8_t id1:4; 1553a5a1b3Sopenharmony_ci uint8_t sn0:2; 1653a5a1b3Sopenharmony_ci uint8_t sn1:2; 1753a5a1b3Sopenharmony_ci} __attribute__ ((packed)); 1853a5a1b3Sopenharmony_ci 1953a5a1b3Sopenharmony_ciunion msbc_h2_id1 { 2053a5a1b3Sopenharmony_ci struct msbc_h2_id1_s s; 2153a5a1b3Sopenharmony_ci uint8_t b; 2253a5a1b3Sopenharmony_ci}; 2353a5a1b3Sopenharmony_ci 2453a5a1b3Sopenharmony_cistruct msbc_h2_header { 2553a5a1b3Sopenharmony_ci uint8_t id0; 2653a5a1b3Sopenharmony_ci union msbc_h2_id1 id1; 2753a5a1b3Sopenharmony_ci} __attribute__ ((packed)); 2853a5a1b3Sopenharmony_ci 2953a5a1b3Sopenharmony_cistruct msbc_frame { 3053a5a1b3Sopenharmony_ci struct msbc_h2_header hdr; 3153a5a1b3Sopenharmony_ci uint8_t payload[MSBC_FRAME_SIZE]; 3253a5a1b3Sopenharmony_ci uint8_t padding; /* must be zero */ 3353a5a1b3Sopenharmony_ci} __attribute__ ((packed)); 3453a5a1b3Sopenharmony_ci 3553a5a1b3Sopenharmony_ci#define MSBC_PACKET_SIZE sizeof(struct msbc_frame) 36