[alsa-devel] Two patches for Python bindings
Takashi Iwai
tiwai at suse.de
Mon Mar 12 14:59:06 CET 2012
At Mon, 12 Mar 2012 14:16:31 +0100,
Arvin Schnell wrote:
>
> Hi,
>
> please integrate the two attached patches in ALSA. The first one
> fixes get_volume_array of the Python bindings for mono channels
> (also reported as bug 5546). The second just updates one of the
> pyalsa tests (apparently function names changed some time ago).
Thanks, applied both patches to git tree now.
Takashi
>
> Regards,
> Arvin
>
> --
> Arvin Schnell, <aschnell at suse.de>
> Senior Software Engineer, Research & Development
> SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg)
> Maxfeldstraße 5
> 90409 Nürnberg
> Germany
> [2 pyalsa-mixer.diff <text/x-patch; us-ascii (7bit)>]
> diff --git a/pyalsa/alsamixer.c b/pyalsa/alsamixer.c
> index d686f16..662a2a9 100644
> --- a/pyalsa/alsamixer.c
> +++ b/pyalsa/alsamixer.c
> @@ -627,7 +627,7 @@ pyalsamixerelement_getvolumearray(struct pyalsamixerelement *pyelem, PyObject *a
> return NULL;
> res = snd_mixer_selem_get_playback_volume(pyelem->elem, SND_MIXER_SCHN_MONO, &val);
> if (res >= 0)
> - PyTuple_SetItem(t, 0, PyInt_FromLong(val));
> + PyList_SetItem(t, 0, PyInt_FromLong(val));
> } else {
> t = PyList_New(SND_MIXER_SCHN_LAST+1);
> if (!t)
> @@ -658,7 +658,7 @@ pyalsamixerelement_getvolumearray(struct pyalsamixerelement *pyelem, PyObject *a
> return NULL;
> res = snd_mixer_selem_get_capture_volume(pyelem->elem, SND_MIXER_SCHN_MONO, &val);
> if (res >= 0)
> - PyTuple_SET_ITEM(t, 0, PyInt_FromLong(val));
> + PyList_SET_ITEM(t, 0, PyInt_FromLong(val));
> } else {
> t = PyList_New(SND_MIXER_SCHN_LAST+1);
> if (!t)
> [3 pyalsa-test.diff <text/x-patch; us-ascii (7bit)>]
> diff --git a/test/mixertest2.py b/test/mixertest2.py
> index 24e5605..6c2d026 100755
> --- a/test/mixertest2.py
> +++ b/test/mixertest2.py
> @@ -10,25 +10,25 @@ import select
> def parse_event_mask(events):
> if events == 0:
> return 'None'
> - if events == alsamixer.EventMaskRemove:
> + if events == alsamixer.event_mask_remove:
> return 'Removed'
> s = ''
> - for i in alsamixer.EventMask.keys():
> - if events & alsamixer.EventMask[i]:
> + for i in alsamixer.event_mask.keys():
> + if events & alsamixer.event_mask[i]:
> s += '%s ' % i
> return s[:-1]
>
> def event_callback(element, events):
>
> print 'CALLBACK (DEF)! [%s] %s:%i' % (parse_event_mask(events), element.name, element.index)
> - print ' ', element.getVolumeTuple(), element.getSwitchTuple()
> + print ' ', element.get_volume_tuple(), element.get_switch_tuple()
>
>
> class MyElementEvent:
>
> def callback(self, element, events):
> print 'CALLBACK (CLASS)! [%s] %s:%i' % (parse_event_mask(events), element.name, element.index)
> - print ' ', element.getVolumeTuple(), element.getSwitchTuple()
> + print ' ', element.get_volume_tuple(), element.get_switch_tuple()
>
>
> mixer = alsamixer.Mixer()
> @@ -36,13 +36,13 @@ mixer.attach()
> mixer.load()
>
> element1 = alsamixer.Element(mixer, "Front")
> -element1.setCallback(event_callback)
> +element1.set_callback(event_callback)
> element2 = alsamixer.Element(mixer, "PCM")
> -element2.setCallback(MyElementEvent())
> +element2.set_callback(MyElementEvent())
>
> poller = select.poll()
> -mixer.registerPoll(poller)
> +mixer.register_poll(poller)
> while True:
> poller.poll()
> print 'Poll OK!'
> - mixer.handleEvents()
> + mixer.handle_events()
> [4 <text/plain; us-ascii (7bit)>]
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
More information about the Alsa-devel
mailing list