Commit bbf89d81 authored by Dean Camera's avatar Dean Camera
Browse files

Make both LowLevel and ClassDriver AudioOutput demos always output to board...

Make both LowLevel and ClassDriver AudioOutput demos always output to board LEDs, regardless of output mode (removed AUDIO_OUT_LEDS compile time option from the demo). This allows for positive feedback to the user of audio activity regardless of output mode.
parent c5eeedd5
...@@ -103,10 +103,11 @@ void ProcessNextSample(void) ...@@ -103,10 +103,11 @@ void ProcessNextSample(void)
int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8); int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8);
int8_t RightSample_8Bit = (RightSample_16Bit >> 8); int8_t RightSample_8Bit = (RightSample_16Bit >> 8);
#if !defined(AUDIO_OUT_STEREO)
/* Mix the two channels together to produce a mono, 8-bit sample */ /* Mix the two channels together to produce a mono, 8-bit sample */
int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1); int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);
#endif
/* Get absolute value of mixed sample value */
uint8_t MixedSample_8Bit_Abs = abs(MixedSample_8Bit);
#if defined(AUDIO_OUT_MONO) #if defined(AUDIO_OUT_MONO)
/* Load the sample into the PWM timer channel */ /* Load the sample into the PWM timer channel */
...@@ -118,26 +119,23 @@ void ProcessNextSample(void) ...@@ -118,26 +119,23 @@ void ProcessNextSample(void)
#elif defined(AUDIO_OUT_PORTC) #elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */ /* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit; PORTC = MixedSample_8Bit;
#else #endif
uint8_t LEDMask = LEDS_NO_LEDS;
/* Make mixed sample value positive (absolute) */ uint8_t LEDMask = LEDS_NO_LEDS;
MixedSample_8Bit = abs(MixedSample_8Bit);
if (MixedSample_8Bit > 2) if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1; LEDMask |= LEDS_LED1;
if (MixedSample_8Bit > 4) if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2; LEDMask |= LEDS_LED2;
if (MixedSample_8Bit > 8) if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3; LEDMask |= LEDS_LED3;
if (MixedSample_8Bit > 16) if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4; LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask); LEDs_SetAllLEDs(LEDMask);
#endif
} }
} }
......
...@@ -53,11 +53,11 @@ ...@@ -53,11 +53,11 @@
* required). * required).
* *
* On start-up the system will automatically enumerate and function * On start-up the system will automatically enumerate and function
* as a USB speaker. Incoming audio will output in 8-bit PWM onto * as a USB speaker. Outgoing audio will output in 8-bit PWM onto
* the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for * the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
* the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO * timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
* mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs * mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
* for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and * the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio. * attach to a speaker to hear the audio.
* *
* Under Windows, if a driver request dialogue pops up, select the option * Under Windows, if a driver request dialogue pops up, select the option
...@@ -84,11 +84,6 @@ ...@@ -84,11 +84,6 @@
* <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td> * <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </tr> * </tr>
* <tr> * <tr>
* <td>AUDIO_OUT_LEDS</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in stereo to the board LEDs.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_PORTC</td> * <td>AUDIO_OUT_PORTC</td>
* <td>Makefile CDEFS</td> * <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an * <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
......
...@@ -210,10 +210,11 @@ void USB_Audio_Task(void) ...@@ -210,10 +210,11 @@ void USB_Audio_Task(void)
int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8); int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8);
int8_t RightSample_8Bit = (RightSample_16Bit >> 8); int8_t RightSample_8Bit = (RightSample_16Bit >> 8);
#if !defined(AUDIO_OUT_STEREO)
/* Mix the two channels together to produce a mono, 8-bit sample */ /* Mix the two channels together to produce a mono, 8-bit sample */
int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1); int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);
#endif
/* Get absolute value of mixed sample value */
uint8_t MixedSample_8Bit_Abs = abs(MixedSample_8Bit);
#if defined(AUDIO_OUT_MONO) #if defined(AUDIO_OUT_MONO)
/* Load the sample into the PWM timer channel */ /* Load the sample into the PWM timer channel */
...@@ -225,25 +226,22 @@ void USB_Audio_Task(void) ...@@ -225,25 +226,22 @@ void USB_Audio_Task(void)
#elif defined(AUDIO_OUT_PORTC) #elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */ /* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit; PORTC = MixedSample_8Bit;
#else #endif
uint8_t LEDMask = LEDS_NO_LEDS;
/* Make mixed sample value positive (absolute) */ uint8_t LEDMask = LEDS_NO_LEDS;
MixedSample_8Bit = abs(MixedSample_8Bit);
if (MixedSample_8Bit > 2) if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1; LEDMask |= LEDS_LED1;
if (MixedSample_8Bit > 4) if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2; LEDMask |= LEDS_LED2;
if (MixedSample_8Bit > 8) if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3; LEDMask |= LEDS_LED3;
if (MixedSample_8Bit > 16) if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4; LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask); LEDs_SetAllLEDs(LEDMask);
#endif
} }
} }
...@@ -53,11 +53,11 @@ ...@@ -53,11 +53,11 @@
* required). * required).
* *
* On start-up the system will automatically enumerate and function * On start-up the system will automatically enumerate and function
* as a USB speaker. Incoming audio will output in 8-bit PWM onto * as a USB speaker. Outgoing audio will output in 8-bit PWM onto
* the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for * the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
* the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO * timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
* mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs * mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
* for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and * the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio. * attach to a speaker to hear the audio.
* *
* Under Windows, if a driver request dialogue pops up, select the option * Under Windows, if a driver request dialogue pops up, select the option
...@@ -84,11 +84,6 @@ ...@@ -84,11 +84,6 @@
* <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td> * <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </tr> * </tr>
* <tr> * <tr>
* <td>AUDIO_OUT_LEDS</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in stereo to the board LEDs.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_PORTC</td> * <td>AUDIO_OUT_PORTC</td>
* <td>Makefile CDEFS</td> * <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an * <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment