AP mode
Dependencies: NetworkSocketAPI WizFi310Interface mbed
Fork of WizFi310_TCP_Echo_Server_Example by
VS1053.h@8:e26236864101, 2017-10-03 (annotated)
- Committer:
- maru536
- Date:
- Tue Oct 03 05:38:58 2017 +0000
- Revision:
- 8:e26236864101
- Parent:
- 2:8d119e9b8f5a
comp
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maru536 | 2:8d119e9b8f5a | 1 | /** |
maru536 | 2:8d119e9b8f5a | 2 | * ==================================================== Dec 21 2013, kayeks == |
maru536 | 2:8d119e9b8f5a | 3 | * VS1053.cpp |
maru536 | 2:8d119e9b8f5a | 4 | * =========================================================================== |
maru536 | 2:8d119e9b8f5a | 5 | * Just a simple library for VLSI's mp3/midi codec chip |
maru536 | 2:8d119e9b8f5a | 6 | * - Minimal and simple implementation (and dirty too) |
maru536 | 2:8d119e9b8f5a | 7 | * |
maru536 | 2:8d119e9b8f5a | 8 | * Modified on 05 September 2015 by Vassilis Serasidis. |
maru536 | 2:8d119e9b8f5a | 9 | * - Added a patch for playing MP3 files on some "LC Technology" VS1053 boards. |
maru536 | 2:8d119e9b8f5a | 10 | * |
maru536 | 2:8d119e9b8f5a | 11 | * |
maru536 | 2:8d119e9b8f5a | 12 | */ |
maru536 | 2:8d119e9b8f5a | 13 | |
maru536 | 2:8d119e9b8f5a | 14 | #ifndef KAYX_VS1053_H_ |
maru536 | 2:8d119e9b8f5a | 15 | #define KAYX_VS1053_H_ |
maru536 | 2:8d119e9b8f5a | 16 | |
maru536 | 2:8d119e9b8f5a | 17 | #include "TCPSocket.h" |
maru536 | 2:8d119e9b8f5a | 18 | |
maru536 | 2:8d119e9b8f5a | 19 | /** Class VS1053. Drives VLSI's mp3/midi codec chip. */ |
maru536 | 2:8d119e9b8f5a | 20 | class VS1053 { |
maru536 | 2:8d119e9b8f5a | 21 | private: |
maru536 | 2:8d119e9b8f5a | 22 | SPI spi; |
maru536 | 2:8d119e9b8f5a | 23 | DigitalOut cs; |
maru536 | 2:8d119e9b8f5a | 24 | DigitalOut bsync; //dcs pin |
maru536 | 2:8d119e9b8f5a | 25 | DigitalIn dreq; |
maru536 | 2:8d119e9b8f5a | 26 | DigitalOut rst; |
maru536 | 2:8d119e9b8f5a | 27 | |
maru536 | 2:8d119e9b8f5a | 28 | public: |
maru536 | 2:8d119e9b8f5a | 29 | static const uint8_t SCI_MODE = 0x00; |
maru536 | 2:8d119e9b8f5a | 30 | static const uint8_t SCI_STATUS = 0x01; |
maru536 | 2:8d119e9b8f5a | 31 | static const uint8_t SCI_BASS = 0x02; |
maru536 | 2:8d119e9b8f5a | 32 | static const uint8_t SCI_CLOCKF = 0x03; |
maru536 | 2:8d119e9b8f5a | 33 | static const uint8_t SCI_DECODE_TIME = 0x04; |
maru536 | 2:8d119e9b8f5a | 34 | static const uint8_t SCI_AUDATA = 0x05; |
maru536 | 2:8d119e9b8f5a | 35 | static const uint8_t SCI_WRAM = 0x06; |
maru536 | 2:8d119e9b8f5a | 36 | static const uint8_t SCI_WRAMADDR = 0x07; |
maru536 | 2:8d119e9b8f5a | 37 | static const uint8_t SCI_HDAT0 = 0x08; |
maru536 | 2:8d119e9b8f5a | 38 | static const uint8_t SCI_HDAT1 = 0x09; |
maru536 | 2:8d119e9b8f5a | 39 | static const uint8_t SCI_AIADDR = 0x0a; |
maru536 | 2:8d119e9b8f5a | 40 | static const uint8_t SCI_VOL = 0x0b; |
maru536 | 2:8d119e9b8f5a | 41 | static const uint8_t SCI_AICTRL0 = 0x0c; |
maru536 | 2:8d119e9b8f5a | 42 | static const uint8_t SCI_AICTRL1 = 0x0d; |
maru536 | 2:8d119e9b8f5a | 43 | static const uint8_t SCI_AICTRL2 = 0x0e; |
maru536 | 2:8d119e9b8f5a | 44 | static const uint8_t SCI_AICTRL3 = 0x0f; |
maru536 | 2:8d119e9b8f5a | 45 | |
maru536 | 2:8d119e9b8f5a | 46 | static const uint8_t SM_RESET = 2; |
maru536 | 2:8d119e9b8f5a | 47 | static const uint8_t SM_SDINEW = 11; |
maru536 | 2:8d119e9b8f5a | 48 | |
maru536 | 2:8d119e9b8f5a | 49 | VS1053(PinName mosiPin, PinName misoPin, PinName sckPin, |
maru536 | 2:8d119e9b8f5a | 50 | PinName csPin, PinName bsyncPin, PinName dreqPin, PinName rstPin, |
maru536 | 2:8d119e9b8f5a | 51 | uint32_t spiFrequency=1000000); |
maru536 | 2:8d119e9b8f5a | 52 | ~VS1053(); |
maru536 | 2:8d119e9b8f5a | 53 | void hardwareReset(); |
maru536 | 2:8d119e9b8f5a | 54 | void modeSwitch(void); |
maru536 | 2:8d119e9b8f5a | 55 | void sendDataByte(uint8_t data); |
maru536 | 2:8d119e9b8f5a | 56 | size_t sendDataBlock(unsigned char* data, size_t length); |
maru536 | 2:8d119e9b8f5a | 57 | size_t sendDataBlock(TCPSocket* socket, int content_length); |
maru536 | 2:8d119e9b8f5a | 58 | void clockUp(); |
maru536 | 2:8d119e9b8f5a | 59 | bool sendCancel(); |
maru536 | 2:8d119e9b8f5a | 60 | bool stop(); |
maru536 | 2:8d119e9b8f5a | 61 | void setVolume(uint8_t vol); |
maru536 | 2:8d119e9b8f5a | 62 | |
maru536 | 2:8d119e9b8f5a | 63 | private: |
maru536 | 2:8d119e9b8f5a | 64 | void writeReg(uint8_t, uint16_t); |
maru536 | 2:8d119e9b8f5a | 65 | uint16_t readReg(uint8_t); |
maru536 | 2:8d119e9b8f5a | 66 | }; |
maru536 | 2:8d119e9b8f5a | 67 | |
maru536 | 2:8d119e9b8f5a | 68 | #endif |