Re: [LAD] LADI

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <fons@...>
Cc: <linux-audio-dev@...>
Date: Tuesday, November 24, 2009 - 5:55 pm

On Tue, Nov 24, 2009 at 12:02 PM, wrote:

> 1. Almost all GUI toolkits mix up a few things that should

Neither Qt nor GTK combine these. They are both built on an event loop
that has nothing to do with X11 events, or thread message dispatch.

>   A well designed GUI toolkit should do only the first

I'm not quite sure what you mean, but my initial interpretation of
this suggests a goal that is a little absurd to me. The design of the
event loop is where the design of a GUI toolkit starts, because the
event loop needs to be able to handle things other than X11 (or Aqua
or GDI or whatever) events. If you use an event loop that doesn't do
this well, then you rule out a class of moderately complex
applications from being implemented in the most obvious way.

So, you start with a given event loop (hopefully a good one) and then
start adding other functionality on top, either as part of the toolkit
or as part of the application itself (via direct interactions with the
event loop API). How do you propose that the toolkit just be able to
switch to "any" event loop? When Trolltech modified Qt to be able to
(optionally) use the glib event loop, it was quite a bit of tricky
work. Perhaps you just mean that the specific event loop that is
chosen is not that relevant, rather than that it should be possible to
switch them?

> 2. Almost all toolkits try to be cross-platform. Which

I don't think that would really address the issue. Take a look at what
Qt did to allow use of the glib event loop, and thus, by extension,
GTK widgets from within a Qt application. It has nothing to do with
event translation - you simply deliver the raw events from whatever
source (or even, just "i/o") into the relevant event loop handlers and
the translation happens in the same place that it would normally do
so. There is no reason to expose this to any higher level - the plugin
is not interested in doing explicit translation in its GUI - it just
wants a normal event stream delivered to it. What matters here is
being able to *register* the event handler with the event loop, and
this precisely where the lack of any common event loop abstraction on
Unix breaks down. GTK has a very abtract event handler that picks up
stuff from a communication endpoint that (might) happen to be
connected to an X server. But the API it uses for this (provided by
the glib event loop) is different than the one it would have to use if
it wanted to integrate with the Qt "native" event loop. As a result,
you either have to have N versions of the low level integration
handlers (N == number of event loop APIs supported) or you need a
common event loop API. Unix has never had the latter, and most toolkit
developers are not planning to see their upper layers running on a
different event loop core. What Trolltech did with Qt + glib was quite
remarkable, really. However, it still only makes N=2. If you wanted to
use Qt widgets in an application that used on a self-made X11 event
loop, it wouldn't work.

> The only reason I can see why most GUI toolkits do not

I think this is ridiculous. 99% or more of the people developing
applications with GUI toolkits are not interested in the kind of
modularity that you describe. It would bring them no benefits, and
complicates the lives of toolkit developers and possibly app
developers too. Why should toolkit developers add complexity to their
work to satisfy a tiny number of developers who want to be able to do
clever things?

