changeset 180:07cfd337ad18

Updated examples with new audioWrite macros
author Giulio Moro <giuliomoro@yahoo.it>
date Sat, 02 Jan 2016 13:55:01 +0100
parents f1012082f142
children 391ad036557d
files projects/basic/render.cpp projects/basic_passthru/render.cpp
diffstat 2 files changed, 32 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- 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 <BeagleRT.h>
 #include <cmath>
+#include <Utilities.h>
 
 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);
+		}
 	}
 }
 
--- 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.