Hi,
I'm trying to add a threaded timer to kluppes looperdata.c
looperdata_calc_sample_stereo function so that I can add a delayed
restart to the loop process.Can anyone tell me why the "while" statement in the following code locks
up the audio stream for the loop it is being run on? I end up with a
buzz throughout the delay period instead of a nice quiet delay period.#include
#include
#include/* This flag controls termination of the main loop. */
volatile sig_atomic_t isdelay_countdown = 1;/* The signal handler just clears the flag and re-enables itself. */
void catch_alarm (int sig){
isdelay_countdown = 0;
signal (sig, catch_alarm);
}vol = data->vol;
if(data->playbackdelay > 0){
/* Establish a handler for SIGALRM signals. */
signal (SIGALRM, catch_alarm);isdelay_countdown = 1;
/* Call alarm to countdown length of
playbackdelay */
alarm ((int)data->playbackdelay);/* Check the flag once in a while to see when to
quit. */
while(isdelay_countdown){
looperdata_set_vol(data,0);
data->isplaying = 0;
}}
/* return to start of loop */
looperdata_set_vol(data,vol);
data->isplaying = 1;
data->playindex += data->loopstart - data->loopend;--
Patrick Shirkey
Boost Hardware Ltd_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev
LINUX® is a registered trademark of Linus Torvalds in the USA and other countries.
Linuxaudio.org logo copyright Thorsten Wilms © 2006.
Hosting provided by the Virginia Tech Department of Music and DISIS.