comparison core/RTAudio.cpp @ 307:ff5f346a293e prerelease

Changed BelaContext fields to be const where appropriate; there's now an InternalBelaContext used for setting the values within the core code. These need to stay aligned.
author andrewm
date Fri, 27 May 2016 18:12:15 +0100
parents 421a69d42943
children 3bed6b09223c
comparison
equal deleted inserted replaced
306:132fc61893af 307:ff5f346a293e
49 bool hasArgs; 49 bool hasArgs;
50 void* args; 50 void* args;
51 bool autoSchedule; 51 bool autoSchedule;
52 } InternalAuxiliaryTask; 52 } InternalAuxiliaryTask;
53 53
54 const char gRTAudioThreadName[] = "bela-audio";
55 const char gRTAudioInterruptName[] = "bela-pru-irq";
56
57 // Real-time tasks and objects 54 // Real-time tasks and objects
58 RT_TASK gRTAudioThread; 55 RT_TASK gRTAudioThread;
56 const char gRTAudioThreadName[] = "bela-audio";
57
59 #ifdef BELA_USE_XENOMAI_INTERRUPTS 58 #ifdef BELA_USE_XENOMAI_INTERRUPTS
60 RT_INTR gRTAudioInterrupt; 59 RT_INTR gRTAudioInterrupt;
60 const char gRTAudioInterruptName[] = "bela-pru-irq";
61 #endif 61 #endif
62
62 PRU *gPRU = 0; 63 PRU *gPRU = 0;
63 I2c_Codec *gAudioCodec = 0; 64 I2c_Codec *gAudioCodec = 0;
64 65
65 vector<InternalAuxiliaryTask*> &getAuxTasks(){ 66 vector<InternalAuxiliaryTask*> &getAuxTasks(){
66 static vector<InternalAuxiliaryTask*> auxTasks; 67 static vector<InternalAuxiliaryTask*> auxTasks;
75 int gRTAudioVerbose = 0; // Verbosity level for debugging 76 int gRTAudioVerbose = 0; // Verbosity level for debugging
76 int gAmplifierMutePin = -1; 77 int gAmplifierMutePin = -1;
77 int gAmplifierShouldBeginMuted = 0; 78 int gAmplifierShouldBeginMuted = 0;
78 79
79 // Context which holds all the audio/sensor data passed to the render routines 80 // Context which holds all the audio/sensor data passed to the render routines
80 BelaContext gContext; 81 InternalBelaContext gContext;
81 82
82 // User data passed in from main() 83 // User data passed in from main()
83 void *gUserData; 84 void *gUserData;
84 85
85 // initAudio() prepares the infrastructure for running PRU-based real-time 86 // initAudio() prepares the infrastructure for running PRU-based real-time
242 Bela_setPgaGain(settings->pgaGain[n], n); 243 Bela_setPgaGain(settings->pgaGain[n], n);
243 } 244 }
244 Bela_setHeadphoneLevel(settings->headphoneLevel); 245 Bela_setHeadphoneLevel(settings->headphoneLevel);
245 246
246 // Call the user-defined initialisation function 247 // Call the user-defined initialisation function
247 if(!setup(&gContext, userData)) { 248 if(!setup((BelaContext *)&gContext, userData)) {
248 cout << "Couldn't initialise audio rendering\n"; 249 cout << "Couldn't initialise audio rendering\n";
249 return 1; 250 return 1;
250 } 251 }
251 252
252 return 0; 253 return 0;
483 } 484 }
484 485
485 // Free any resources associated with PRU real-time audio 486 // Free any resources associated with PRU real-time audio
486 void Bela_cleanupAudio() 487 void Bela_cleanupAudio()
487 { 488 {
488 cleanup(&gContext, gUserData); 489 cleanup((BelaContext *)&gContext, gUserData);
489 490
490 // Clean up the auxiliary tasks 491 // Clean up the auxiliary tasks
491 vector<InternalAuxiliaryTask*>::iterator it; 492 vector<InternalAuxiliaryTask*>::iterator it;
492 for(it = getAuxTasks().begin(); it != getAuxTasks().end(); it++) { 493 for(it = getAuxTasks().begin(); it != getAuxTasks().end(); it++) {
493 InternalAuxiliaryTask *taskStruct = *it; 494 InternalAuxiliaryTask *taskStruct = *it;