void bufaddcomplex(buf_s *b, complex double val) { double i, r; r = creal(val); if(EQ0((i = cimag(val)))) { bufadddouble(b, r); } else { if(!EQ0(r)) { bufaddc(b, '('); bufadddouble(b, r); if(i > 0) bufaddstr(b, " plus ", sizeof(" plus ")-1); if(EQ1(i)) { bufaddc(b, 'i'); } else if(EQN1(i)) { bufaddstr(b, "-i", sizeof("-1")-1); } else { bufadddouble(b, i); bufaddc(b, 'i'); } bufaddc(b, ')'); } else { if(EQ1(i)) { bufaddc(b, 'i'); } else if(EQN1(i)) { bufaddstr(b, "-i", sizeof("-1")-1); } else { bufadddouble(b, i); bufaddc(b, 'i'); } } } }
default: return RT_ERROR; } codec_send(r06); codec_send(r07); #if !CODEC_MASTER_MODE codec_sr_new = sr; #endif return RT_EOK; } FINSH_FUNCTION_EXPORT(vol, Set volume); FINSH_FUNCTION_EXPORT(eq1, Set EQ1(Cut-off, Gain, Mode)); FINSH_FUNCTION_EXPORT(eq2, Set EQ2(Center, Gain, Bandwidth)); FINSH_FUNCTION_EXPORT(eq3, Set EQ3(Center, Gain, Bandwidth)); FINSH_FUNCTION_EXPORT(eq4, Set EQ4(Center, Gain, Bandwidth)); FINSH_FUNCTION_EXPORT(eq5, Set EQ5(Cut-off, Gain)); FINSH_FUNCTION_EXPORT(eq3d, Set 3D(Depth)); FINSH_FUNCTION_EXPORT(sample_rate, Set sample rate); static rt_err_t codec_open(rt_device_t dev, rt_uint16_t oflag) { #if !CODEC_MASTER_MODE /* enable I2S */ I2S_Cmd(CODEC_I2S_PORT, ENABLE); #endif return RT_EOK;