1
Dependents: internet_radio_leo
Fork of VS1053 by
Diff: VS1053.h
- Revision:
- 0:708868399033
- Child:
- 1:00c19f771676
diff -r 000000000000 -r 708868399033 VS1053.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VS1053.h Fri Nov 08 10:41:54 2013 +0000 @@ -0,0 +1,52 @@ +// ==================================================== Nov 04 2013, kayeks == +// VS1053.h +// =========================================================================== +// Just a simple library for VLSI's mp3/midi codec chip +// - Minimal and simple implementation (and dirty too) + +#ifndef KAYX_VS1053_H_ +#define KAYX_VS1053_H_ + +class VS1053 { +private: + SPI spi; + DigitalOut cs; + DigitalOut bsync; + DigitalIn dreq; + DigitalOut rst; + +public: + static const uint8_t SCI_MODE = 0x00; + static const uint8_t SCI_STATUS = 0x01; + static const uint8_t SCI_BASS = 0x02; + static const uint8_t SCI_CLOCKF = 0x03; + static const uint8_t SCI_DECODE_TIME = 0x04; + static const uint8_t SCI_AUDATA = 0x05; + static const uint8_t SCI_WRAM = 0x06; + static const uint8_t SCI_WRAMADDR = 0x07; + static const uint8_t SCI_HDAT0 = 0x08; + static const uint8_t SCI_HDAT1 = 0x09; + static const uint8_t SCI_AIADDR = 0x0a; + static const uint8_t SCI_VOL = 0x0b; + static const uint8_t SCI_AICTRL0 = 0x0c; + static const uint8_t SCI_AICTRL1 = 0x0d; + static const uint8_t SCI_AICTRL2 = 0x0e; + static const uint8_t SCI_AICTRL3 = 0x0f; + + VS1053(PinName mosiPin, PinName misoPin, PinName sckPin, + PinName cs, PinName bsync, PinName dreq, PinName rstPin, + uint32_t spiFrequency=1000000); + ~VS1053(); + void hardwareReset(); + void sendDataByte(uint8_t); + size_t sendDataBlock(uint8_t*, size_t); + void clockUp(); + bool sendCancel(); + bool stop(); + +private: + void writeReg(uint8_t, uint16_t); + uint16_t readReg(uint8_t); +}; + +#endif