Am Wed, 03 Jun 2009 07:11:12 -0500 schrieb "Gabriel M. Beddingfield" <[email protected]>:
> [email protected] wrote: > > hmm, i need more time to understand the different between both stats. so in > > moment i > > can not evaluate this. but the jack api proposes this functions, for things > > need more > > time. > > > > read comment for the jack_set_process_thread function. > > The non-callback API isn't a way for us to remove ourselves from being called > back. JACK is an interrupt-driven (or "callback") API. I.e. we pass a > callback > function to the JACK library... and then we have no control over when and > where > it is called. As a consequence, we process a discrete chunk of data every > time > we are called. > > some_init_function() { > register_callback_with_lib( my_callback ); > } > > int my_callback(args) { > // process the data > } > > In contrast, programmers are used to working with stream I/O. ALSA and OSS > have > an API that is more of a stream-like API. This means that we have some > program > that polls for data: > > while( have_some_data_from_lib() ) { > // process the data > } > > The JACK non-callback API provides a way to write JACK programs that looks > like > the old stream-like API's. > > So, using the non-callback API is roughly equivalent to using the callback > API. > Whenever we're in the "// process the data" block... we have the same rules > about being realtime safe. For us to do this with Hydrogen would be a big > change. > > It sounds like you *want* is simply to say to JACK, "don't call the > callback." > This is done like this: > > jack_deactive(m_client); > jack_set_process_callback(0, 0); > jack_activate(m_client); > > However, it might be easier to implement this (and it works for all audio > drivers): > > bool too_busy_to_process = false; > > void load_drumkit(void) { > too_busy_to_process = true; > // load the drum kit > too_busy_to_process = false; > } > > int audioEngine_process(int, void*) { > if( too_busy_to_process ) > return; > > // ... > } > > Peace, > Gabriel > ahh, ok, thank you for explaining this. i agree. if that is, what you do in your patch?! i see no problem to check it in. looks like this will solve the problem. without using many extra time in audioEngine_process. think check one bool don't sucks to many time :-). greeting wolke ------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get _______________________________________________ Hydrogen-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hydrogen-devel
