mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
spa: add 64 AUX channels
Make 64 AUX channels instead of using the CUSTOM range for them.
This commit is contained in:
parent
d03f29eb66
commit
1ad54e8a26
7 changed files with 211 additions and 86 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -228,19 +228,13 @@ static int init_port(struct impl *this, enum spa_direction direction, uint32_t p
|
|||
uint32_t position)
|
||||
{
|
||||
struct port *port = GET_PORT(this, direction, port_id);
|
||||
const char *name;
|
||||
|
||||
port->direction = direction;
|
||||
port->id = port_id;
|
||||
|
||||
if (position < SPA_N_ELEMENTS(spa_type_audio_channel)) {
|
||||
snprintf(port->position, sizeof(port->position), "%s",
|
||||
spa_debug_type_short_name(spa_type_audio_channel[position].name));
|
||||
} else if (position >= SPA_AUDIO_CHANNEL_CUSTOM_START) {
|
||||
snprintf(port->position, sizeof(port->position), "AUX%d",
|
||||
position - SPA_AUDIO_CHANNEL_CUSTOM_START);
|
||||
} else {
|
||||
snprintf(port->position, sizeof(port->position), "UNK");
|
||||
}
|
||||
name = spa_debug_type_find_short_name(spa_type_audio_channel, position);
|
||||
snprintf(port->position, sizeof(port->position), "%s", name ? name : "UNK");
|
||||
|
||||
port->info_all = SPA_PORT_CHANGE_MASK_FLAGS |
|
||||
SPA_PORT_CHANGE_MASK_PROPS |
|
||||
|
|
|
|||
|
|
@ -168,19 +168,13 @@ static int init_port(struct impl *this, enum spa_direction direction,
|
|||
uint32_t port_id, uint32_t position)
|
||||
{
|
||||
struct port *port = GET_OUT_PORT(this, port_id);
|
||||
const char *name;
|
||||
|
||||
port->direction = direction;
|
||||
port->id = port_id;
|
||||
|
||||
if (position < SPA_N_ELEMENTS(spa_type_audio_channel)) {
|
||||
snprintf(port->position, sizeof(port->position), "%s",
|
||||
spa_debug_type_short_name(spa_type_audio_channel[position].name));
|
||||
} else if (position >= SPA_AUDIO_CHANNEL_CUSTOM_START) {
|
||||
snprintf(port->position, sizeof(port->position), "AUX%d",
|
||||
position - SPA_AUDIO_CHANNEL_CUSTOM_START);
|
||||
} else {
|
||||
snprintf(port->position, sizeof(port->position), "UNK");
|
||||
}
|
||||
name = spa_debug_type_find_short_name(spa_type_audio_channel, position);
|
||||
snprintf(port->position, sizeof(port->position), "%s", name ? name : "UNK");
|
||||
|
||||
port->info_all = SPA_PORT_CHANGE_MASK_FLAGS |
|
||||
SPA_PORT_CHANGE_MASK_PROPS |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue