linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alistair John Strachan <s0348365@sms.ed.ac.uk>
To: Jaroslav Kysela <perex@suse.cz>
Cc: Pete Zaitcev <zaitcev@redhat.com>,
	kloczek@rudy.mif.pg.gda.pl, Adrian Bunk <bunk@stusta.de>,
	Olivier Galibert <galibert@pobox.com>,
	Tomasz Torcz <zdzichu@irc.pl>,
	Jan Engelhardt <jengelh@linux01.gwdg.de>, Andi Kleen <ak@suse.de>,
	alsa-devel@alsa-project.org, James@superbug.demon.co.uk,
	sailer@ife.ee.ethz.ch, linux-sound@vger.kernel.org,
	zab@zabbo.net, kyle@parisc-linux.org,
	parisc-linux@lists.parisc-linux.org, jgarzik@pobox.com,
	Thorsten Knabe <linux@thorsten-knabe.de>,
	zwane@commfireservices.com, linux-kernel@vger.kernel.org
Subject: Re: [OT] ALSA userspace API complexity
Date: Wed, 4 Jan 2006 14:23:42 +0000	[thread overview]
Message-ID: <200601041423.43206.s0348365@sms.ed.ac.uk> (raw)
In-Reply-To: <Pine.LNX.4.61.0601041220450.9321@tm8103.perex-int.cz>

On Wednesday 04 January 2006 11:35, Jaroslav Kysela wrote:
> On Wed, 4 Jan 2006, Pete Zaitcev wrote:
> > On Wed, 4 Jan 2006 09:37:55 +0000, Alistair John Strachan 
<s0348365@sms.ed.ac.uk> wrote:
> > > > 2) ALSA API is to complicated: most applications opens single sound
> > > >    stream.
> > >
> > > FUD and nonsense. []
> > > http://devzero.co.uk/~alistair/alsa/
> >
> > That's the kicker, isn't it? Once you get used to it, it's a workable
> > API, if kinky and verbose. I have a real life example, too:
> >  http://people.redhat.com/zaitcev/linux/mpg123-0.59r-p3.diff
> > But arriving on the solution costed a lot of torn hair. Look at this
> > bald head here! And who is going to pay my medical bills when ALSA
> > causes me ulcers, Jaroslav?
>
> Well, the ALSA primary goal is to be the complete HAL not hidding the
> extra hardware capabilities to applications. So API might look a bit
> complicated for the first glance, but the ALSA interface code for simple
> applications is not so big, isn't?
>
> Also, note that app developers are not forced to use ALSA directly - there
> is a lot of "portable" sound API libraries having an ALSA backend doing
> this job quite effectively. We can add a simple (like OSS) API layer
> into alsa-lib, but I'm not sure, if it's worth to do it. Perhaps, adding
> some support functions for the easy PCM device initialization might be
> a good idea.

I agree. I see a lot of steam blowing and hot air from people complaining 
about ALSA. Your API is perfectly usable and aptly translates generic issues 
with any sound hardware (such as xruns and hardware buffering) without hiding 
them away so they cannot be manipulated.

The only significant issue with ALSA is the number of tunables that you have 
to set with individual function calls. Personally, I like this approach, but 
I do always end up wrapping them in some structure, so perhaps you could have 
a "quick and dirty" one liner that would either be:

snd_hw_set_params (fd, ... long list of sensible parameters ...)
snd_sw_set_params (fd, ... ditto ...)

Or, take an ioctl approach (which people here seem to love; urgh):

struct hw_params my_hw_params = {
	PCM_LE_16,
	2,
	blah,
};
...

snd_hw_set_params (fd, &my_hw_params);
snd_sw_set_params (fd, &my_sw_params);

I think your time is better spent addressing the issues of "bloat" in the 
kernel side of things (the more code in userspace the better, despite what 
ridiculous statements there have been on this thread to the contrary).

_Documentation_ clearly distinguishing between "sw" paramters and "hw" 
parameters would also be good, as when I first learnt ALSA (some 3 years 
ago), I didn't even know what these were!

