Audio

Dependencies:   Lib_DFPlayerMini

Committer:
ackerden
Date:
Wed May 05 15:24:10 2021 +0000
Revision:
3:df913b0f0d54
Parent:
2:b25892ce36c5
Audio;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bluefish 0:6e015ec7e3a7 1 #ifndef __LIBRARY_DFPLAYER_MINI_H__
bluefish 0:6e015ec7e3a7 2 #define __LIBRARY_DFPLAYER_MINI_H__
bluefish 0:6e015ec7e3a7 3
bluefish 0:6e015ec7e3a7 4 #include "mbed.h"
ackerden 2:b25892ce36c5 5
bluefish 0:6e015ec7e3a7 6
bluefish 0:6e015ec7e3a7 7 #define DFPLAYER_STX (0x7E)
bluefish 0:6e015ec7e3a7 8 #define DFPLAYER_ETX (0xEF)
bluefish 0:6e015ec7e3a7 9 #define DFPLAYER_VER (0xFF)
bluefish 0:6e015ec7e3a7 10
bluefish 0:6e015ec7e3a7 11 // typedef definition
bluefish 0:6e015ec7e3a7 12 typedef enum _DFPLAYERMINICOM{
bluefish 0:6e015ec7e3a7 13 DFPLAYER_NEXT = 0x01,
bluefish 0:6e015ec7e3a7 14 DFPLAYER_PREV = 0x02,
bluefish 0:6e015ec7e3a7 15 DFPLAYER_NUM = 0x03,
bluefish 0:6e015ec7e3a7 16 DFPLAYER_VOL_PLUS = 0x04,
bluefish 0:6e015ec7e3a7 17 DFPLAYER_VOL_MINUS = 0x05,
bluefish 0:6e015ec7e3a7 18 DFPLAYER_VOL_SET = 0x06,
bluefish 0:6e015ec7e3a7 19 DFPLAYER_EQ = 0x07,
bluefish 0:6e015ec7e3a7 20 DFPLAYER_PLAYBACKMODE = 0x08,
bluefish 0:6e015ec7e3a7 21 DFPLAYER_PLAYBACKSOURCE = 0x09,
bluefish 0:6e015ec7e3a7 22 DFPLAYER_STANDBY = 0x0A,
bluefish 0:6e015ec7e3a7 23 DFPLAYER_NORMAL = 0x0B,
bluefish 0:6e015ec7e3a7 24 DFPLAYER_RESET = 0x0C,
bluefish 0:6e015ec7e3a7 25 DFPLAYER_PLAYBACK = 0x0D,
bluefish 0:6e015ec7e3a7 26 DFPLAYER_PAUSE = 0x0E,
bluefish 0:6e015ec7e3a7 27 DFPLAYER_PLAYBACKFOLDER = 0x0F,
bluefish 0:6e015ec7e3a7 28 DFPLAYER_VOLADJUSTSET = 0x10,
bluefish 0:6e015ec7e3a7 29 DFPLAYER_REPEATPLAY = 0x11,
bluefish 0:6e015ec7e3a7 30 DFPLAYER_STAY1 = 0x3C,
bluefish 0:6e015ec7e3a7 31 DFPLAYER_STAY2 = 0x3D,
bluefish 0:6e015ec7e3a7 32 DFPLAYER_STAY3 = 0x3E,
bluefish 0:6e015ec7e3a7 33 DFPLAYER_INITIALIZE = 0x3F,
bluefish 0:6e015ec7e3a7 34 DFPLAYER_ERROR = 0x40,
bluefish 0:6e015ec7e3a7 35 DFPLAYER_REPLY = 0x41,
bluefish 0:6e015ec7e3a7 36 DFPLAYER_CSTATUS = 0x42,
bluefish 0:6e015ec7e3a7 37 DFPLAYER_CVOLUME = 0x43,
bluefish 0:6e015ec7e3a7 38 DFPLAYER_CEQ = 0x44,
bluefish 0:6e015ec7e3a7 39 DFPLAYER_CPLAYBACKMODE = 0x45,
bluefish 0:6e015ec7e3a7 40 DFPLAYER_VERSION = 0x46,
bluefish 0:6e015ec7e3a7 41 DFPLAYER_TFFILES = 0x47,
bluefish 0:6e015ec7e3a7 42 DFPLAYER_UDISKFILES = 0x48,
bluefish 0:6e015ec7e3a7 43 DFPLAYER_FLASHFILES = 0x49,
bluefish 0:6e015ec7e3a7 44 DFPLAYER_KEEPON = 0x4A,
bluefish 0:6e015ec7e3a7 45 DFPLAYER_CTFTRACK = 0x4B,
bluefish 0:6e015ec7e3a7 46 DFPLAYER_CUDISKTRACK = 0x4C,
bluefish 0:6e015ec7e3a7 47 DFPLAYER_CFLASHTRACK = 0x4D
bluefish 0:6e015ec7e3a7 48 } DFPLAYERMINICOM;
bluefish 0:6e015ec7e3a7 49
bluefish 0:6e015ec7e3a7 50 typedef void (*BUSYFUNCPTR)(void);
bluefish 0:6e015ec7e3a7 51
bluefish 0:6e015ec7e3a7 52 class DFPlayerMini{
bluefish 0:6e015ec7e3a7 53 public:
bluefish 0:6e015ec7e3a7 54 DFPlayerMini( PinName busy, PinName tx, PinName rx ); // constructor
bluefish 0:6e015ec7e3a7 55 ~DFPlayerMini(); // destructor
bluefish 0:6e015ec7e3a7 56
bluefish 0:6e015ec7e3a7 57 void begin();
bluefish 0:6e015ec7e3a7 58 void attachBusyInterrupt( BUSYFUNCPTR func );
bluefish 0:6e015ec7e3a7 59 void playNext();
bluefish 0:6e015ec7e3a7 60 void playPrev();
bluefish 0:6e015ec7e3a7 61 void playNumber( uint16_t num );
bluefish 0:6e015ec7e3a7 62 void playFolder( uint8_t folder, uint8_t num );
bluefish 0:6e015ec7e3a7 63 void volumePlus();
bluefish 0:6e015ec7e3a7 64 void volumeMinus();
bluefish 0:6e015ec7e3a7 65 void volumeSet( uint8_t vol );
bluefish 0:6e015ec7e3a7 66
bluefish 0:6e015ec7e3a7 67 private:
bluefish 0:6e015ec7e3a7 68 InterruptIn _busy;
ackerden 2:b25892ce36c5 69 BufferedSerial _serial;
bluefish 0:6e015ec7e3a7 70 BUSYFUNCPTR _func;
bluefish 0:6e015ec7e3a7 71
bluefish 0:6e015ec7e3a7 72 void _send_command( DFPLAYERMINICOM com, uint8_t param1, uint8_t param2 );
bluefish 0:6e015ec7e3a7 73 };
bluefish 0:6e015ec7e3a7 74
bluefish 0:6e015ec7e3a7 75 #endif