static int audio_loop_alloc(struct audio_loop **alp, uint32_t srate, uint32_t ch) { struct audio_loop *al; int err; al = mem_zalloc(sizeof(*al), auloop_destructor); if (!al) return ENOMEM; tmr_start(&al->tmr, 100, tmr_handler, al); err = auloop_reset(al, srate, ch); if (err) goto out; al->started = true; out: if (err) mem_deref(al); else *alp = al; return err; }
static int audio_loop_cycle(struct audio_loop *al) { int err; ++al->index; if (al->index >= ARRAY_SIZE(configv)) { gal = mem_deref(gal); info("\nAudio-loop stopped\n"); return 0; } err = auloop_reset(al); if (err) return err; info("\nAudio-loop started: %uHz, %dch\n", al->srate, al->ch); return 0; }
static int audio_loop_alloc(struct audio_loop **alp) { struct audio_loop *al; int err; al = mem_zalloc(sizeof(*al), auloop_destructor); if (!al) return ENOMEM; err = auloop_reset(al); if (err) goto out; out: if (err) mem_deref(al); else *alp = al; return err; }