-- 
Cheers,
Alistair.

'No sense being pessimistic, it probably wouldn't work anyway.'
Third year Computer Science undergraduate.
1F2 55 South Clerk Street, Edinburgh, UK.

  parent reply	other threads:[~2006-01-04 14:26 UTC|newest]

Thread overview: 293+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-26 15:08 [2.6 patch] schedule obsolete OSS drivers for removal Adrian Bunk
2005-07-26 15:41 ` Jesper Juhl
2005-07-26 15:46   ` Adrian Bunk
2005-07-26 15:41 ` Thomas Sailer
2005-07-26 15:48 ` Jeff Garzik
2005-07-26 16:04   ` Adrian Bunk
2005-07-26 16:49   ` Lee Revell
2005-07-26 17:49     ` John W. Linville
2005-07-26 17:03   ` Gene Heskett
2005-07-26 18:13     ` Adrian Bunk
2005-07-27  3:19       ` Gene Heskett
2005-07-26 15:51 ` Lee Revell
2005-07-26 15:57   ` Jeff Garzik
2005-07-26 16:02     ` Lee Revell
2005-07-27 18:24     ` Adrian Bunk
2005-07-27 20:31       ` John W. Linville
2005-07-27 20:43         ` Jeff Garzik
2005-07-28 14:00           ` Alan Cox
2005-07-28 13:43             ` Jaroslav Kysela
2005-07-28 14:15               ` Adrian Bunk
2006-01-03 13:14               ` Adrian Bunk
2005-07-26 16:30   ` Adrian Bunk
2005-07-26 16:17 ` Andrew Haninger
2005-07-31 19:29   ` Adrian Bunk
2005-07-26 16:27 ` Zach Brown
2005-07-26 21:41   ` Krzysztof Halasa
2005-07-26 23:38   ` Zoran Dzelajlija
2005-07-27 23:28     ` Lee Revell
2005-07-27 23:58       ` Rogério Brito
2005-07-28  8:09     ` Takashi Iwai
2005-07-31 19:36     ` Adrian Bunk
2005-07-27 18:39 ` Kyle McMartin
2005-07-28  3:01   ` [parisc-linux] " Randolph Chung
2005-07-28 14:14   ` Adrian Bunk
2005-07-28 15:04 ` Thorsten Knabe
2005-07-28 15:46   ` Adrian Bunk
2005-07-28 18:33   ` [Alsa-devel] " Lee Revell
2005-07-29  6:52   ` Jaroslav Kysela
2005-07-29 15:16     ` Adrian Bunk
2005-07-29 15:58     ` Thorsten Knabe
2005-07-31 19:39       ` Adrian Bunk
2005-08-01 14:26         ` Andrew Haninger
2005-08-02  0:13           ` Thorsten Knabe
2005-08-02  5:05             ` Lee Revell
2005-08-02 12:59             ` James Courtier-Dutton
2005-08-02 15:55             ` Thorsten Knabe
2005-07-31 13:38 ` James Courtier-Dutton
2006-01-03 13:21 ` Andi Kleen
2006-01-03 13:47   ` Alistair John Strachan
2006-01-03 13:52     ` Andi Kleen
2006-01-03 13:58       ` David Lang
2006-01-03 14:33         ` Alistair John Strachan
2006-01-03 14:34           ` Alistair John Strachan
2006-01-03 14:01       ` Alistair John Strachan
2006-01-03 18:24       ` Lee Revell
     [not found]       ` <mailman.1136300646.6679.linux-kernel2news@redhat.com>
2006-01-04 11:13         ` Pete Zaitcev
2006-01-04 11:16           ` Jaroslav Kysela
2006-01-03 14:38     ` Jan Engelhardt
2006-01-03 14:41       ` Alistair John Strachan
2006-01-03 14:50         ` Jan Engelhardt
2006-01-03 15:22           ` Alistair John Strachan
2006-01-03 16:05             ` Tomasz Torcz
2006-01-03 16:29               ` Alistair John Strachan
2006-01-03 17:03                 ` Olivier Galibert
2006-01-03 17:16                   ` Alistair John Strachan
2006-01-03 19:24                     ` Olivier Galibert
2006-01-03 19:37                       ` Adrian Bunk
2006-01-03 21:40                         ` Olivier Galibert
2006-01-03 23:10                         ` Tomasz Kłoczko
2006-01-04  0:33                           ` Thomas Sailer
2006-01-04  1:48                             ` Olivier Galibert
2006-01-04  9:03                           ` Jan Engelhardt
2006-01-04  9:37                           ` [OT] ALSA userspace API complexity Alistair John Strachan
     [not found]                           ` <mailman.1136368805.14661.linux-kernel2news@redhat.com>
