diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-08-02 11:43:16 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-08-02 11:43:16 +0000 |
commit | bbf89d81fa225fedc5ab1190ebfa8c775612178c (patch) | |
tree | d6fe5c475942400dc8076840a8a13424722d170b | |
parent | c5eeedd522c12c8b4996594f3c4167393d0af7ff (diff) | |
download | lufa-bbf89d81fa225fedc5ab1190ebfa8c775612178c.tar.gz lufa-bbf89d81fa225fedc5ab1190ebfa8c775612178c.tar.bz2 lufa-bbf89d81fa225fedc5ab1190ebfa8c775612178c.zip |
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.
-rw-r--r-- | Demos/Device/ClassDriver/AudioOutput/AudioOutput.c | 20 | ||||
-rw-r--r-- | Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt | 15 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioOutput/AudioOutput.c | 20 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioOutput/AudioOutput.txt | 15 |
4 files changed, 28 insertions, 42 deletions
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c index 2caf6faa6..9a8804a45 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c @@ -103,10 +103,11 @@ void ProcessNextSample(void) int8_t LeftSample_8Bit = (LeftSample_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 */
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)
/* Load the sample into the PWM timer channel */
@@ -118,26 +119,23 @@ void ProcessNextSample(void) #elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit;
-#else
- uint8_t LEDMask = LEDS_NO_LEDS;
+#endif
- /* Make mixed sample value positive (absolute) */
- MixedSample_8Bit = abs(MixedSample_8Bit);
+ uint8_t LEDMask = LEDS_NO_LEDS;
- if (MixedSample_8Bit > 2)
+ if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1;
- if (MixedSample_8Bit > 4)
+ if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2;
- if (MixedSample_8Bit > 8)
+ if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3;
- if (MixedSample_8Bit > 16)
+ if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask);
-#endif
}
}
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt index ffae9ed57..96d241c57 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt @@ -53,11 +53,11 @@ * required).
*
* On start-up the system will automatically enumerate and function
- * as a USB speaker. Incoming audio will output in 8-bit PWM onto
- * the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for
- * the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO
- * mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs
- * for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and
+ * as a USB speaker. Outgoing audio will output in 8-bit PWM onto
+ * the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
+ * timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
+ * mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
+ * the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio.
*
* Under Windows, if a driver request dialogue pops up, select the option
@@ -84,11 +84,6 @@ * <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </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>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c index 352d07482..7dde84bb3 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c @@ -210,10 +210,11 @@ void USB_Audio_Task(void) int8_t LeftSample_8Bit = (LeftSample_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 */
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)
/* Load the sample into the PWM timer channel */
@@ -225,25 +226,22 @@ void USB_Audio_Task(void) #elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit;
-#else
- uint8_t LEDMask = LEDS_NO_LEDS;
+#endif
- /* Make mixed sample value positive (absolute) */
- MixedSample_8Bit = abs(MixedSample_8Bit);
+ uint8_t LEDMask = LEDS_NO_LEDS;
- if (MixedSample_8Bit > 2)
+ if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1;
- if (MixedSample_8Bit > 4)
+ if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2;
- if (MixedSample_8Bit > 8)
+ if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3;
- if (MixedSample_8Bit > 16)
+ if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask);
-#endif
}
}
diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt b/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt index ffae9ed57..96d241c57 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt @@ -53,11 +53,11 @@ * required).
*
* On start-up the system will automatically enumerate and function
- * as a USB speaker. Incoming audio will output in 8-bit PWM onto
- * the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for
- * the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO
- * mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs
- * for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and
+ * as a USB speaker. Outgoing audio will output in 8-bit PWM onto
+ * the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
+ * timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
+ * mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
+ * the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio.
*
* Under Windows, if a driver request dialogue pops up, select the option
@@ -84,11 +84,6 @@ * <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </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>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
|