[alsa-devel] Restart alsa-gi project as alsa-gobject project

Takashi Sakamoto o-takashi at sakamocchi.jp
Wed Dec 4 14:34:54 CET 2019


Hi Jaroslav,

On Wed, Dec 04, 2019 at 10:10:49AM +0100, Jaroslav Kysela wrote:
> Dne 04. 12. 19 v 1:33 Takashi Sakamoto napsal(a):
> > Would I expect your arrangement for this project, or should I continue
> > to develop it apart from alsa-project?
> 
> You're the only developer for this thus I'll shift the repos in the ALSA
> project on github. You should also write to README that this project is not
> using alsa-lib, thus the extra abstraction interfaces from alsa-lib cannot
> be used. Or do you plan to build gobjects on top of alsa-lib, too?

Mmm. I guess that there's miscommunication about the design of alsa-gi
project at first place. I remember you were not at the same room in the
audio mini conf.

The original alsa-gi is independent of alsa-lib[1]. This has been
immutable since I mentioned about the project in the audio miniconf[2],
thus alsa-gobject is just on <sound/asound.h> and <sound/asequencer.h> as
well. The project is thin layer between produced API and character devices
for applications to execute I/O as easy as possible. This point is
important to write tests and to implement some ctl/sequencer drivers in
userland.

For the design, at present, I have no plan to be on alsa-lib. Especially,
the combination of configuration space and domain specific language is
not surely supported. The below features of alsa-lib are not supported
by alsa-gobject:

 * text files for configuration space
 * parser of domain specific language
 * plug-in mechanism for all interfaces
 * hctrl interface
 * mixer interface and sctl plug-in mechanism
 * plug-in SDK for pcm/ctl interfaces

I think it possible to implement the equivalents by high-level
programming languages as well as the below features:

 * Parser/builder for Type-Length-Value array for ctl interface
 * Converter between MIDI messages and ALSA sequencer events
 * topology interface
 * ucm interface

But at present my concern is I/O between user/kernel space, thus I have
no plan to work for the above items now, except for TLV parser/builder.

[1] You can find no strings for 'alsa-lib' in meson.build.
https://github.com/takaswie/alsa-gi/blob/master/src/meson.build
[2] https://github.com/takaswie/presentations/blob/master/20181021/contents.md#mockup-alsa-gi


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list