# HG changeset patch # User Giulio Moro # Date 1451739301 -3600 # Node ID 07cfd337ad18602982e8ccc1a48a4b6805201e00 # Parent f1012082f142c27a73f26bcfffe6b7747818c305 Updated examples with new audioWrite macros diff -r f1012082f142 -r 07cfd337ad18 projects/basic/render.cpp --- a/projects/basic/render.cpp Sat Jan 02 13:50:36 2016 +0100 +++ b/projects/basic/render.cpp Sat Jan 02 13:55:01 2016 +0100 @@ -8,6 +8,7 @@ #include #include +#include float gFrequency = 440.0; float gPhase; @@ -47,8 +48,15 @@ if(gPhase > 2.0 * M_PI) gPhase -= 2.0 * M_PI; - for(unsigned int channel = 0; channel < context->audioChannels; channel++) - context->audioOut[n * context->audioChannels + channel] = out; + for(unsigned int channel = 0; channel < context->audioChannels; channel++) { + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->audioOut[n * context->audioChannels + channel] = out; + + // Or using the macros: + audioWriteFrame(context, n, channel, out); + } } } diff -r f1012082f142 -r 07cfd337ad18 projects/basic_passthru/render.cpp --- a/projects/basic_passthru/render.cpp Sat Jan 02 13:50:36 2016 +0100 +++ b/projects/basic_passthru/render.cpp Sat Jan 02 13:55:01 2016 +0100 @@ -19,20 +19,9 @@ // // Return true on success; returning false halts the program. -AuxiliaryTask taskOne; -AuxiliaryTask taskTwo; -void funOne(){ - rt_printf("setup\n"); -} -void funTwo(){ - rt_printf("render\n"); -} bool setup(BeagleRTContext *context, void *userData) { // Nothing to do here... -// taskOne = BeagleRT_createAuxiliaryTask(funOne, 1, "funOne"); -// taskTwo = BeagleRT_createAuxiliaryTask(funTwo, 99, "funTwo"); -// BeagleRT_scheduleAuxiliaryTask(taskOne); return true; } @@ -43,28 +32,32 @@ void render(BeagleRTContext *context, void *userData) { -// if(context->audioSampleCount % 16384 == 0) -// BeagleRT_scheduleAuxiliaryTask(taskTwo); // Simplest possible case: pass inputs through to outputs for(unsigned int n = 0; n < context->audioFrames; n++) { - for(unsigned int ch = 0; ch < context->audioChannels; ch++) - context->audioOut[n * context->audioChannels + ch] = - context->audioIn[n * context->audioChannels + ch]; + for(unsigned int ch = 0; ch < context->audioChannels; ch++){ + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->audioOut[n * context->audioChannels + ch] = + // context->audioIn[n * context->audioChannels + ch]; + + // Or using the macros: + audioWriteFrame(context, n, ch, audioReadFrame(context, n, ch)); + } } - // Same with matrix, only if matrix is enabled -// if(context->analogFrames != 0) { -// for(unsigned int n = 0; n < context->analogFrames; n++) { -// for(unsigned int ch = 0; ch < context->analogChannels; ch++) { -// // Two equivalent ways to write this code -// // The long way, using the buffers directly: -// // context->analogOut[n * context->analogChannels + ch] = context->analogIn[n * context->analogChannels + ch]; -// -// // Or using the macros: -// analogWriteFrame(context, n, ch, analogReadFrame(context, n, ch)); -// } -// } -// } + // Same with analog channelss + for(unsigned int n = 0; n < context->analogFrames; n++) { + for(unsigned int ch = 0; ch < context->analogChannels; ch++) { + // Two equivalent ways to write this code + + // The long way, using the buffers directly: + // context->analogOut[n * context->analogChannels + ch] = context->analogIn[n * context->analogChannels + ch]; + + // Or using the macros: + analogWriteFrame(context, n, ch, analogReadFrame(context, n, ch)); + } + } } // cleanup() is called once at the end, after the audio has stopped.