2006-01-04 11:00                             ` Pete Zaitcev
2006-01-04 11:35                               ` Jaroslav Kysela
2006-01-04 11:47                                 ` Pete Zaitcev
2006-01-04 14:23                                 ` Alistair John Strachan [this message]
2006-01-05 11:41                                   ` Olivier Galibert
2006-01-05 12:01                                 ` Tomasz Kłoczko
2006-01-05 12:23                                   ` Jaroslav Kysela
2006-01-05 14:21                                     ` Olivier Galibert
2006-01-05 14:56                                       ` [parisc-linux] " Alan Cox
2006-01-05 21:14                                         ` Jan Engelhardt
2006-01-05 15:07                                     ` Tomasz Kłoczko
2006-01-05 16:14                                       ` Takashi Iwai
2006-01-05 17:19                                         ` Marcin Dalecki
2006-01-05 20:13                                         ` Tomasz Kłoczko
2006-01-07 14:32                                           ` Takashi Iwai
2006-01-08  2:03                                             ` Olivier Galibert
2006-01-08  2:26                                               ` Martin Drab
2006-01-08 13:21                                                 ` Olivier Galibert
2006-01-08 13:32                                                   ` Jaroslav Kysela
2006-01-08 23:18                                                     ` Pavel Machek
2006-01-09  0:33                                                     ` [Alsa-devel] " Hannu Savolainen
2006-01-09 12:24                                                       ` Takashi Iwai
2006-01-09 17:49                                                   ` Thierry Vignaud
2006-01-08  9:42                                               ` Jaroslav Kysela
2006-01-08 13:04                                                 ` Olivier Galibert
2006-01-08 13:23                                                   ` Jaroslav Kysela
2006-01-08 13:38                                                 ` Marcin Dalecki
2006-01-09  0:30                                                 ` [Alsa-devel] " Hannu Savolainen
2006-01-05 23:06                                         ` Hannu Savolainen
2006-01-05 23:39                                           ` Lee Revell
2006-01-05 23:56                                             ` Hannu Savolainen
2006-01-06  0:03                                               ` Lee Revell
2006-01-05 23:40                                           ` Lee Revell
2006-01-05 23:59                                             ` Hannu Savolainen
2006-01-06 15:03                                               ` Stefan Smietanowski
2006-01-06 15:48                                                 ` Erik Mouw
2006-01-06 18:37                                                 ` Lee Revell
2006-01-10  9:43                                               ` Jaroslav Kysela
2006-01-10 13:42                                                 ` Hannu Savolainen
2006-01-10 14:08                                                   ` Jaroslav Kysela
2006-01-10 14:17                                                     ` Hannu Savolainen
2006-01-10 20:13                                                     ` Marcin Dalecki
2006-01-06  0:14                                             ` Marcin Dalecki
2006-01-06  0:29                                               ` Martin Drab
2006-01-06  0:57                                                 ` Marcin Dalecki
2006-01-06  1:49                                                   ` Martin Drab
2006-01-06  1:21                                               ` Zan Lynx
2006-01-06 15:17                                                 ` Stefan Smietanowski
2006-01-09 23:55                                                   ` jerome lacoste
2006-01-10  2:29                                                     ` Stefan Smietanowski
2006-01-06  3:14                                           ` Edgar Toernig
2006-01-06  3:33                                             ` Hannu Savolainen
2006-01-06 11:34                                               ` Florian Schmidt
2006-01-06  7:47                                           ` Jan Engelhardt
2006-01-07 14:45                                           ` Takashi Iwai
     [not found]                                             ` <Pine.LNX.4.61.0601080225500.17252@zeus.compusonic.fi>
