From 53fb81e39b4a095aa66a493a3e9ff81806106ad7 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 24 Feb 2003 13:51:15 +0000 Subject: [PATCH] Here's a new batch of Debian patches, all from David B. Harris. - add a "Press Escape to quit" string to alsamixer's title, some uses couldn't figure out how to exit the program (Debian Bug#178393). - hide the cursor, which was missplaced and wasn't goodlooking anyway (Debian Bug#81169). - remove trailing spaces from amixer's output (Debian Bug#177518). - don't ignore second -l/-L flags in aplay (Debian Bug#177521). --- alsamixer/alsamixer.c | 3 +- amixer/amixer.c | 72 +++++++++++++++++++++---------------------- aplay/aplay.c | 18 ++++++++--- 3 files changed, 52 insertions(+), 41 deletions(-) diff --git a/alsamixer/alsamixer.c b/alsamixer/alsamixer.c index 7ea3238..e8b0095 100644 --- a/alsamixer/alsamixer.c +++ b/alsamixer/alsamixer.c @@ -1029,7 +1029,7 @@ mixer_draw_frame (void) /* program title */ - sprintf (string, "%s %s", PRGNAME_UPPER, VERSION); + sprintf (string, "%s %s (Press Escape to quit)", PRGNAME_UPPER, VERSION); max_len = strlen (string); if (mixer_max_x >= max_len + 4) { @@ -1567,6 +1567,7 @@ mixer_init_window (void) /* initialize ncurses */ mixer_window = initscr (); + curs_set (0); /* hide the cursor */ mixer_no_lrcorner = tigetflag ("xenl") != 1 && tigetflag ("am") != 1; diff --git a/amixer/amixer.c b/amixer/amixer.c index 46c3d43..0fe6d88 100644 --- a/amixer/amixer.c +++ b/amixer/amixer.c @@ -561,17 +561,17 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char snd_mixer_selem_get_capture_group(elem)); if (snd_mixer_selem_has_playback_volume(elem) || snd_mixer_selem_has_playback_switch(elem)) { - printf("%sPlayback channels: ", space); + printf("%sPlayback channels:", space); if (snd_mixer_selem_is_playback_mono(elem)) { - printf("Mono"); + printf(" Mono"); } else { int first = 1; for (chn = 0; chn <= SND_MIXER_SCHN_LAST; chn++){ if (!snd_mixer_selem_has_playback_channel(elem, chn)) continue; if (!first) - printf("- "); - printf("%s ", snd_mixer_selem_channel_name(chn)); + printf(" -"); + printf(" %s", snd_mixer_selem_channel_name(chn)); first = 0; } } @@ -579,17 +579,17 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char } if (snd_mixer_selem_has_capture_volume(elem) || snd_mixer_selem_has_capture_switch(elem)) { - printf("%sCapture channels: ", space); + printf("%sCapture channels:", space); if (snd_mixer_selem_is_capture_mono(elem)) { - printf("Mono"); + printf(" Mono"); } else { int first = 1; for (chn = 0; chn <= SND_MIXER_SCHN_LAST; chn++){ if (!snd_mixer_selem_has_capture_channel(elem, chn)) continue; if (!first) - printf("- "); - printf("%s ", snd_mixer_selem_channel_name(chn)); + printf(" -"); + printf(" %s", snd_mixer_selem_channel_name(chn)); first = 0; } } @@ -597,19 +597,19 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char } if (snd_mixer_selem_has_playback_volume(elem) || snd_mixer_selem_has_capture_volume(elem)) { - printf("%sLimits: ", space); + printf("%sLimits:", space); if (snd_mixer_selem_has_common_volume(elem)) { snd_mixer_selem_get_playback_volume_range(elem, &pmin, &pmax); snd_mixer_selem_get_capture_volume_range(elem, &cmin, &cmax); - printf("%li - %li", pmin, pmax); + printf(" %li - %li", pmin, pmax); } else { if (snd_mixer_selem_has_playback_volume(elem)) { snd_mixer_selem_get_playback_volume_range(elem, &pmin, &pmax); - printf("Playback %li - %li ", pmin, pmax); + printf(" Playback %li - %li", pmin, pmax); } if (snd_mixer_selem_has_capture_volume(elem)) { snd_mixer_selem_get_capture_volume_range(elem, &cmin, &cmax); - printf("Capture %li - %li", cmin, cmax); + printf(" Capture %li - %li", cmin, cmax); } } printf("\n"); @@ -631,61 +631,61 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char #endif if (pmono || cmono) { if (!mono_ok) { - printf("%s%s: ", space, "Mono"); + printf("%s%s:", space, "Mono"); mono_ok = 1; } if (snd_mixer_selem_has_common_volume(elem)) { snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &pvol); - printf("%s ", get_percent(pvol, pmin, pmax)); + printf(" %s", get_percent(pvol, pmin, pmax)); } if (snd_mixer_selem_has_common_switch(elem)) { snd_mixer_selem_get_playback_switch(elem, SND_MIXER_SCHN_MONO, &psw); - printf("[%s] ", psw ? "on" : "off"); + printf(" [%s]", psw ? "on" : "off"); } } if (pmono && snd_mixer_selem_has_playback_channel(elem, SND_MIXER_SCHN_MONO)) { int title = 0; if (!mono_ok) { - printf("%s%s: ", space, "Mono"); + printf("%s%s:", space, "Mono"); mono_ok = 1; } if (!snd_mixer_selem_has_common_volume(elem)) { if (snd_mixer_selem_has_playback_volume(elem)) { - printf("Playback "); + printf(" Playback"); title = 1; snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &pvol); - printf("%s ", get_percent(pvol, pmin, pmax)); + printf(" %s", get_percent(pvol, pmin, pmax)); } } if (!snd_mixer_selem_has_common_switch(elem)) { if (snd_mixer_selem_has_playback_switch(elem)) { if (!title) - printf("Playback "); + printf(" Playback"); snd_mixer_selem_get_playback_switch(elem, SND_MIXER_SCHN_MONO, &psw); - printf("[%s] ", psw ? "on" : "off"); + printf(" [%s]", psw ? "on" : "off"); } } } if (cmono && snd_mixer_selem_has_capture_channel(elem, SND_MIXER_SCHN_MONO)) { int title = 0; if (!mono_ok) { - printf("%s%s: ", space, "Mono"); + printf("%s%s:", space, "Mono"); mono_ok = 1; } if (!snd_mixer_selem_has_common_volume(elem)) { if (snd_mixer_selem_has_capture_volume(elem)) { - printf("Capture "); + printf(" Capture"); title = 1; snd_mixer_selem_get_capture_volume(elem, SND_MIXER_SCHN_MONO, &cvol); - printf("%s ", get_percent(cvol, cmin, cmax)); + printf(" %s", get_percent(cvol, cmin, cmax)); } } if (!snd_mixer_selem_has_common_switch(elem)) { if (snd_mixer_selem_has_capture_switch(elem)) { if (!title) - printf("Capture "); + printf(" Capture"); snd_mixer_selem_get_capture_switch(elem, SND_MIXER_SCHN_MONO, &csw); - printf("[%s] ", csw ? "on" : "off"); + printf(" [%s]", csw ? "on" : "off"); } } } @@ -696,31 +696,31 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char if ((pmono || !snd_mixer_selem_has_playback_channel(elem, chn)) && (cmono || !snd_mixer_selem_has_capture_channel(elem, chn))) continue; - printf("%s%s: ", space, snd_mixer_selem_channel_name(chn)); + printf("%s%s:", space, snd_mixer_selem_channel_name(chn)); if (!pmono && !cmono && snd_mixer_selem_has_common_volume(elem)) { snd_mixer_selem_get_playback_volume(elem, chn, &pvol); - printf("%s ", get_percent(pvol, pmin, pmax)); + printf(" %s", get_percent(pvol, pmin, pmax)); } if (!pmono && !cmono && snd_mixer_selem_has_common_switch(elem)) { snd_mixer_selem_get_playback_switch(elem, chn, &psw); - printf("[%s] ", psw ? "on" : "off"); + printf(" [%s]", psw ? "on" : "off"); } if (!pmono && snd_mixer_selem_has_playback_channel(elem, chn)) { int title = 0; if (!snd_mixer_selem_has_common_volume(elem)) { if (snd_mixer_selem_has_playback_volume(elem)) { - printf("Playback "); + printf(" Playback"); title = 1; snd_mixer_selem_get_playback_volume(elem, chn, &pvol); - printf("%s ", get_percent(pvol, pmin, pmax)); + printf(" %s", get_percent(pvol, pmin, pmax)); } } if (!snd_mixer_selem_has_common_switch(elem)) { if (snd_mixer_selem_has_playback_switch(elem)) { if (!title) - printf("Playback "); + printf(" Playback"); snd_mixer_selem_get_playback_switch(elem, chn, &psw); - printf("[%s] ", psw ? "on" : "off"); + printf(" [%s]", psw ? "on" : "off"); } } } @@ -728,18 +728,18 @@ static int show_selem(snd_mixer_t *handle, snd_mixer_selem_id_t *id, const char int title = 0; if (!snd_mixer_selem_has_common_volume(elem)) { if (snd_mixer_selem_has_capture_volume(elem)) { - printf("Capture "); + printf(" Capture"); title = 1; snd_mixer_selem_get_capture_volume(elem, chn, &cvol); - printf("%s ", get_percent(cvol, cmin, cmax)); + printf(" %s", get_percent(cvol, cmin, cmax)); } } if (!snd_mixer_selem_has_common_switch(elem)) { if (snd_mixer_selem_has_capture_switch(elem)) { if (!title) - printf("Capture "); + printf(" Capture"); snd_mixer_selem_get_capture_switch(elem, chn, &csw); - printf("[%s] ", csw ? "on" : "off"); + printf(" [%s]", csw ? "on" : "off"); } } } diff --git a/aplay/aplay.c b/aplay/aplay.c index 941fa9a..2dd2759 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -320,6 +320,7 @@ int main(int argc, char *argv[]) }; char *pcm_name = "default"; int tmp, err, c; + int do_device_list = 0, do_pcm_list = 0; snd_pcm_info_t *info; err = snd_output_stdio_attach(&log, stderr, 0); @@ -354,11 +355,11 @@ int main(int argc, char *argv[]) version(); return 0; case 'l': - device_list(); - return 0; + do_device_list = 1; + break; case 'L': - pcm_list(); - return 0; + do_pcm_list = 1; + break; case 'D': pcm_name = optarg; break; @@ -464,6 +465,15 @@ int main(int argc, char *argv[]) } } + if (do_device_list) { + if (do_pcm_list) pcm_list(); + device_list(); + return 0; + } else if (do_pcm_list) { + pcm_list(); + return 0; + } + err = snd_pcm_open(&handle, pcm_name, stream, open_mode); if (err < 0) { error("audio open error: %s", snd_strerror(err));