spa: add 64 AUX channels

Make 64 AUX channels instead of using the CUSTOM range for them.
This commit is contained in:
Wim Taymans 2021-07-21 11:25:43 +02:00
parent d03f29eb66
commit 1ad54e8a26
7 changed files with 211 additions and 86 deletions

View file

@ -54,38 +54,38 @@ static const uint32_t channel_table[PA_CHANNEL_POSITION_MAX] = {
[PA_CHANNEL_POSITION_SIDE_LEFT] = ACP_CHANNEL_SL,
[PA_CHANNEL_POSITION_SIDE_RIGHT] = ACP_CHANNEL_SR,
[PA_CHANNEL_POSITION_AUX0] = ACP_CHANNEL_CUSTOM_START + 1,
[PA_CHANNEL_POSITION_AUX1] = ACP_CHANNEL_CUSTOM_START + 2,
[PA_CHANNEL_POSITION_AUX2] = ACP_CHANNEL_CUSTOM_START + 3,
[PA_CHANNEL_POSITION_AUX3] = ACP_CHANNEL_CUSTOM_START + 4,
[PA_CHANNEL_POSITION_AUX4] = ACP_CHANNEL_CUSTOM_START + 5,
[PA_CHANNEL_POSITION_AUX5] = ACP_CHANNEL_CUSTOM_START + 6,
[PA_CHANNEL_POSITION_AUX6] = ACP_CHANNEL_CUSTOM_START + 7,
[PA_CHANNEL_POSITION_AUX7] = ACP_CHANNEL_CUSTOM_START + 8,
[PA_CHANNEL_POSITION_AUX8] = ACP_CHANNEL_CUSTOM_START + 9,
[PA_CHANNEL_POSITION_AUX9] = ACP_CHANNEL_CUSTOM_START + 10,
[PA_CHANNEL_POSITION_AUX10] = ACP_CHANNEL_CUSTOM_START + 11,
[PA_CHANNEL_POSITION_AUX11] = ACP_CHANNEL_CUSTOM_START + 12,
[PA_CHANNEL_POSITION_AUX12] = ACP_CHANNEL_CUSTOM_START + 13,
[PA_CHANNEL_POSITION_AUX13] = ACP_CHANNEL_CUSTOM_START + 14,
[PA_CHANNEL_POSITION_AUX14] = ACP_CHANNEL_CUSTOM_START + 15,
[PA_CHANNEL_POSITION_AUX15] = ACP_CHANNEL_CUSTOM_START + 16,
[PA_CHANNEL_POSITION_AUX16] = ACP_CHANNEL_CUSTOM_START + 17,
[PA_CHANNEL_POSITION_AUX17] = ACP_CHANNEL_CUSTOM_START + 18,
[PA_CHANNEL_POSITION_AUX18] = ACP_CHANNEL_CUSTOM_START + 19,
[PA_CHANNEL_POSITION_AUX19] = ACP_CHANNEL_CUSTOM_START + 20,
[PA_CHANNEL_POSITION_AUX20] = ACP_CHANNEL_CUSTOM_START + 21,
[PA_CHANNEL_POSITION_AUX21] = ACP_CHANNEL_CUSTOM_START + 22,
[PA_CHANNEL_POSITION_AUX22] = ACP_CHANNEL_CUSTOM_START + 23,
[PA_CHANNEL_POSITION_AUX23] = ACP_CHANNEL_CUSTOM_START + 24,
[PA_CHANNEL_POSITION_AUX24] = ACP_CHANNEL_CUSTOM_START + 25,
[PA_CHANNEL_POSITION_AUX25] = ACP_CHANNEL_CUSTOM_START + 26,
[PA_CHANNEL_POSITION_AUX26] = ACP_CHANNEL_CUSTOM_START + 27,
[PA_CHANNEL_POSITION_AUX27] = ACP_CHANNEL_CUSTOM_START + 28,
[PA_CHANNEL_POSITION_AUX28] = ACP_CHANNEL_CUSTOM_START + 29,
[PA_CHANNEL_POSITION_AUX29] = ACP_CHANNEL_CUSTOM_START + 30,
[PA_CHANNEL_POSITION_AUX30] = ACP_CHANNEL_CUSTOM_START + 31,
[PA_CHANNEL_POSITION_AUX31] = ACP_CHANNEL_CUSTOM_START + 32,
[PA_CHANNEL_POSITION_AUX0] = ACP_CHANNEL_START_Aux + 0,
[PA_CHANNEL_POSITION_AUX1] = ACP_CHANNEL_START_Aux + 1,
[PA_CHANNEL_POSITION_AUX2] = ACP_CHANNEL_START_Aux + 2,
[PA_CHANNEL_POSITION_AUX3] = ACP_CHANNEL_START_Aux + 3,
[PA_CHANNEL_POSITION_AUX4] = ACP_CHANNEL_START_Aux + 4,
[PA_CHANNEL_POSITION_AUX5] = ACP_CHANNEL_START_Aux + 5,
[PA_CHANNEL_POSITION_AUX6] = ACP_CHANNEL_START_Aux + 6,
[PA_CHANNEL_POSITION_AUX7] = ACP_CHANNEL_START_Aux + 7,
[PA_CHANNEL_POSITION_AUX8] = ACP_CHANNEL_START_Aux + 8,
[PA_CHANNEL_POSITION_AUX9] = ACP_CHANNEL_START_Aux + 9,
[PA_CHANNEL_POSITION_AUX10] = ACP_CHANNEL_START_Aux + 10,
[PA_CHANNEL_POSITION_AUX11] = ACP_CHANNEL_START_Aux + 11,
[PA_CHANNEL_POSITION_AUX12] = ACP_CHANNEL_START_Aux + 12,
[PA_CHANNEL_POSITION_AUX13] = ACP_CHANNEL_START_Aux + 12,
[PA_CHANNEL_POSITION_AUX14] = ACP_CHANNEL_START_Aux + 14,
[PA_CHANNEL_POSITION_AUX15] = ACP_CHANNEL_START_Aux + 15,
[PA_CHANNEL_POSITION_AUX16] = ACP_CHANNEL_START_Aux + 16,
[PA_CHANNEL_POSITION_AUX17] = ACP_CHANNEL_START_Aux + 17,
[PA_CHANNEL_POSITION_AUX18] = ACP_CHANNEL_START_Aux + 18,
[PA_CHANNEL_POSITION_AUX19] = ACP_CHANNEL_START_Aux + 19,
[PA_CHANNEL_POSITION_AUX20] = ACP_CHANNEL_START_Aux + 20,
[PA_CHANNEL_POSITION_AUX21] = ACP_CHANNEL_START_Aux + 21,
[PA_CHANNEL_POSITION_AUX22] = ACP_CHANNEL_START_Aux + 22,
[PA_CHANNEL_POSITION_AUX23] = ACP_CHANNEL_START_Aux + 23,
[PA_CHANNEL_POSITION_AUX24] = ACP_CHANNEL_START_Aux + 24,
[PA_CHANNEL_POSITION_AUX25] = ACP_CHANNEL_START_Aux + 25,
[PA_CHANNEL_POSITION_AUX26] = ACP_CHANNEL_START_Aux + 26,
[PA_CHANNEL_POSITION_AUX27] = ACP_CHANNEL_START_Aux + 27,
[PA_CHANNEL_POSITION_AUX28] = ACP_CHANNEL_START_Aux + 28,
[PA_CHANNEL_POSITION_AUX29] = ACP_CHANNEL_START_Aux + 29,
[PA_CHANNEL_POSITION_AUX30] = ACP_CHANNEL_START_Aux + 30,
[PA_CHANNEL_POSITION_AUX31] = ACP_CHANNEL_START_Aux + 31,
[PA_CHANNEL_POSITION_TOP_CENTER] = ACP_CHANNEL_TC,
@ -150,8 +150,8 @@ static inline uint32_t channel_pa2acp(pa_channel_position_t channel)
char *acp_channel_str(char *buf, size_t len, enum acp_channel ch)
{
if (ch >= ACP_CHANNEL_CUSTOM_START) {
snprintf(buf, len, "AUX%d", ch - ACP_CHANNEL_CUSTOM_START);
if (ch >= ACP_CHANNEL_START_Aux && ch <= ACP_CHANNEL_LAST_Aux) {
snprintf(buf, len, "AUX%d", ch - ACP_CHANNEL_START_Aux);
} else if (ch >= ACP_CHANNEL_UNKNOWN && ch <= ACP_CHANNEL_BRC) {
snprintf(buf, len, "%s", channel_names[ch]);
} else {

View file

@ -98,7 +98,11 @@ enum acp_channel {
ACP_CHANNEL_BC, /**< bottom center */
ACP_CHANNEL_BLC, /**< bottom left center */
ACP_CHANNEL_BRC, /**< bottom right center */
ACP_CHANNEL_CUSTOM_START = 0x10000,
ACP_CHANNEL_START_Aux = 0x1000,
ACP_CHANNEL_LAST_Aux = 0x1fff,
ACP_CHANNEL_START_Custom = 0x10000,
};
char *acp_channel_str(char *buf, size_t len, enum acp_channel ch);