|
-
-
- #ifndef audio_spi_interrupt_h_
- #define audio_spi_interrupt_h_
-
- #include "Arduino.h"
- #include "AudioStream.h"
- #include "SPI.h"
-
- static inline void AudioStartUsingSPI(void) __attribute__((always_inline, unused));
- static inline void AudioStopUsingSPI(void) __attribute__((always_inline, unused));
-
- #ifdef SPI_HAS_NOTUSINGINTERRUPT
-
- extern unsigned short AudioUsingSPICount;
-
- static inline void AudioStartUsingSPI(void) {
- SPI.usingInterrupt(IRQ_SOFTWARE);
- AudioUsingSPICount++;
- }
-
- static inline void AudioStopUsingSPI(void) {
- if (AudioUsingSPICount == 0 || --AudioUsingSPICount == 0)
- SPI.notUsingInterrupt(IRQ_SOFTWARE);
- }
-
- #else
-
- static inline void AudioStartUsingSPI(void) {
- SPI.usingInterrupt(IRQ_SOFTWARE);
- }
-
- static inline void AudioStopUsingSPI(void) {
- }
-
- #endif
-
- #endif
|