Le 14 mars 08 à 16:32, Salvatore Di Pietro a écrit :
> Hi all,
> I just fitted Sean Meiners' alsa device disconnect patch for JACK
> 0.109.2.
>
> It enables jackd to detach from the ALSA device, letting its use by
> other non-JACK programs whilst in the middle of a jack session,
> without closing jackd and its clients. IMHO very useful for i.e
> common builtin laptop soundcards which don't support more than one
> alsa-direct audio app at once (also commonly known as "no hardware
> mixing soundcards").
>
> You get an additional example client: jack_device_connect (based on
> jack_freewheel, its arguments are "y" or "n") which you use to make
> jack release and re-hook to the audio card. Time is paused and all
> audio from jack is of course muted and jackd and its client
> applications are put into this fake-freewheel mode while jack has
> released the device; they continue producing and consuming audio
> upon jackd re-attaching to the audio device, with the command
> "jack_device_connect y".
>
> The original version was for jack 0.100.0, I just modified it to
> make it patch successfully on jack 0.109.2. I don't have so
> advanced programming skills to understand its inner working, but
> from a quick read of the code, for what I can understand, I saw it
> mainly adds some functions in jackd (jack_device_disconnect() and
> jack_device_connect()in jackd/engine.c) and libjack
> (jack_set_connected() in client.c, jack_driver_nt_disconnect() and
> jack_driver_nt_connect() in driver.c) to dis/connect to the alsa
> device.
>
> I was asked on this list about the interaction of this patch with
> realtime watchdogs. I didn't encounter any problem, they were never
> triggered (and no crashes or weird things ;) ) as in normal
> operation, because they enter this freewheeling-like mode.
> I contacted Sean and asked him if it was this way, and he replied:
>
> >As I remember, that's pretty much it. It puts jack into something
> like >freewheel mode (so that jack clients don't freeze up). And
> then shuts >down the alsa driver. As for the watchdog, I don't
> remember anything >about that, but if I had to guess I'd say it's
> because jack is put into >a fake-freewheel mode.
>
> Hope it is useful to who wants to try it: just use
>
> jack_device_connect n
>
> and voila, you can watch youtube videos or use that strange non-
> jack aware application you need in that moment, _without_ closing
> any jack program.
> When you're done, just use
>
> ja
Hi,
I don't think this patch should go for jack 1.0 for several reasons:
- it is quite intrusive and add a new API jack_set_connected on the
client side.
- dynamically changing backend is something that was discussed at LAC
and that should be better done in a new "server control" API that
will be part of jack2. Changing the backend is conceptually more a
server control operation. This API is yet to be completely defined
but should allow much better control of the server, like dynamically
gettting/setting backend parameters, starting/stopping the server,
dynamically changing backend....
Stephane
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
Received on Sat Mar 15 00:15:05 2008
This archive was generated by hypermail 2.1.8 : Sat Mar 15 2008 - 00:15:05 EET