Re: [LAD] LADI

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: <fons@...>
To: Paul Davis <paul@...>
Cc: <linux-audio-dev@...>
Date: Tuesday, November 24, 2009 - 7:28 pm

On Tue, Nov 24, 2009 at 12:55:39PM -0500, Paul Davis wrote:

> I'm not quite sure what you mean, but my initial interpretation of

Seems we are saying the same thing in different terminology, and
using different meanings of the same term such as 'even loop'.

An event loop (as I use the term) is just something of the
form

while (running)
{
E = wait_for_events();
process_event(E);
}

which in a typical multi-threaded and event-driven program
you would find in some form in each thread.

Unless you like using lots of mutexes, it is convenient to
handle most events that have an impact on the global state
of a app in a single thread. This could be mix of X11 events,
notifications from you RT-audio thread, messages from network
threads, or those doing non-RT calculations, etc.

This means that wait_for_events() has to wait for a number
of different things at the same time. One traditional way
to do this is using poll() or select(() on a set of fds.
Or if most of the event sources are threads it could be
done using a inter-thread message service not based on fds
but directly on low-level threading primitives such as
semaphores or condition variables (this is what clxthreads
does).

In process_event() the first selection would be on event
origin. Messages from you other threads for example would
get handled by whatever code you provide for that, while
X11 events would be handled by code provided by the GUI
toolset, delivering them somehow to the objects that need
them.

>From what you write I understand that you call this handling
of X11 events 'the event loop' of a the toolset, which is of
course something quite different than what I understand by
this term and try to explain here. What you call 'the event
loop' (in the discussion about linking GTK and Qt) is not
the loop - it is the dispatching and handling of X11 events.
I agree fully that a developer normally does not wants to
meddle with this - he's using a GUI toolset to take that
work away from him.

The problem I pointed out exists when the 'real' loop (in
the C, C++ sense), in other words the while() thing above,
is completely absorbed into a GUI toolkit. A toolkit should
probably provide this as a convenience, but the user should
also have the option to open up this code and mix in his own
events in any way he prefers. He should e.g. not be forced to
translate all his event/messages sources into e.g. a poll()
based framework just because the toolkit uses a fd to wait
on X11.

The loop as written above is a multiplexer (the wait_for_events()),
and a demultiplexer (the process_event()). The GUI toolkit is on
an input to the first and on an output of the second. The only
thing that should matter is that the link between these two
points exists, not how it is implemented.

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

What do you mean by 'raw events', or a 'normal event stream' ?
Both toolkits would normally represent X11 events in different
ways (GTK seems to remain close to the 'raw' X11 form, don't
know about Qt). They would also represent basic objects (such as
'a window') in different ways. If an event is dispatched in its
GTK form but in the end has to be handled by a Qt object then
some translation will be required somewhere. And indeed the plugin
will not want to do this itself.

What you write seems to suggest that both the GTK and Qt
dispatching mechanism exist at the same time, that they don't
really interface to each other, but that raw X events get
handled either by the one or the other. This will work if
they can somehow work out who should handle what without
tripping on things from the other one. All raw X events have
a destination window ID, and for most cases testing on that
would be all that's required. But again this has nothing do
to with how the event loop (in my sense) is organised.

Ciao,

--
FA

Io lo dico sempre: l'Italia è troppo stretta e lunga.

_______________________________________________
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)