Skip to content

Commit

Permalink
seq: Fix wrong FB direction at snd_seq_create_ump_block()
Browse files Browse the repository at this point in the history
snd_seq_create_ump_block() receives a snd_ump_block_info_t data at the
creation of a FB and updates its associated sequencer port, but it
handled the port direction incorrectly.  The UMP / port direction
means the connectivity, but the current code translated other way
round.  The correct translation should be that input = receiver, i.e.
a writable port for applications, and output = source, a readable port
for applications.

This patch corrects the translation, and add more comments to the
direction definition.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
tiwai committed Jul 9, 2024
1 parent 24c7f42 commit 48101de
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
4 changes: 2 additions & 2 deletions include/seq.h
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,8 @@ typedef struct _snd_seq_port_info snd_seq_port_info_t;

/** port direction */
#define SND_SEQ_PORT_DIR_UNKNOWN 0 /**< Unknown */
#define SND_SEQ_PORT_DIR_INPUT 1 /**< Input only */
#define SND_SEQ_PORT_DIR_OUTPUT 2 /**< Output only */
#define SND_SEQ_PORT_DIR_INPUT 1 /**< Input only; sink, receiver */
#define SND_SEQ_PORT_DIR_OUTPUT 2 /**< Output only; source, transmitter */
#define SND_SEQ_PORT_DIR_BIDIRECTION 3 /**< Input/output bidirectional */

/* port type */
Expand Down
12 changes: 6 additions & 6 deletions src/seq/seqmid.c
Original file line number Diff line number Diff line change
Expand Up @@ -645,16 +645,16 @@ static void update_group_ports(snd_seq_t *seq, snd_ump_endpoint_info_t *ep)
i >= bp->first_group + bp->num_groups)
continue;
switch (bp->direction) {
case SNDRV_UMP_DIR_INPUT:
caps |= SNDRV_SEQ_PORT_CAP_READ |
SNDRV_SEQ_PORT_CAP_SYNC_READ |
SNDRV_SEQ_PORT_CAP_SUBS_READ;
break;
case SNDRV_UMP_DIR_OUTPUT:
case SNDRV_UMP_DIR_INPUT: /* sink, receiver */
caps |= SNDRV_SEQ_PORT_CAP_WRITE |
SNDRV_SEQ_PORT_CAP_SYNC_WRITE |
SNDRV_SEQ_PORT_CAP_SUBS_WRITE;
break;
case SNDRV_UMP_DIR_OUTPUT: /* source, transmitter */
caps |= SNDRV_SEQ_PORT_CAP_READ |
SNDRV_SEQ_PORT_CAP_SYNC_READ |
SNDRV_SEQ_PORT_CAP_SUBS_READ;
break;
case SNDRV_UMP_DIR_BIDIRECTION:
caps |= SNDRV_SEQ_PORT_CAP_READ |
SNDRV_SEQ_PORT_CAP_SYNC_READ |
Expand Down

0 comments on commit 48101de

Please sign in to comment.