static void reset_system_audio(size_t nframes) { size_t reset_size; unsigned int thread; const float zero = 0.; int i; reset_em = FALSE; for(thread = 0; thread < threadno; thread++) { reset_size = max (top[thread].jack.reset_size, nframes); ringb_float_reset (top[thread].jack.ring.i.l); ringb_float_reset (top[thread].jack.ring.i.r); ringb_float_reset (top[thread].jack.auxr.i.l); ringb_float_reset (top[thread].jack.auxr.i.r); ringb_float_clear (top[thread].jack.ring.i.l, top[thread].jack.size * loc[thread].mult.ring-1); ringb_float_clear (top[thread].jack.ring.i.l, top[thread].jack.size * loc[thread].mult.ring-1); ringb_float_reset (top[thread].jack.ring.i.l); ringb_float_reset (top[thread].jack.ring.i.r); // ringb_float_reset (top[thread].jack.auxr.i.l); // ringb_float_reset (top[thread].jack.auxr.i.r); if (top[thread].offset < 0) { for(i=top[thread].offset;i<0;i++) { ringb_float_write(top[thread].jack.ring.i.l,&zero,1); ringb_float_write(top[thread].jack.auxr.i.l,&zero,1); //ringb_float_write(top[thread].jack.auxr.i.l,&zero,1); } } else { for(i=0;i<top[thread].offset;i++) { ringb_float_write(top[thread].jack.ring.i.r,&zero,1); ringb_float_write(top[thread].jack.auxr.i.r,&zero,1); //ringb_float_write(top[thread].jack.auxr.i.r,&zero,1); } } ringb_float_restart (top[thread].jack.ring.o.r, reset_size); ringb_float_restart (top[thread].jack.ring.o.l, reset_size); ringb_float_restart (top[thread].jack.auxr.o.r, reset_size); ringb_float_restart (top[thread].jack.auxr.o.l, reset_size); //ringb_float_restart (top[thread].jack.auxr.o.r, reset_size); //ringb_float_restart (top[thread].jack.auxr.o.l, reset_size); } }
PRIVATE void setup_system_audio (unsigned int thread) { sprintf (top[thread].jack.name, "sdr-%d-%0u", top[thread].pid,thread); top[thread].jack.size = 2048; memset ((char *) &top[thread].jack.blow, 0, sizeof (top[thread].jack.blow)); top[thread].jack.ring.i.l = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.ring.i.r = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.ring.o.l = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.ring.o.r = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.auxr.i.l = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.auxr.i.r = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.auxr.o.l = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); top[thread].jack.auxr.o.r = ringb_float_create (top[thread].jack.size * loc[thread].mult.ring); ringb_float_clear (top[thread].jack.ring.o.l, top[thread].hold.size.frames); ringb_float_clear (top[thread].jack.ring.o.r, top[thread].hold.size.frames); }
/* ---------------------------------------------------------------------------- */ void ringb_float_restart(ringb_float_t *rb, size_t nfloats) { ringb_float_reset(rb); ringb_float_clear(rb, nfloats); }