>You say that the alsa kernel drivers export the hardware capabilities to >user level. >Would it be possible to write an API in C++ for ALSA then, basically >not using the alsalib, but the fast hardware abstraction ?
its certainly possible. whether its worth it is another question. using alsa-lib on a "hw:N" ALSA device adds very very little code to the execution path. i take it that you understand that the "hw:N" devices presented by alsa-lib correspond precisely to the hardware-limited capabilities offered by the hardware? that is, access to these devices has to use parameters offered by the hardware, and no format conversion, channel mapping, rate conversion or anything else is done by alsa-lib. you basically get to the system calls and then into the kernel in 1-3 layers of function calls, which is likely as good as you'd get in another library. if you want C++, i think you'd be better off wrapping alsa-lib. i can see no reason to implement another library that has to handle the kernel API (read, write, ioctl, open, close, etc.). but yes, its possible. --p