2006-01-08  9:24                                               ` [Alsa-devel] " Jaroslav Kysela
2006-01-09 13:05                                                 ` René Rebe
2006-01-09 15:10                                                   ` Hannu Savolainen
2006-01-09 17:12                                                     ` René Rebe
2006-01-09 21:58                                                       ` David Lang
2006-01-09 23:20                                                         ` John Rigg
2006-01-09 23:21                                                           ` David Lang
2006-01-10  0:16                                                             ` John Rigg
2006-01-10  0:29                                                               ` David Lang
2006-01-10  0:44                                                                 ` Alan Cox
2006-01-10  1:56                                                                   ` Lee Revell
2006-01-10  1:27                                                                 ` John Rigg
2006-01-10  1:02                                                               ` John Rigg
2006-01-10  0:48                                                           ` Hannu Savolainen
2006-01-10  2:00                                                             ` John Rigg
2006-01-10  2:17                                                               ` Hannu Savolainen
     [not found]                                                 ` <Pine.LNX.4.61.0601090010090.31763@zeus.compusonic.fi>
2006-01-10 10:51                                                   ` Jaroslav Kysela
     [not found]                                                     ` <Pine.LNX.4.61.0601101550390.24146@zeus.compusonic.fi>
2006-01-10 14:17                                                       ` Jaroslav Kysela
2006-01-10 14:39                                                         ` Adam Tlałka
2006-01-05 18:56                                       ` Lee Revell
2006-01-05 22:39                                       ` Joern Nettingsmeier
2006-01-05 23:44                                         ` Tomasz Kłoczko
2006-01-05 23:49                                         ` Olivier Galibert
2006-01-06  0:22                                           ` Joern Nettingsmeier
2006-01-06  1:30                                             ` Olivier Galibert
2006-01-06  2:20                                             ` Hannu Savolainen
2006-01-10  9:54                                               ` Jaroslav Kysela
2006-01-10 13:50                                                 ` Hannu Savolainen
2006-01-06  0:00                                         ` Marcin Dalecki
2006-01-05 12:47                                   ` Leonard Milcin Jr.
2006-01-04 12:13                           ` [2.6 patch] schedule obsolete OSS drivers for removal Joern Nettingsmeier
2006-01-04 12:35                             ` Andi Kleen
2006-01-04 12:41                               ` Jaroslav Kysela
2006-01-04 17:31                                 ` Alistair John Strachan
2006-01-04 17:48                                   ` Takashi Iwai
2006-01-05  6:42                       ` Lee Revell
2006-01-03 18:28                   ` Lee Revell
2006-01-03 19:30                     ` Thomas Sailer
2006-01-03 19:37                       ` Jaroslav Kysela
2006-01-03 19:56                         ` Thomas Sailer
2006-01-03 20:06                           ` Jaroslav Kysela
2006-01-04  0:23                             ` Thomas Sailer
2006-01-03 22:39                           ` James Courtier-Dutton
2006-01-03 20:22                   ` Takashi Iwai
2006-01-03 20:37                     ` Tomasz Torcz
2006-01-03 20:44                       ` Takashi Iwai
2006-01-03 20:56                         ` Jesper Juhl
2006-01-03 21:56                           ` Adrian Bunk
2006-01-03 22:11                             ` Jesper Juhl
2006-01-04 11:46                               ` Takashi Iwai
2006-01-04 14:46                                 ` Jan Engelhardt
2006-01-04 16:43                                   ` Marcin Dalecki
2006-01-05 10:57                                     ` Jan Engelhardt
2006-01-05 12:44                                       ` Marcin Dalecki
2006-01-05 18:33                                         ` Lee Revell
2006-01-05 20:03                                           ` Marcin Dalecki
2006-01-05 20:05                                             ` Lee Revell
2006-01-05 20:18                                               ` Marcin Dalecki
2006-01-05 20:28                                                 ` Lee Revell
2006-01-05 20:32                                                   ` Marcin Dalecki
2006-01-05 20:39                                                     ` Lee Revell
2006-01-05 20:32                                                 ` Lee Revell
2006-01-05 20:54                                                   ` Marcin Dalecki
2006-01-05 21:01                                                     ` Lee Revell
2006-01-05 21:43                                                       ` Marcin Dalecki
2006-01-05 21:47                                                         ` Lee Revell
2006-01-05 23:35                                                     ` Jesper Juhl
2006-01-06  0:04                                                       ` Marcin Dalecki
2006-01-06  0:08                                                         ` Jesper Juhl
2006-01-06  1:36                                                         ` Hannu Savolainen
2006-01-06  9:54                                                           ` James Courtier-Dutton
2006-01-06 13:37                                                             ` Hannu Savolainen
2006-01-06 10:34                                                           ` Gabor Gombas
2006-01-06 12:48                                                             ` Hannu Savolainen
2006-01-07 14:09                                                           ` Takashi Iwai
2006-01-07 14:57                                                             ` Marcin Dalecki
2006-01-08  0:21                                                             ` Hannu Savolainen
2006-01-06  2:40                                             ` Diego Calleja
2006-01-06 14:57                                               ` Olivier Galibert
2006-01-06 20:26                                                 ` Jaroslav Kysela
2006-01-07  0:40                                                   ` Marcin Dalecki
2006-01-07  0:56                                                   ` Olivier Galibert
2006-01-05 23:19                                           ` Hannu Savolainen
2006-01-05 23:33                                             ` Lee Revell
2006-01-06 13:20                                               ` caszonyi
2006-01-06 13:43                                                 ` James Courtier-Dutton
2006-01-06 18:24                                                 ` Lee Revell
2006-01-06 18:27                                                 ` Lee Revell
2006-01-04 20:12                                   ` Kyle Moffett
2006-01-04 22:25                                     ` Olivier Galibert
2006-01-03 22:13                             ` Tomasz Torcz
2006-01-03 23:10                               ` Adrian Bunk
2006-01-03 23:51                                 ` Tomasz Kłoczko
2006-01-04  0:03                                   ` Adrian Bunk
2006-01-04  0:46                                     ` Tomasz Kłoczko
2006-01-04  1:01                                       ` Adrian Bunk
2006-01-04  2:51                                         ` Tomasz Kłoczko
2006-01-04  8:50                                           ` Alan Cox
2006-01-04 13:21                                             ` Greg Louis
2006-01-04 14:41                                               ` Adrian Bunk
2006-01-04 10:37                                           ` tapas
2006-01-04 17:28                                             ` Alistair John Strachan
2006-01-05  7:14                                               ` Jan Engelhardt
2006-01-04 17:54                                             ` Takashi Iwai
2006-01-04 18:17                                               ` Florian Schmidt
2006-01-04 19:28                                                 ` Marcin Dalecki
2006-01-04 19:52                                                   ` Florian Schmidt
2006-01-05  7:11                                                     ` Jan Engelhardt
2006-01-05 11:15                                                     ` Takashi Iwai
2006-01-05 21:20                                                   ` Jim Crilly
2006-01-05  7:11                                                 ` Lee Revell
2006-01-05 19:09                                                   ` Edgar Toernig
2006-01-05 19:29                                                     ` Lee Revell
2006-01-05 20:19                                                       ` Lee Revell
2006-01-05 21:05                                                         ` Edgar Toernig
2006-01-05 21:10                                                           ` Lee Revell
2006-01-05 20:24                                                       ` Edgar Toernig
2006-01-05 20:29                                                         ` Lee Revell
2006-01-05  7:16                                             ` Lee Revell
2006-01-05 11:43                                               ` Florian Schmidt
2006-01-05 17:48                                                 ` Lee Revell
2006-01-08 21:07                                                   ` Ville Herva
2006-01-08 21:44                                                     ` Lee Revell
2006-01-09  8:16                                                       ` Ville Herva
2006-01-09 13:52                                                         ` Lee Revell
2006-01-09 14:22                                                           ` Ville Herva
2006-01-09 15:18                                                             ` Lee Revell
2006-01-09 16:21                                                               ` Ville Herva
2006-01-09 16:22                                                                 ` Lee Revell
2006-01-05 18:36                                                 ` Lee Revell
2006-01-05 18:47                                                   ` Tomasz Torcz
2006-01-05 19:10                                                     ` Lee Revell
2006-01-05 19:15                                                   ` Florian Schmidt
2006-01-04  0:28                                   ` Stefan Smietanowski
2006-01-04  1:38                                     ` Tomasz Kłoczko
2006-01-04  9:48                                       ` Stefan Smietanowski
2006-01-05  3:03                                         ` Peter Bortas
2006-01-05  7:13                                           ` Jan Engelhardt
2006-01-05  7:19                                             ` Lee Revell
2006-01-05  8:41                                               ` Stefan Smietanowski
2006-01-05  9:57                                             ` Peter Bortas
2006-01-03 17:09             ` Jan Engelhardt
     [not found] <4uzow-1g5-13@gated-at.bofh.it>
     [not found] ` <5r0aY-2If-41@gated-at.bofh.it>
     [not found]   ` <5r3Ca-88G-81@gated-at.bofh.it>
     [not found]     ` <5reGV-6YD-23@gated-at.bofh.it>
     [not found]       ` <5reGV-6YD-21@gated-at.bofh.it>
     [not found]         ` <5rf9X-7yf-25@gated-at.bofh.it>
2006-01-04 11:56           ` [OT] ALSA userspace API complexity Patrizio Bassi
2006-01-04 18:07             ` Florian Schmidt
2006-01-04 18:46               ` Alistair John Strachan
2006-01-05 18:59             ` Lee Revell
2006-01-05 20:06               ` Patrizio Bassi
2006-01-05 20:11                 ` Lee Revell
2006-01-05 20:47               ` Patrizio Bassi
     [not found] <5rdrx-4Yl-43@gated-at.bofh.it>
