/*================================================================= * sysdrc.c: DRC creation routines. *=================================================================*/ #include #include #include #include #include #include #include #include "sys.h" drcSizeConfig_t drcSizeConfig = { drc_SAMP_RATE_16K, /* sampling rate */ 16*drc_SAMP_RATE_16K /* 2ms maximum forward looking limiter delay in samples */ }; drcOpenConfig_t drcOpenConfig = { /* for drcOpen */ ((1< SYS_COMP_MAXBUFS) { System_printf("*** not enough buffer descriptors"); BIOS_exit(0); } drcNewConfig.sizeCfg = drcSizeConfig; err = sysHeapAllocAll(nbufs, sysCompBufs, (const void*)bufs); SYS_CHECK_ERROR(err); /* Give memory to DRC */ drcNewConfig.handle = (void*)0; /* Indicate instance #0 */ sysContext.drcInst_p = NULL; err = drcNew(&sysContext.drcInst_p, nbufs, sysCompBufs, &drcNewConfig); if (err != drc_NOERR) { System_printf("*** drcNew() error: %d\n", err); BIOS_exit(0); } /* Open DRC for business */ err = drcOpen(sysContext.drcInst_p,&drcOpenConfig); if (err != drc_NOERR) { System_printf("*** drcOpen() error: %d\n", err); BIOS_exit(0); } /* At this point DRC is open, but DISABLED! */ /* We need to do a few additional configurations through drcControl() */ /* Set the full band companding curve */ drcCtl.ctl_code = drc_CTL_SET_FBAND; drcCtl.u.band.valid_bitfield = (1u<