I see two ways:
- leave set/get functions with this semantics:
- application tries to set the no period update behaviour for hw_params - alsa-lib should check if nonblock flag is set at this moment - snd_pcm_hw_params() call - application reads back the no period update state and if the flag is not set, it will use standard period updates 2) create new optional snd_pcm_open flag - application opens device with nonblock and no period update flags - snd_pcm_hw_params() call - application reads back the no period update state and if the flag is not set, it will use standard period updates
Note that we can even implement both methods together like for handling the nonblock behaviour.
I re-implemented the first solution and checked if the mode is indeed non-blocking. This solution assumes that the apps cannot go back to blocking mode at a later stage. Is it a valid asumption, or can the blocking mode be enabled/disabled at any time with snd_pcm_nonblock()? -Pierre