Fix kwargs, and modernize mixertest.py a bit

Preliminary error handling for dB volume settings
This commit is contained in:
Lars Immisch
2017-11-06 23:32:24 +01:00
parent c2cfe0211b
commit ce84e69cc1
2 changed files with 19 additions and 9 deletions

View File

@@ -1610,7 +1610,7 @@ alsamixer_getvolume(alsamixer_t *self, PyObject *args, PyObject *kw)
PyObject *result;
PyObject *item;
static char *kwlist[] = { "channel", "direction", "unit", NULL };
static char *kwlist[] = { "direction", "unit", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kw, "|Oi:getvolume", kwlist, &dirobj, &unit))
return NULL;
@@ -1646,7 +1646,13 @@ alsamixer_getvolume(alsamixer_t *self, PyObject *args, PyObject *kw)
ival));
}
else {
snd_mixer_selem_get_playback_dB(elem, channel, &ival);
int rc = snd_mixer_selem_get_playback_dB(elem, channel, &ival);
if (rc < 0) {
PyErr_Format(ALSAAudioError,
"snd_mixer_selem_get_playback_dB failed: %d",
rc);
return NULL;
}
item = PyFloat_FromDouble(ival / 100.0);
}
PyList_Append(result, item);

View File

@@ -46,13 +46,17 @@ def show_mixer(name, kwargs):
print("Capabilities: %s %s" % (' '.join(mixer.volumecap()),
' '.join(mixer.switchcap())))
volumes = mixer.getvolume()
for i in range(len(volumes)):
print("Channel %i volume: %i%%" % (i,volumes[i]))
for i, v in enumerate(volumes):
print("Channel %i volume: %.02f%%" % (i, v))
volumes = mixer.getvolume(unit=alsaaudio.dB)
for i, v in enumerate(volumes):
print("Channel %i volume: %.02fdB" % (i, v))
try:
mutes = mixer.getmute()
for i in range(len(mutes)):
if mutes[i]:
for i, m in enumerate(mutes):
if m:
print("Channel %i is muted" % i)
except alsaaudio.ALSAAudioError:
# May not support muting
@@ -60,8 +64,8 @@ def show_mixer(name, kwargs):
try:
recs = mixer.getrec()
for i in range(len(recs)):
if recs[i]:
for i, r in enumerate(recs):
if r:
print("Channel %i is recording" % i)
except alsaaudio.ALSAAudioError:
# May not support recording