introspect: Get formats for sinks

This gets the list of supported formats for a sink in
pa_context_get_sink_info*(). Also prints these in 'pactl list'.
This commit is contained in:
Arun Raghavan 2011-03-08 23:30:24 +05:30
parent dedbc942ab
commit 322980e2e3
5 changed files with 68 additions and 1 deletions

View file

@ -222,7 +222,8 @@ static void get_sink_info_callback(pa_context *c, const pa_sink_info *i, int is_
cvdb[PA_SW_CVOLUME_SNPRINT_DB_MAX],
v[PA_VOLUME_SNPRINT_MAX],
vdb[PA_SW_VOLUME_SNPRINT_DB_MAX],
cm[PA_CHANNEL_MAP_SNPRINT_MAX];
cm[PA_CHANNEL_MAP_SNPRINT_MAX],
f[PA_FORMAT_INFO_SNPRINT_MAX];
char *pl;
if (is_last < 0) {
@ -307,6 +308,14 @@ static void get_sink_info_callback(pa_context *c, const pa_sink_info *i, int is_
if (i->active_port)
printf(_("\tActive Port: %s\n"),
i->active_port->name);
if (i->formats) {
uint8_t j;
printf(_("\tFormats:\n"));
for (j = 0; j < i->n_formats; j++)
printf("\t\t%s\n", pa_format_info_snprint(f, sizeof(f), i->formats[j]));
}
}
static void get_source_info_callback(pa_context *c, const pa_source_info *i, int is_last, void *userdata) {