2006-01-05 14:01 ` Heikki Orsila
2006-01-05 14:24   ` Jaroslav Kysela
2006-01-05 14:45     ` Heikki Orsila
2006-01-10  9:22       ` Jaroslav Kysela
2006-01-10 11:50         ` Heikki Orsila
2006-01-05 14:51     ` Olivier Galibert
2006-01-05 15:26       ` Alexander E. Patrakov
2006-01-05 15:30         ` Jaroslav Kysela
2006-01-05 16:01           ` Alexander E. Patrakov
2006-01-05 18:11         ` Florian Schmidt
2006-01-05 15:33       ` Jaroslav Kysela
2006-01-05 16:48         ` Marcin Dalecki
2006-01-05 15:27     ` Heikki Orsila
2006-01-05 14:49   ` Alistair John Strachan
2006-01-08  7:19 linux
2006-01-08 22:08 ` Hannu Savolainen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200601041423.43206.s0348365@sms.ed.ac.uk \
    --to=s0348365@sms.ed.ac.uk \
    --cc=James@superbug.demon.co.uk \
    --cc=ak@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=bunk@stusta.de \
    --cc=galibert@pobox.com \
    --cc=jengelh@linux01.gwdg.de \
    --cc=jgarzik@pobox.com \
    --cc=kloczek@rudy.mif.pg.gda.pl \
    --cc=kyle@parisc-linux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=linux@thorsten-knabe.de \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=perex@suse.cz \
    --cc=sailer@ife.ee.ethz.ch \
    --cc=zab@zabbo.net \
    --cc=zaitcev@redhat.com \
    --cc=zdzichu@irc.pl \
    --cc=zwane@commfireservices.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).