Mercurial > hg > beaglert
changeset 252:381f352c44eb
Removed obsolete scope project
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Wed, 11 May 2016 10:29:23 +0100 |
parents | cbf70fe3711b |
children | 33e0e4831763 ac8eb07afcf5 |
files | projects/scope/main.cpp projects/scope/render.cpp |
diffstat | 2 files changed, 0 insertions(+), 198 deletions(-) [+] |
line wrap: on
line diff
--- a/projects/scope/main.cpp Thu Apr 28 19:40:41 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* - * main.cpp - * - * Created on: Oct 24, 2014 - * Author: parallels - */ -#include <unistd.h> -#include <iostream> -#include <cstdlib> -#include <libgen.h> -#include <signal.h> -#include <getopt.h> -#include <BeagleRT.h> - -using namespace std; - -// Handle Ctrl-C by requesting that the audio rendering stop -void interrupt_handler(int var) -{ - gShouldStop = true; -} - -// Print usage information -void usage(const char * processName) -{ - cerr << "Usage: " << processName << " [options]" << endl; - - BeagleRT_usage(); - - cerr << " --frequency [-f] frequency: Set the frequency of the oscillator\n"; - cerr << " --help [-h]: Print this menu\n"; -} - -int main(int argc, char *argv[]) -{ - BeagleRTInitSettings settings; // Standard audio settings - float frequency = 440.0; // Frequency of oscillator - - struct option customOptions[] = - { - {"help", 0, NULL, 'h'}, - {"frequency", 1, NULL, 'f'}, - {NULL, 0, NULL, 0} - }; - - // Set default settings - BeagleRT_defaultSettings(&settings); - - // Parse command-line arguments - while (1) { - int c; - if ((c = BeagleRT_getopt_long(argc, argv, "hf:", customOptions, &settings)) < 0) - break; - switch (c) { - case 'h': - usage(basename(argv[0])); - exit(0); - case 'f': - frequency = atof(optarg); - break; - case '?': - default: - usage(basename(argv[0])); - exit(1); - } - } - - // Initialise the PRU audio device - if(BeagleRT_initAudio(&settings, &frequency) != 0) { - cout << "Error: unable to initialise audio" << endl; - return -1; - } - - // Start the audio device running - if(BeagleRT_startAudio()) { - cout << "Error: unable to start real-time audio" << endl; - return -1; - } - - // Set up interrupt handler to catch Control-C and SIGTERM - signal(SIGINT, interrupt_handler); - signal(SIGTERM, interrupt_handler); - - // Run until told to stop - while(!gShouldStop) { - usleep(100000); - } - - // Stop the audio device - BeagleRT_stopAudio(); - - // Clean up any resources allocated for audio - BeagleRT_cleanupAudio(); - - // All done! - return 0; -}
--- a/projects/scope/render.cpp Thu Apr 28 19:40:41 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -#include <BeagleRT.h> -#include <NetworkSend.h> -#include <ReceiveAudioThread.h> -#include <cmath> - -float gPhase1, gPhase2; -float gFrequency1, gFrequency2; -float gInverseSampleRate; - -Scope scope(2); //create a scope object with 2 channels -NetworkSend networkSend; - -// initialise_render() 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. -// -// userData holds an opaque pointer to a data structure that was passed -// in from the call to initAudio(). -// -// Return true on success; returning false halts the program. -ReceiveAudioThread receiveAudio0; -ReceiveAudioThread receiveAudio1; -bool setup(BeagleRTContext *context, void *userData) -{ - receiveAudio0.init(9999, context->audioFrames, 0); - receiveAudio1.init(10000, context->audioFrames, 1); - - scope.setup(); //call this once in setup to initialise the scope - scope.setPort(0, 9999); - scope.setPort(1, 10000); -// networkSend.setup(context->audioSampleRate, 0, 9999, "192.168.7.1"); - - gInverseSampleRate = 1.0/context->audioSampleRate; - - gPhase1 = 0.0; - gPhase2 = 0.0; - - gFrequency1 = 200.0; - gFrequency2 = 201.0; - - return true; -} - -// render() is called regularly at the highest priority by the audio engine. -// Input and output are given from the audio hardware and the other -// ADCs and DACs (if available). If only audio is available, numMatrixFrames -// will be 0. - -void render(BeagleRTContext *context, void *userData) -{ - static int count=0; - if(count==0){ - printf("startHread\n"); - ReceiveAudioThread::startThread(); - } - for(unsigned int n = 0; n < context->audioFrames; n++) { - - float chn0 = sinf(gPhase1); - float chn1 = sinf(gPhase2); - - // float chn2 = context->audioIn[n*2 + 0]; - // float chn3 = context->audioIn[n*2 + 1]; - - // float chn4 = context->analogIn[(int)n/2*8 + 0]; - // float chn5 = context->analogIn[(int)n/2*8 + 1]; - scope.log(0, chn0); - scope.log(1, chn1); - // scope.log(2, chn2); - // scope.log(3, chn3); - // scope.log(4, chn4); - // scope.log(5, chn5); - -// scope.log(chn1, chn2, chn3, chn4, chn5, chn6); - //call this once every audio frame - //takes six or fewer floats as parameters - //first parameter becomes channel 1 etc - //to view, click the 'oscilloscope' button on the toolbar while BeagleRT is NOT running - //then click the big red button on the toolbar on this page - - gPhase1 += 2.0 * M_PI * gFrequency1 * gInverseSampleRate * ((count&4095)/4096.0+1); - gPhase2 += 2.0 * M_PI * gFrequency2 * gInverseSampleRate; - if(gPhase1 > 2.0 * M_PI) - gPhase1 -= 2.0 * M_PI; - if(gPhase2 > 2.0 * M_PI) - gPhase2 -= 2.0 * M_PI; - - } - if(count>0){ - int readPointer0=receiveAudio0.getSamplesSrc(context->audioOut, context->audioFrames, 1, 2, 0); - int readPointer1=receiveAudio1.getSamplesSrc(context->audioOut, context->audioFrames, 1, 2, 1); - } - count++; -} - -// cleanup_render() is called once at the end, after the audio has stopped. -// Release any resources that were allocated in initialise_render(). - -void cleanup(BeagleRTContext *context, void *userData) -{ - -}