Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7fd3d64 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: dice: add proc node for stream formation



Products with DICE interface in market can support variable stream
formats for three levels of sampling transmission frequencies. To
record these formats, a proxy structure got several fields in former
commit.

This commit adds a proc node to output the stream formats for debugging
purpose.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 37149d66
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -243,6 +243,40 @@ static void dice_proc_read(struct snd_info_entry *entry,
	}
}

static void dice_proc_read_formation(struct snd_info_entry *entry,
				     struct snd_info_buffer *buffer)
{
	static const char *const rate_labels[] = {
		[SND_DICE_RATE_MODE_LOW]	= "low",
		[SND_DICE_RATE_MODE_MIDDLE]	= "middle",
		[SND_DICE_RATE_MODE_HIGH]	= "high",
	};
	struct snd_dice *dice = entry->private_data;
	int i, j;

	snd_iprintf(buffer, "Output stream from unit:\n");
	for (i = 0; i < SND_DICE_RATE_MODE_COUNT; ++i)
		snd_iprintf(buffer, "\t%s", rate_labels[i]);
	snd_iprintf(buffer, "\tMIDI\n");
	for (i = 0; i < MAX_STREAMS; ++i) {
		snd_iprintf(buffer, "Tx %u:", i);
		for (j = 0; j < SND_DICE_RATE_MODE_COUNT; ++j)
			snd_iprintf(buffer, "\t%u", dice->tx_pcm_chs[i][j]);
		snd_iprintf(buffer, "\t%u\n", dice->tx_midi_ports[i]);
	}

	snd_iprintf(buffer, "Input stream to unit:\n");
	for (i = 0; i < SND_DICE_RATE_MODE_COUNT; ++i)
		snd_iprintf(buffer, "\t%s", rate_labels[i]);
	snd_iprintf(buffer, "\n");
	for (i = 0; i < MAX_STREAMS; ++i) {
		snd_iprintf(buffer, "Rx %u:", i);
		for (j = 0; j < SND_DICE_RATE_MODE_COUNT; ++j)
			snd_iprintf(buffer, "\t%u", dice->rx_pcm_chs[i][j]);
		snd_iprintf(buffer, "\t%u\n", dice->rx_midi_ports[i]);
	}
}

static void add_node(struct snd_dice *dice, struct snd_info_entry *root,
		     const char *name,
		     void (*op)(struct snd_info_entry *entry,
@@ -278,4 +312,5 @@ void snd_dice_create_proc(struct snd_dice *dice)
	}

	add_node(dice, root, "dice", dice_proc_read);
	add_node(dice, root, "formation", dice_proc_read_formation);
}