USB device stack, with KL25Z fixes for USB 3.0 hosts and sleep/resume interrupt handling
Dependents: frdm_Slider_Keyboard idd_hw2_figlax_PanType idd_hw2_appachu_finger_chording idd_hw3_AngieWangAntonioDeLimaFernandesDanielLim_BladeSymphony ... more
Fork of USBDevice by
USBAudio Class Reference
#include <USBAudio.h>
Inherits USBDevice.
Public Member Functions | |
USBAudio (uint32_t frequency_in=48000, uint8_t channel_nb_in=1, uint32_t frequency_out=8000, uint8_t channel_nb_out=1, uint16_t vendor_id=0x7bb8, uint16_t product_id=0x1111, uint16_t product_release=0x0100) | |
Constructor. | |
float | getVolume () |
Get current volume between 0.0 and 1.0. | |
bool | read (uint8_t *buf) |
Read an audio packet. | |
bool | readNB (uint8_t *buf) |
Try to read an audio packet. | |
bool | write (uint8_t *buf) |
Write an audio packet. | |
bool | readWrite (uint8_t *buf_read, uint8_t *buf_write) |
Write and read an audio packet at the same time (on the same frame) | |
void | attach (void(*fptr)(void)) |
attach a handler to update the volume | |
template<typename T > | |
void | attach (T *tptr, void(T::*mptr)(void)) |
Attach a nonstatic void/void member function to update the volume. | |
bool | writeTO (uint8_t endpoint, uint8_t *buffer, uint32_t size, uint32_t maxSize, int timeout_ms) |
Write a certain endpoint. |
Detailed Description
USBAudio example.
#include "mbed.h" #include "USBAudio.h" Serial pc(USBTX, USBRX); // frequency: 48 kHz #define FREQ 48000 // 1 channel: mono #define NB_CHA 1 // length of an audio packet: each ms, we receive 48 * 16bits ->48 * 2 bytes. as there is one channel, the length will be 48 * 2 * 1 #define AUDIO_LENGTH_PACKET 48 * 2 * 1 // USBAudio USBAudio audio(FREQ, NB_CHA); int main() { int16_t buf[AUDIO_LENGTH_PACKET/2]; while (1) { // read an audio packet audio.read((uint8_t *)buf); // print packet received pc.printf("recv: "); for(int i = 0; i < AUDIO_LENGTH_PACKET/2; i++) { pc.printf("%d ", buf[i]); } pc.printf("\r\n"); } }
Definition at line 69 of file USBAudio.h.
Constructor & Destructor Documentation
USBAudio | ( | uint32_t | frequency_in = 48000 , |
uint8_t | channel_nb_in = 1 , |
||
uint32_t | frequency_out = 8000 , |
||
uint8_t | channel_nb_out = 1 , |
||
uint16_t | vendor_id = 0x7bb8 , |
||
uint16_t | product_id = 0x1111 , |
||
uint16_t | product_release = 0x0100 |
||
) |
Constructor.
- Parameters:
-
frequency_in frequency in Hz (default: 48000) channel_nb_in channel number (1 or 2) (default: 1) frequency_out frequency in Hz (default: 8000) channel_nb_out_in channel number (1 or 2) (default: 1) vendor_id Your vendor_id product_id Your product_id product_release Your preoduct_release
Definition at line 25 of file USBAudio.cpp.
Member Function Documentation
void attach | ( | void(*)(void) | fptr ) |
attach a handler to update the volume
- Parameters:
-
function Function to attach
Definition at line 133 of file USBAudio.h.
void attach | ( | T * | tptr, |
void(T::*)(void) | mptr | ||
) |
Attach a nonstatic void/void member function to update the volume.
- Parameters:
-
tptr Object pointer mptr Member function pointer
Definition at line 144 of file USBAudio.h.
float getVolume | ( | ) |
bool read | ( | uint8_t * | buf ) |
Read an audio packet.
During a frame, only a single reading (you can't write and read an audio packet during the same frame)can be done using this method. Warning: Blocking
- Parameters:
-
buf pointer on a buffer which will be filled with an audio packet
- Returns:
- true if successfull
Definition at line 63 of file USBAudio.cpp.
bool readNB | ( | uint8_t * | buf ) |
Try to read an audio packet.
During a frame, only a single reading (you can't write and read an audio packet during the same frame)can be done using this method. Warning: Non Blocking
- Parameters:
-
buf pointer on a buffer which will be filled if an audio packet is available
- Returns:
- true if successfull
Definition at line 71 of file USBAudio.cpp.
bool readWrite | ( | uint8_t * | buf_read, |
uint8_t * | buf_write | ||
) |
Write and read an audio packet at the same time (on the same frame)
- Parameters:
-
buf_read pointer on a buffer which will be filled with an audio packet buf_write pointer on the audio packet which will be sent
- Returns:
- true if successful
Definition at line 83 of file USBAudio.cpp.
bool write | ( | uint8_t * | buf ) |
Write an audio packet.
During a frame, only a single writing (you can't write and read an audio packet during the same frame)can be done using this method.
- Parameters:
-
buf pointer on the audio packet which will be sent
- Returns:
- true if successful
Definition at line 101 of file USBAudio.cpp.
bool writeTO | ( | uint8_t | endpoint, |
uint8_t * | buffer, | ||
uint32_t | size, | ||
uint32_t | maxSize, | ||
int | timeout_ms | ||
) | [inherited] |
Write a certain endpoint.
Blocks until the report has been sent successfully, or until the timeout expires, whichever comes first.
- Parameters:
-
endpoint endpoint to write buffer data contained in buffer will be write size the number of bytes to write maxSize the maximum length that can be written on this endpoint timeout_ms timeout in milliseconds
- Returns:
- true if successful, false on error or timeout
Definition at line 928 of file USBDevice.cpp.
Generated on Tue Jul 12 2022 18:05:22 by 1.7.2