Mercurial > hg > beaglert
annotate include/RTAudio.h @ 3:6810f166482f
_new IIR filter example
author | Victor Zappi <victor.zappi@qmul.ac.uk> |
---|---|
date | Thu, 06 Nov 2014 17:55:05 +0000 |
parents | 8a575ba3ab52 |
children | 09f03ac40fcc |
rev | line source |
---|---|
andrewm@0 | 1 /* |
andrewm@0 | 2 * RTAudio.h |
andrewm@0 | 3 * |
andrewm@0 | 4 * Central control code for hard real-time audio on BeagleBone Black |
andrewm@0 | 5 * using PRU and Xenomai Linux extensions. This code began as part |
andrewm@0 | 6 * of the Hackable Instruments project (EPSRC) at Queen Mary University |
andrewm@0 | 7 * of London, 2013-14. |
andrewm@0 | 8 * |
andrewm@0 | 9 * (c) 2014 Victor Zappi and Andrew McPherson |
andrewm@0 | 10 * Queen Mary University of London |
andrewm@0 | 11 */ |
andrewm@0 | 12 |
andrewm@0 | 13 |
andrewm@0 | 14 #ifndef RTAUDIO_H_ |
andrewm@0 | 15 #define RTAUDIO_H_ |
andrewm@0 | 16 |
andrewm@0 | 17 #include "render.h" |
andrewm@0 | 18 |
andrewm@0 | 19 // Useful constants |
andrewm@0 | 20 #define DBOX_CAPE // New custom cape |
andrewm@0 | 21 |
andrewm@0 | 22 #ifdef DBOX_CAPE |
andrewm@0 | 23 #define CODEC_I2C_ADDRESS 0x18 // Address of TLV320AIC3104 codec |
andrewm@0 | 24 #else |
andrewm@0 | 25 #define CODEC_I2C_ADDRESS 0x1B // Address of TLV320AIC3106 codec |
andrewm@0 | 26 #endif |
andrewm@0 | 27 |
andrewm@0 | 28 enum { |
andrewm@0 | 29 kAmplifierMutePin = 61 // P8-26 controls amplifier mute |
andrewm@0 | 30 }; |
andrewm@0 | 31 |
andrewm@0 | 32 typedef void* AuxiliaryTask; // Opaque data type to keep track of aux tasks |
andrewm@0 | 33 |
andrewm@0 | 34 // Flag that indicates when the audio will stop; can be read or |
andrewm@0 | 35 // set by other components which should end at the same time as the audio |
andrewm@0 | 36 extern bool gShouldStop; |
andrewm@0 | 37 |
andrewm@0 | 38 int initAudio(int periodSize, int useMatrix, void *userData, |
andrewm@0 | 39 int codecI2CAddress = CODEC_I2C_ADDRESS, int ampMutePin = kAmplifierMutePin); |
andrewm@0 | 40 int startAudio(); |
andrewm@0 | 41 void stopAudio(); |
andrewm@0 | 42 void cleanupAudio(); |
andrewm@0 | 43 |
andrewm@0 | 44 AuxiliaryTask createAuxiliaryTaskLoop(void (*functionToCall)(void), int priority, const char *name); |
andrewm@0 | 45 void scheduleAuxiliaryTask(AuxiliaryTask task); |
andrewm@0 | 46 |
andrewm@0 | 47 void setVerboseLevel(int level); |
andrewm@0 | 48 |
andrewm@0 | 49 #endif /* RTAUDIO_H_ */ |