OS X put the run loop abstraction (CFRunLoop) into the lowest layer of
their "application stack" (i.e. the part of OS X that isn't Unix). To
me, *that's* the right kind of "modularity by commonality" - you could
build a huge variety of different toolkits and GUIs around this single
abstraction (and indeed, their X11 server does just that, alongside
the Aqua display server). But on Unix, everybody's been pushing for
"modularity by decomposition" for so long that the idea that you'd
have a common core for any application that is event-driven rather
than data driven just seems ... well, its disparaged as
"unnecessary".

>The fact that such trivial

The only that an app with an RT part and a GUI part really needs is a
way of delivering messages from the RT part to the GUI part in an RT
safe way. This doesn't require the cooperation of the toolkit at all,
so what would the toolkit matter?

There are lots of different reasons to prefer one toolkit over
another, but the presence of RT code in its own thread within the app
has never seemed to be one of them, for me.
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[LAD] LADI, Nedko Arnaudov, (Fri Nov 20, 8:16 pm)
Re: [LAD] LADI, Danni Coy, (Sat Nov 21, 4:17 am)
Re: [LAD] LADI, Sean Corbett, (Sat Nov 21, 3:50 am)
Re: [LAD] LADI, Rui Nuno Capela, (Sat Nov 21, 2:01 am)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 3:07 am)
Re: [LAD] LADI, Paul Davis, (Sat Nov 21, 4:21 am)
Re: [LAD] LADI, Bob Ham, (Mon Nov 23, 11:49 am)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 5:19 am)
Re: [LAD] LADI, Paul Davis, (Sat Nov 21, 2:45 pm)
Re: [LAD] LADI, Bob Ham, (Mon Nov 23, 12:26 pm)
Re: [LAD] LADI, Gene Heskett, (Mon Nov 23, 4:57 pm)
Re: [LAD] LADI, Adrian Knoth, (Mon Nov 23, 1:17 pm)
Re: [LAD] LADI, , (Tue Nov 24, 10:11 pm)
Re: [LAD] LADI, Loki Davison, (Mon Nov 23, 10:17 pm)
Re: [LAD] LADI, Bob Ham, (Tue Nov 24, 8:53 am)
Re: [LAD] LADI, Adrian Knoth, (Tue Nov 24, 3:53 pm)
Re: [LAD] LADI, Bob Ham, (Tue Nov 24, 10:11 pm)
Re: [LAD] LADI, rosea grammostola, (Sat Dec 19, 8:15 pm)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 7:57 pm)
Re: [LAD] LADI, Adrian Knoth, (Wed Dec 23, 10:58 am)
Re: [LAD] LADI, Bob Ham, (Wed Dec 23, 1:08 pm)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Wed Dec 23, 1:43 pm)
Re: [LAD] LADI, Bob Ham, (Wed Dec 23, 1:59 pm)
Re: [LAD] LADI, Patrick Shirkey, (Tue Dec 22, 8:19 pm)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 11:40 pm)
Re: [LAD] LADI, , (Sat Dec 19, 10:23 pm)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 8:02 pm)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Sun Dec 20, 5:25 am)
Re: [LAD] LADI, rosea grammostola, (Sun Dec 20, 10:24 am)
Re: [LAD] LADI, torbenh, (Sun Dec 20, 12:13 pm)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 7:17 pm)
Re: [LAD] LADI, rosea grammostola, (Sun Dec 20, 8:11 pm)
Re: [LAD] LADI, torbenh, (Sun Dec 20, 11:18 pm)
Re: [LAD] LADI, rosea grammostola, (Mon Dec 21, 10:45 am)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 8:35 pm)
Re: [LAD] LADI, Nedko Arnaudov, (Tue Dec 22, 9:22 pm)
Re: [LAD] LADI, rosea grammostola, (Wed Dec 23, 10:25 pm)
Re: [LAD] LADI, Nedko Arnaudov, (Thu Dec 24, 6:35 pm)
Re: [LAD] LADI, Ralf Mardorf, (Fri Dec 25, 2:46 pm)
Re: [LAD] LADI, Patrick Shirkey, (Fri Dec 25, 11:12 pm)
Re: [LAD] LADI, Ralf Mardorf, (Sun Dec 27, 2:11 am)
Re: [LAD] LADI, Nedko Arnaudov, (Sun Dec 27, 2:28 am)
Re: [LAD] LADI, Ralf Mardorf, (Sun Dec 27, 2:44 am)
Re: [LAD] LADI, Ralf Mardorf, (Sun Dec 27, 2:26 am)
Re: [LAD] LADI, Ralf Mardorf, (Sat Dec 26, 1:48 am)
Re: [LAD] JackMix [was: LADI], james morris, (Sat Dec 26, 11:18 am)
Re: [LAD] JackMix [was: LADI], Arnold Krille, (Sun Dec 27, 3:05 pm)
Re: [LAD] JackMix [was: LADI], Patrick Shirkey, (Sat Dec 26, 12:13 pm)
Re: [LAD] JackMix [was: LADI], james morris, (Sat Dec 26, 12:41 pm)
Re: [LAD] JackMix [was: LADI], Paul Davis, (Sat Dec 26, 2:11 pm)
Re: [LAD] JackMix [was: LADI], james morris, (Sat Dec 26, 10:32 pm)
Re: [LAD] JackMix [was: LADI], Arnold Krille, (Sun Dec 27, 3:03 pm)
Re: [LAD] JackMix [was: LADI], james morris, (Sun Dec 27, 4:38 pm)
Re: [LAD] JackMix [was: LADI], Ralf Mardorf, (Sun Dec 27, 7:20 am)
Re: [LAD] JackMix [was: LADI], Paul Davis, (Sun Dec 27, 1:52 pm)
Re: [LAD] JackMix [was: LADI], Ralf Mardorf, (Mon Dec 28, 6:49 pm)
Re: [LAD] JackMix [was: LADI], Patrick Shirkey, (Sat Dec 26, 12:50 pm)
Re: [LAD] LADI, hermann, (Sat Dec 26, 4:25 am)
Re: [LAD] LADI, rosea grammostola, (Fri Dec 25, 3:39 pm)
Re: [LAD] LADI, Ralf Mardorf, (Fri Dec 25, 4:16 pm)
Re: [LAD] LADI, Adrian Knoth, (Fri Dec 25, 7:49 pm)
Re: [LAD] LADI, rosea grammostola, (Wed Jan 6, 1:24 pm)
Re: [LAD] LADI, Ralf Mardorf, (Fri Dec 25, 8:01 pm)
Re: [LAD] LADI, rosea grammostola, (Fri Dec 25, 4:32 pm)
Re: [LAD] LADI, Ralf Mardorf, (Fri Dec 25, 4:31 pm)
Re: [LAD] LADI, Bob Ham, (Wed Dec 23, 12:00 am)
Re: [LAD] LADI, Nedko Arnaudov, (Wed Dec 23, 11:29 am)
Re: [LAD] LADI, Bob Ham, (Wed Dec 23, 12:05 pm)
Re: [LAD] LADI, David Robillard, (Tue Dec 22, 4:57 pm)
Re: [LAD] LADI, rosea grammostola, (Tue Dec 22, 5:24 pm)
Re: [LAD] LADI, Chris Cannam, (Mon Dec 21, 9:33 am)
Re: [LAD] LADI, Patrick Shirkey, (Mon Dec 21, 8:56 am)
Re: [LAD] LADI, alex stone, (Mon Dec 21, 9:22 am)
Re: [LAD] LADI, Patrick Shirkey, (Mon Dec 21, 9:36 am)
Re: [LAD] LADI, alex stone, (Mon Dec 21, 9:45 am)
Re: [LAD] LADI, Patrick Shirkey, (Mon Dec 21, 10:12 am)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Mon Dec 21, 1:40 pm)
Re: [LAD] LADI, Patrick Shirkey, (Mon Dec 21, 10:55 pm)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Tue Dec 22, 12:36 am)
Re: [LAD] LADI, torbenh, (Tue Dec 22, 3:31 am)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Tue Dec 22, 5:33 am)
Re: [LAD] LADI, Thorsten Wilms, (Tue Dec 22, 9:36 am)
Re: [LAD] LADI, alex stone, (Tue Dec 22, 7:29 am)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Tue Dec 22, 12:13 pm)
Re: [LAD] LADI, alex stone, (Tue Dec 22, 12:30 pm)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Tue Dec 22, 1:04 pm)
Re: [LAD] LADI, alex stone, (Tue Dec 22, 2:09 pm)
Re: [LAD] LADI, Gabriel M. Beddingfield, (Tue Dec 22, 2:33 pm)
Re: [LAD] LADI, Patrick Shirkey, (Tue Dec 22, 7:29 pm)
Re: [LAD] LADI, Patrick Shirkey, (Tue Dec 22, 7:41 pm)
Re: [LAD] LADI, Dave Phillips, (Tue Dec 22, 2:42 pm)
Re: [LAD] LADI, Patrick Shirkey, (Tue Dec 22, 1:02 am)
Re: [LAD] LADI, Nedko Arnaudov, (Mon Dec 21, 10:34 am)
Re: [LAD] LADI, alex stone, (Mon Dec 21, 11:07 am)
Re: [LAD] LADI, James Warden, (Mon Dec 21, 11:26 am)
Re: [LAD] LADI, Louigi Verona, (Sun Dec 20, 8:31 pm)
Re: [LAD] LADI, Christopher Cherrett, (Sun Dec 20, 10:20 pm)
Re: [LAD] LADI, Patrick Shirkey, (Sun Dec 20, 1:22 am)
Re: [LAD] LADI, Louigi Verona, (Sun Dec 20, 12:48 am)
Re: [LAD] LADI, Ralf Mardorf, (Sun Dec 20, 1:21 am)
Re: [LAD] LADI, Patrick Shirkey, (Sun Dec 20, 1:19 am)
Re: [LAD] LADI, Louigi Verona, (Sun Dec 20, 9:33 am)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 5:45 pm)
Re: [LAD] LADI, Paul Davis, (Tue Dec 22, 5:56 pm)
Re: [LAD] LADI, Bob Ham, (Tue Dec 22, 11:35 pm)
Re: [LAD] LADI, Paul Davis, (Sun Dec 20, 1:40 pm)
Re: [LAD] LADI, Jostein Chr. Andersen, (Sun Dec 20, 2:20 pm)
Re: [LAD] LADI, alex stone, (Sun Dec 20, 11:27 am)
Re: [LAD] LADI, Louigi Verona, (Sun Dec 20, 11:52 am)
Re: [LAD] LADI, rosea grammostola, (Sun Dec 20, 12:55 pm)
Re: [LAD] LADI, alex stone, (Sun Dec 20, 12:21 pm)
Re: [LAD] LADI, Nedko Arnaudov, (Sun Dec 20, 10:31 am)
Re: [LAD] LADI, Louigi Verona, (Sun Dec 20, 10:32 am)
Re: [LAD] LADI, Ralf Mardorf, (Sun Dec 20, 1:32 am)
Re: [LAD] LADI, Paul Davis, (Tue Nov 24, 4:05 pm)
Re: [LAD] LADI, Rui Nuno Capela, (Tue Nov 24, 5:10 pm)
Re: [LAD] LADI, Paul Davis, (Tue Nov 24, 4:13 pm)
Re: [LAD] LADI, , (Tue Nov 24, 5:05 pm)
Re: [LAD] LADI, Paul Davis, (Tue Nov 24, 5:55 pm)
Re: [LAD] LADI, , (Tue Nov 24, 7:28 pm)
Re: [LAD] LADI, Paul Davis, (Tue Nov 24, 7:46 pm)
Re: [LAD] LADI, , (Tue Nov 24, 9:41 pm)
Re: [LAD] LADI, Chris Cannam, (Tue Nov 24, 8:19 pm)
Re: [LAD] LADI, Florian Faber, (Mon Nov 23, 1:37 pm)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 3:01 pm)
Re: [LAD] LADI, David Robillard, (Sat Nov 21, 9:54 pm)
Re: [LAD] LADI, Rui Nuno Capela, (Sat Nov 21, 11:13 am)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 2:48 pm)
Re: [LAD] LADI, Rui Nuno Capela, (Sat Nov 21, 3:37 pm)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 6:12 pm)
Re: [LAD] LADI, Rui Nuno Capela, (Sat Nov 21, 6:21 pm)
Re: [LAD] LADI, Patrick Shirkey, (Sat Nov 21, 6:24 pm)
Re: [LAD] LADI, , (Sat Nov 21, 12:00 am)
Re: [LAD] LADI, Victor Lazzarini, (Sat Nov 21, 12:51 am)
Re: [LAD] LADI, , (Sat Nov 21, 12:12 pm)