Mercurial > hg > beaglert
comparison core/RTAudio.cpp @ 280:c55c6f6c233c prerelease
Added support for multiplexer capelet and command-line support for choosing PRU
| author | andrewm | 
|---|---|
| date | Tue, 17 May 2016 17:49:23 +0100 | 
| parents | 88cf310417cd | 
| children | e4392164b458 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 278:3c3d042dad12 | 280:c55c6f6c233c | 
|---|---|
| 96 // | 96 // | 
| 97 // Returns 0 on success. | 97 // Returns 0 on success. | 
| 98 | 98 | 
| 99 int BeagleRT_initAudio(BeagleRTInitSettings *settings, void *userData) | 99 int BeagleRT_initAudio(BeagleRTInitSettings *settings, void *userData) | 
| 100 { | 100 { | 
| 101 // Sanity checks | |
| 102 if(settings->pruNumber < 0 || settings->pruNumber > 1) { | |
| 103 cout << "Invalid PRU number " << settings->pruNumber << endl; | |
| 104 return -1; | |
| 105 } | |
| 106 if(settings->pruNumber != 1 && settings->numMuxChannels != 0) { | |
| 107 cout << "Incompatible settings: multiplexer can only be run using PRU 1\n"; | |
| 108 return -1; | |
| 109 } | |
| 110 | |
| 101 rt_print_auto_init(1); | 111 rt_print_auto_init(1); | 
| 102 | 112 | 
| 103 BeagleRT_setVerboseLevel(settings->verbose); | 113 BeagleRT_setVerboseLevel(settings->verbose); | 
| 104 strncpy(gPRUFilename, settings->pruFilename, MAX_PRU_FILENAME_LENGTH); | 114 strncpy(gPRUFilename, settings->pruFilename, MAX_PRU_FILENAME_LENGTH); | 
| 105 gUserData = userData; | 115 gUserData = userData; | 
| 200 // Initialise the GPIO pins, including possibly the digital pins in the render routines | 210 // Initialise the GPIO pins, including possibly the digital pins in the render routines | 
| 201 if(gPRU->prepareGPIO(1, 1)) { | 211 if(gPRU->prepareGPIO(1, 1)) { | 
| 202 cout << "Error: unable to prepare GPIO for PRU audio\n"; | 212 cout << "Error: unable to prepare GPIO for PRU audio\n"; | 
| 203 return 1; | 213 return 1; | 
| 204 } | 214 } | 
| 205 | 215 | 
| 206 // Get the PRU memory buffers ready to go | 216 // Get the PRU memory buffers ready to go | 
| 207 if(gPRU->initialise(0, gContext.analogFrames, gContext.analogChannels, true)) { | 217 if(gPRU->initialise(settings->pruNumber, gContext.analogFrames, gContext.analogChannels, | 
| 218 settings->numMuxChannels, true)) { | |
| 208 cout << "Error: unable to initialise PRU\n"; | 219 cout << "Error: unable to initialise PRU\n"; | 
| 209 return 1; | 220 return 1; | 
| 210 } | 221 } | 
| 211 | 222 | 
| 212 // Prepare the audio codec, which clocks the whole system | 223 // Prepare the audio codec, which clocks the whole system | 
