diff projects/basic_network/render.cpp @ 56:3c3a1357657d newapi

Further API update to name three primary functions setup(), render() and cleanup(). Changed include paths so now can #include <BeagleRT.h>. Removed stale pru_rtaudio.bin file as this is now done as pru_rtaudio_bin.h. Updated examples to new API and fixed minor compiler warnings along the way. Network example needs further attention to compile.
author andrewm
date Wed, 15 Jul 2015 12:10:51 +0100
parents 98aed580452a
children 7cc79d46ecb9
line wrap: on
line diff
--- a/projects/basic_network/render.cpp	Mon Jun 15 18:16:00 2015 +0100
+++ b/projects/basic_network/render.cpp	Wed Jul 15 12:10:51 2015 +0100
@@ -5,12 +5,10 @@
  *      Author: parallels
  */
 
-#include "../../include/RTAudioSettings.h"
-#include "../../include/render.h"
+#include <BeagleRT.h>
 #include <cmath>
-#include "../../include/client.h"
-#include "../../include/RTAudio.h"	// to schedule lower prio parallel process
-#include <rtdk.h>
+#include <client.h>
+
 float gFrequency;
 float gPhase;
 float gInverseSampleRate;
@@ -28,7 +26,7 @@
 	closeSockets();
 }
 
-// initialise_render() is called once before the audio rendering starts.
+// setup() is called once before the audio rendering starts.
 // Use it to perform any initialisation and allocation which is dependent
 // on the period size or sample rate.
 //
@@ -36,24 +34,21 @@
 // in from the call to initAudio().
 //
 // Return true on success; returning false halts the program.
-bool initialise_render(int numMatrixChannels, int numDigitalChannels, int numAudioChannels,
-					   int numMatrixFramesPerPeriod,
-					   int numAudioFramesPerPeriod,
-					   float matrixSampleRate, float audioSampleRate,
-					   void *userData, RTAudioSettings *settings)
+bool setup(BeagleRTContext *context, void *userData)
 {
 	// Retrieve a parameter passed in from the initAudio() call
 	gFrequency = *(float *)userData;
 
-	gInverseSampleRate = 1.0 / audioSampleRate;
+	gInverseSampleRate = 1.0 / context->audioSampleRate;
 	gPhase = 0.0;
 
 	networkObject.counter=&gCount;
 	networkObject.variables[0]=&gFrequency;
 	networkObject.variables[1]=&gPhase;
 	networkObject.numVariables=2;
+
 	setupSockets(settings->receivePort, settings->transmitPort, settings->serverName);
-	transmitReceiveDataTask=createAuxiliaryTaskLoop(*transmitReceiveData, 80, "transmit-receive-data");
+	transmitReceiveDataTask= BeagleRT_createAuxiliaryTask(*transmitReceiveData, 80, "transmit-receive-data");
 	//scheduleAuxiliaryTask(transmitReceiveDataTask); //here it does not work
 	return true;
 }
@@ -63,27 +58,27 @@
 // ADCs and DACs (if available). If only audio is available, numMatrixFrames
 // will be 0.
 
-void render(int numAnalogFrames, int numAudioFrames, int numDigitalFrames, float *audioIn, float *audioOut,
-		float *analogIn, float *analogOut, uint32_t *digital)
+void render(BeagleRTContext *context, void *userData)
 {
-	for(int n = 0; n < numAudioFrames; n++) {
+	for(unsigned int n = 0; n < context->audioFrames; n++) {
 		float out = 0.7f * sinf(gPhase);
 		gPhase += 2.0 * M_PI * gFrequency * gInverseSampleRate;
 		if(gPhase > 2.0 * M_PI)
 			gPhase -= 2.0 * M_PI;
 
-		for(int channel = 0; channel < gNumAudioChannels; channel++)
-			audioOut[n * gNumAudioChannels + channel] = out;
-		if(gCount==0){
-			scheduleAuxiliaryTask(transmitReceiveDataTask);
+		for(unsigned int channel = 0; channel < context->audioChannels; channel++)
+			context->audioOut[n * context->audioChannels + channel] = out;
+
+		if(gCount == 0){
+			BeagleRT_scheduleAuxiliaryTask(transmitReceiveDataTask);
 		}
 		gCount++;
 	}
 }
 
-// cleanup_render() is called once at the end, after the audio has stopped.
-// Release any resources that were allocated in initialise_render().
+// cleanup() is called once at the end, after the audio has stopped.
+// Release any resources that were allocated in setup().
 
-void cleanup_render()
+void cleanup(BeagleRTContext *context, void *userData)
 {
 }