bluez5: set BAP Locations/Context endpoint properties

BlueZ now requires endpoints to set Locations/Context, so set them to
some sensible default values. These could in principle be made
configurable later.
This commit is contained in:
Pauli Virtanen 2023-10-21 13:36:10 +03:00
parent 3eed0fbe9b
commit 528c7c0f22
3 changed files with 96 additions and 60 deletions

View file

@ -53,34 +53,34 @@ static const struct {
uint32_t bit;
enum spa_audio_channel channel;
} channel_bits[] = {
{ LC3_CONFIG_CHNL_FL, SPA_AUDIO_CHANNEL_FL },
{ LC3_CONFIG_CHNL_FR, SPA_AUDIO_CHANNEL_FR },
{ LC3_CONFIG_CHNL_FC, SPA_AUDIO_CHANNEL_FC },
{ LC3_CONFIG_CHNL_LFE, SPA_AUDIO_CHANNEL_LFE },
{ LC3_CONFIG_CHNL_BL, SPA_AUDIO_CHANNEL_RL },
{ LC3_CONFIG_CHNL_BR, SPA_AUDIO_CHANNEL_RR },
{ LC3_CONFIG_CHNL_FLC, SPA_AUDIO_CHANNEL_FLC },
{ LC3_CONFIG_CHNL_FRC, SPA_AUDIO_CHANNEL_FRC },
{ LC3_CONFIG_CHNL_BC, SPA_AUDIO_CHANNEL_BC },
{ LC3_CONFIG_CHNL_LFE2, SPA_AUDIO_CHANNEL_LFE2 },
{ LC3_CONFIG_CHNL_SL, SPA_AUDIO_CHANNEL_SL },
{ LC3_CONFIG_CHNL_SR, SPA_AUDIO_CHANNEL_SR },
{ LC3_CONFIG_CHNL_TFL, SPA_AUDIO_CHANNEL_TFL },
{ LC3_CONFIG_CHNL_TFR, SPA_AUDIO_CHANNEL_TFR },
{ LC3_CONFIG_CHNL_TFC, SPA_AUDIO_CHANNEL_TFC },
{ LC3_CONFIG_CHNL_TC, SPA_AUDIO_CHANNEL_TC },
{ LC3_CONFIG_CHNL_TBL, SPA_AUDIO_CHANNEL_TRL },
{ LC3_CONFIG_CHNL_TBR, SPA_AUDIO_CHANNEL_TRR },
{ LC3_CONFIG_CHNL_TSL, SPA_AUDIO_CHANNEL_TSL },
{ LC3_CONFIG_CHNL_TSR, SPA_AUDIO_CHANNEL_TSR },
{ LC3_CONFIG_CHNL_TBC, SPA_AUDIO_CHANNEL_TRC },
{ LC3_CONFIG_CHNL_BFC, SPA_AUDIO_CHANNEL_BC },
{ LC3_CONFIG_CHNL_BFL, SPA_AUDIO_CHANNEL_BLC },
{ LC3_CONFIG_CHNL_BFR, SPA_AUDIO_CHANNEL_BRC },
{ LC3_CONFIG_CHNL_FLW, SPA_AUDIO_CHANNEL_FLW },
{ LC3_CONFIG_CHNL_FRW, SPA_AUDIO_CHANNEL_FRW },
{ LC3_CONFIG_CHNL_LS, SPA_AUDIO_CHANNEL_SL }, /* is it the right mapping? */
{ LC3_CONFIG_CHNL_RS, SPA_AUDIO_CHANNEL_SR }, /* is it the right mapping? */
{ BAP_CHANNEL_FL, SPA_AUDIO_CHANNEL_FL },
{ BAP_CHANNEL_FR, SPA_AUDIO_CHANNEL_FR },
{ BAP_CHANNEL_FC, SPA_AUDIO_CHANNEL_FC },
{ BAP_CHANNEL_LFE, SPA_AUDIO_CHANNEL_LFE },
{ BAP_CHANNEL_BL, SPA_AUDIO_CHANNEL_RL },
{ BAP_CHANNEL_BR, SPA_AUDIO_CHANNEL_RR },
{ BAP_CHANNEL_FLC, SPA_AUDIO_CHANNEL_FLC },
{ BAP_CHANNEL_FRC, SPA_AUDIO_CHANNEL_FRC },
{ BAP_CHANNEL_BC, SPA_AUDIO_CHANNEL_BC },
{ BAP_CHANNEL_LFE2, SPA_AUDIO_CHANNEL_LFE2 },
{ BAP_CHANNEL_SL, SPA_AUDIO_CHANNEL_SL },
{ BAP_CHANNEL_SR, SPA_AUDIO_CHANNEL_SR },
{ BAP_CHANNEL_TFL, SPA_AUDIO_CHANNEL_TFL },
{ BAP_CHANNEL_TFR, SPA_AUDIO_CHANNEL_TFR },
{ BAP_CHANNEL_TFC, SPA_AUDIO_CHANNEL_TFC },
{ BAP_CHANNEL_TC, SPA_AUDIO_CHANNEL_TC },
{ BAP_CHANNEL_TBL, SPA_AUDIO_CHANNEL_TRL },
{ BAP_CHANNEL_TBR, SPA_AUDIO_CHANNEL_TRR },
{ BAP_CHANNEL_TSL, SPA_AUDIO_CHANNEL_TSL },
{ BAP_CHANNEL_TSR, SPA_AUDIO_CHANNEL_TSR },
{ BAP_CHANNEL_TBC, SPA_AUDIO_CHANNEL_TRC },
{ BAP_CHANNEL_BFC, SPA_AUDIO_CHANNEL_BC },
{ BAP_CHANNEL_BFL, SPA_AUDIO_CHANNEL_BLC },
{ BAP_CHANNEL_BFR, SPA_AUDIO_CHANNEL_BRC },
{ BAP_CHANNEL_FLW, SPA_AUDIO_CHANNEL_FLW },
{ BAP_CHANNEL_FRW, SPA_AUDIO_CHANNEL_FRW },
{ BAP_CHANNEL_LS, SPA_AUDIO_CHANNEL_SL }, /* is it the right mapping? */
{ BAP_CHANNEL_RS, SPA_AUDIO_CHANNEL_SR }, /* is it the right mapping? */
};
static int write_ltv(uint8_t *dest, uint8_t type, void* value, size_t len)