Hi Jaroslav, On Sun, Dec 01, 2019 at 05:04:50PM +0900, Takashi Sakamoto wrote: > Since Audio Mini Conference 2018, I continued to work for alsa-gi[1] in > my local to integrate toward better I/O libraries. However I realized > that its basic design includes some disadvantages to produce useful APIs. > > I rethink the design and realize it better to wrap each of structures > in <sound/asound.h> simply. Then, I restart it as alsa-gobject[2]. > At present, master branch includes a library, `libalsactl0` for the > most of I/O features in ALSA control interface, which is compatible with > GObject mechanism and GObject introspection. > > Jaroslav, would you please delete the alsa-gi repository and fork > the master branch from my alsa-gobject repository, then apply enough > configurations to the new repository? > > > My repository includes four branches as well for ALSA > hwdep/rawmidi/timer/seq interfaces. The most of features in each > interface is already available via included libraries but under heavy > development. > > I already start to test them with Python 3 (PyGObject) and they seem > work well. I also test them with Rust bindings generated by gtk-rs/gir[3] > tool. Near future I also publish Rust crates for further convenience. > > > For your interests, this Python 3 script is a sample to listen one > event from ALSA control character device. This simple program is not > terminated voluntarily or by sending UNIX signal, thus please generate > control event by alsamixer or amixer: > > ``` > #!/usr/bin/env python3 > > import gi > gi.require_version('GLib', '2.0') > gi.require_version('ALSACtl', '0.0') > from gi.repository import GLib, ALSACtl > > class MyCard(ALSACtl.Card): > def __init__(self, card_id, ctx, dispatcher): > super().__init__() > self.open(card_id) > > self.create_source().attach(ctx) > > self.__dispatcher = dispatcher > > def do_handle_disconnection(self): > self.__dispatcher.quit() > > def do_handle_elem_event(self, elem_id, events): > # Print the first event and quit event loop. > print(elem_id.get_iface().value_nick, > elem_id.get_device_id(), elem_id.get_subdevice_id(), > elem_id.get_name(), elem_id.get_index(), > events.value_nicks) > self.__dispatcher.quit() > > > ctx = GLib.MainContext.new() > dispatcher = GLib.MainLoop.new(ctx, False) > card = MyCard(0, ctx, dispatcher) > > dispatcher.run() > ``` > > [1] https://github.com/alsa-project/alsa-gi > [2] https://github.com/takaswie/alsa-gobject > [3] https://github.com/gtk-rs/gir Would I expect your arrangement for this project, or should I continue to develop it apart from alsa-project? Regards Takashi Sakamoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel