linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: shd@modeemi.cs.tut.fi (Heikki Orsila)
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Jaroslav Kysela <perex@suse.cz>
Subject: Re: [OT] ALSA userspace API complexity
Date: Thu, 5 Jan 2006 16:45:21 +0200	[thread overview]
Message-ID: <20060105144521.GF757@jolt.modeemi.cs.tut.fi> (raw)
In-Reply-To: <Pine.LNX.4.61.0601051518370.10350@tm8103.perex-int.cz>

On Thu, Jan 05, 2006 at 03:24:18PM +0100, Jaroslav Kysela wrote:
> On Thu, 5 Jan 2006, Heikki Orsila wrote:
> This sentence makes this in my mind: real people = lazy people.

Yes, but it has good reasons too. The real point of userspace libraries 
and programs rather than kernel space is saving effort. Laziness in 
programming is good so long as programs are readable and correct.

Your success must be measured according to the number of bugs with ALSA 
programs and the time used to develop ALSA support for them. Right now 
it looks very bad to me. Even libao can't handle ALSA well, and knowing 
some XMMS developers they have hard time with ALSAs complexity. KISS.

> The error codes are documented well.

That's a bad excuse for requiring buffer underruns to be handled 
specially because it's not a fatal error. Errors should be handled 
as close to the error source as possible, and the ALSA lib is the 
logical place to handle underrun by default (unless the application 
really is interested in handling underruns specially). Passing errors 
through unreasonably many layers causes more complexity for programmers.

> > 	err = alsa_simple_pcm_open(nchannels, sampleformat, samplingrate, frames_in_period /* 0 for automated default */ );
> > 	err = alsa_simple_writei(); /* handless signal brokeness automagically */
> > 	alsa_simple_close();
> 
> Well, it's better to create only "fast parameter setup" and "default error 
> recovery" functions.

As long as all applications PCM code can be written into 10-20 C lines. 
That includes: opening device, writing pcm data and closing the device. 

> > Basically ogg123/mpg123 like applications would only need 3 alsa calls. 
> > Now everyone reimplementing their own buggy versions of simple mechanisms.
> 
> While "official" examples exists for a long time.

btw. your official examples don't work on simple PCM playback didn't 
work when I last time tried. Sorry, I can't remember details because it 
is so long ago.

-- 
Heikki Orsila			Barbie's law:
heikki.orsila@iki.fi		"Math is hard, let's go shopping!"
http://www.iki.fi/shd

  reply	other threads:[~2006-01-05 14:45 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5rdrx-4Yl-43@gated-at.bofh.it>
2006-01-05 14:01 ` [OT] ALSA userspace API complexity Heikki Orsila
2006-01-05 14:24   ` Jaroslav Kysela
2006-01-05 14:45     ` Heikki Orsila [this message]
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
     [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           ` 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
  -- strict thread matches above, loose matches on Subject: below --
2005-07-26 15:08 [2.6 patch] schedule obsolete OSS drivers for removal Adrian Bunk
2006-01-03 19:37 ` Adrian Bunk
2006-01-03 23:10   ` Tomasz Kłoczko
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
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 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-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-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
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.

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=20060105144521.GF757@jolt.modeemi.cs.tut.fi \
    --to=shd@modeemi.cs.tut.fi \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@suse.cz \
    /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).