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_ */