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