22 #include "FireTimer.h" 36 const uint8_t SB = 0x7E;
37 const uint8_t VER = 0xFF;
38 const uint8_t LEN = 0x6;
39 const uint8_t FEEDBACK = 1;
40 const uint8_t NO_FEEDBACK = 0;
41 const uint8_t EB = 0xEF;
45 const uint8_t PREV = 0x02;
46 const uint8_t PLAY = 0x03;
47 const uint8_t INC_VOL = 0x04;
48 const uint8_t DEC_VOL = 0x05;
49 const uint8_t VOLUME = 0x06;
50 const uint8_t EQ = 0x07;
51 const uint8_t PLAYBACK_MODE = 0x08;
52 const uint8_t PLAYBACK_SRC = 0x09;
53 const uint8_t STANDBY = 0x0A;
54 const uint8_t NORMAL = 0x0B;
55 const uint8_t RESET = 0x0C;
56 const uint8_t PLAYBACK = 0x0D;
57 const uint8_t PAUSE = 0x0E;
58 const uint8_t SPEC_FOLDER = 0x0F;
59 const uint8_t VOL_ADJ = 0x10;
60 const uint8_t REPEAT_PLAY = 0x11;
61 const uint8_t USE_MP3_FOLDER = 0x12;
62 const uint8_t INSERT_ADVERT = 0x13;
63 const uint8_t SPEC_TRACK_3000 = 0x14;
64 const uint8_t STOP_ADVERT = 0x15;
65 const uint8_t STOP = 0x16;
66 const uint8_t REPEAT_FOLDER = 0x17;
67 const uint8_t RANDOM_ALL = 0x18;
68 const uint8_t REPEAT_CURRENT = 0x19;
69 const uint8_t SET_DAC = 0x1A;
73 const uint8_t RETRANSMIT = 0x40;
74 const uint8_t REPLY = 0x41;
75 const uint8_t GET_STATUS_ = 0x42;
76 const uint8_t GET_VOL = 0x43;
77 const uint8_t GET_EQ = 0x44;
78 const uint8_t GET_MODE = 0x45;
79 const uint8_t GET_VERSION = 0x46;
80 const uint8_t GET_TF_FILES = 0x47;
81 const uint8_t GET_U_FILES = 0x48;
82 const uint8_t GET_FLASH_FILES = 0x49;
83 const uint8_t KEEP_ON = 0x4A;
84 const uint8_t GET_TF_TRACK = 0x4B;
85 const uint8_t GET_U_TRACK = 0x4C;
86 const uint8_t GET_FLASH_TRACK = 0x4D;
87 const uint8_t GET_FOLDER_FILES = 0x4E;
88 const uint8_t GET_FOLDERS = 0x4F;
92 const uint8_t EQ_POP = 1;
93 const uint8_t EQ_ROCK = 2;
94 const uint8_t EQ_JAZZ = 3;
95 const uint8_t EQ_CLASSIC = 4;
96 const uint8_t EQ_BASE = 5;
100 const uint8_t FOLDER_REPEAT = 1;
101 const uint8_t SINGLE_REPEAT = 2;
102 const uint8_t RANDOM = 3;
106 const uint8_t TF = 2;
107 const uint8_t AUX = 3;
108 const uint8_t SLEEP = 4;
109 const uint8_t FLASH = 5;
116 const uint8_t START_REPEAT = 1;
137 uint8_t commandValue;
138 uint8_t feedbackValue;
144 } sendStack, recStack;
151 bool begin(Stream& stream,
bool debug=
false,
unsigned long threshold=100);
155 void play(uint16_t trackNum);
164 void loop(uint16_t trackNum);
171 void playFolder(uint8_t folderNum, uint8_t trackNum);
202 int16_t
query(uint8_t cmd, uint8_t msb=0, uint8_t lsb=0);
212 FireTimer timoutTimer;
213 unsigned long _threshold;
228 fsm state = find_start_byte;
int16_t currentSdTrack()
Determine the current track played via SD card.
Definition: DFPlayerMini_Fast.cpp:811
void playFromMP3Folder(uint16_t trackNum)
Play a specific track in the folder named "MP3".
Definition: DFPlayerMini_Fast.cpp:165
void pause()
Pause playing current track.
Definition: DFPlayerMini_Fast.cpp:431
bool begin(Stream &stream, bool debug=false, unsigned long threshold=100)
Configure the class.
Definition: DFPlayerMini_Fast.cpp:55
int16_t numUsbTracks()
Determine the number of tracks accessible via USB.
Definition: DFPlayerMini_Fast.cpp:755
const uint8_t U
Definition: DFPlayerMini_Fast.h:105
void stopRepeat()
Stop repeat play of the current track.
Definition: DFPlayerMini_Fast.cpp:594
void repeatFolder(uint16_t folder)
Play all tracks in a given folder.
Definition: DFPlayerMini_Fast.cpp:537
int16_t currentFlashTrack()
Determine the current track played via flash.
Definition: DFPlayerMini_Fast.cpp:825
int16_t numSdTracks()
Determine the number of tracks accessible via SD card.
Definition: DFPlayerMini_Fast.cpp:769
int16_t numFlashTracks()
Determine the number of tracks accessible via flash.
Definition: DFPlayerMini_Fast.cpp:783
const uint8_t VOL_ADJUST
Definition: DFPlayerMini_Fast.h:112
Namespace for constants.
Definition: DFPlayerMini_Fast.h:32
void startRepeat()
Repeat the current track.
Definition: DFPlayerMini_Fast.cpp:575
int16_t numFolders()
Determine the number of folders available.
Definition: DFPlayerMini_Fast.cpp:855
void EQSelect(uint8_t setting)
Set the EQ mode.
Definition: DFPlayerMini_Fast.cpp:288
void play(uint16_t trackNum)
Play a specific track.
Definition: DFPlayerMini_Fast.cpp:125
void printError()
Print the error description if an error has been received.
Definition: DFPlayerMini_Fast.cpp:1188
int16_t currentVersion()
Determine the current firmware version.
Definition: DFPlayerMini_Fast.cpp:741
const uint8_t REPEAT
Definition: DFPlayerMini_Fast.h:99
void wakeUp()
Pull the MP3 player out of sleep mode.
Definition: DFPlayerMini_Fast.cpp:664
void playNext()
Play the next song in chronological order.
Definition: DFPlayerMini_Fast.cpp:85
void decVolume()
Decrement the volume by 1 out of 30.
Definition: DFPlayerMini_Fast.cpp:243
const uint8_t EQ_NORMAL
Definition: DFPlayerMini_Fast.h:91
void resume()
Resume playing current track.
Definition: DFPlayerMini_Fast.cpp:412
void setTimeout(unsigned long threshold)
Set the timout value for MP3 player query responses.
Definition: DFPlayerMini_Fast.cpp:871
void playPrevious()
Play the previous song in chronological order.
Definition: DFPlayerMini_Fast.cpp:104
void stop()
Stop the current playback.
Definition: DFPlayerMini_Fast.cpp:144
void volumeAdjustSet(uint8_t gain)
Specify volume gain.
Definition: DFPlayerMini_Fast.cpp:475
Definition: DFPlayerMini_Fast.h:133
void playAdvertisement(uint16_t trackNum)
Interrupt the current track with a new track.
Definition: DFPlayerMini_Fast.cpp:186
int16_t currentEQ()
Determine the current EQ setting.
Definition: DFPlayerMini_Fast.cpp:713
void sleep()
Put the MP3 player into sleep mode.
Definition: DFPlayerMini_Fast.cpp:651
void flush()
Clear out the serial input buffer connected to the MP3 player.
Definition: DFPlayerMini_Fast.cpp:933
int16_t currentMode()
Determine the current mode.
Definition: DFPlayerMini_Fast.cpp:727
const uint8_t NEXT
Definition: DFPlayerMini_Fast.h:44
int16_t numTracksInFolder(uint8_t folder)
Determine the number of tracks in the specified folder.
Definition: DFPlayerMini_Fast.cpp:841
void incVolume()
Increment the volume by 1 out of 30.
Definition: DFPlayerMini_Fast.cpp:224
void stopRepeatPlay()
Stop repeat play.
Definition: DFPlayerMini_Fast.cpp:516
Class for interacting with DFPlayerMini MP3 player.
Definition: DFPlayerMini_Fast.h:127
bool isPlaying()
Determine if a track is currently playing.
Definition: DFPlayerMini_Fast.cpp:680
void stopDAC()
Turn off DAC.
Definition: DFPlayerMini_Fast.cpp:632
void volume(uint8_t volume)
Set the volume to a specific value out of 30.
Definition: DFPlayerMini_Fast.cpp:264
void printStack(stack _stack)
Print the entire contents of the specified config/command packet for debugging purposes.
Definition: DFPlayerMini_Fast.cpp:1165
void normalMode()
Pull the MP3 player out of standby mode.
Definition: DFPlayerMini_Fast.cpp:374
int16_t currentVolume()
Determine the current volume setting.
Definition: DFPlayerMini_Fast.cpp:699
void reset()
Reset all settings to factory default.
Definition: DFPlayerMini_Fast.cpp:393
const uint8_t STACK_SIZE
Definition: DFPlayerMini_Fast.h:35
int16_t query(uint8_t cmd, uint8_t msb=0, uint8_t lsb=0)
Query the MP3 player for specific information.
Definition: DFPlayerMini_Fast.cpp:954
void loop(uint16_t trackNum)
Loop a specific track.
Definition: DFPlayerMini_Fast.cpp:312
void randomAll()
Play all tracks in a random order.
Definition: DFPlayerMini_Fast.cpp:556
void stopAdvertisement()
Stop the interrupting track.
Definition: DFPlayerMini_Fast.cpp:205
void startRepeatPlay()
Play all tracks.
Definition: DFPlayerMini_Fast.cpp:497
void standbyMode()
Put the MP3 player in standby mode (this is NOT sleep mode).
Definition: DFPlayerMini_Fast.cpp:355
void sendData()
Send a config/command packet to the MP3 player.
Definition: DFPlayerMini_Fast.cpp:904
void startDAC()
Turn on DAC.
Definition: DFPlayerMini_Fast.cpp:613
const uint8_t SEND_INIT
Definition: DFPlayerMini_Fast.h:72
void findChecksum(stack &_stack)
Determine and insert the checksum of a given config/command packet into that same packet struct.
Definition: DFPlayerMini_Fast.cpp:888
void playbackSource(uint8_t source)
Specify the playback source.
Definition: DFPlayerMini_Fast.cpp:333
void playFolder(uint8_t folderNum, uint8_t trackNum)
Play a specific track from a specific folder.
Definition: DFPlayerMini_Fast.cpp:454
int16_t currentUsbTrack()
Determine the current track played via USB.
Definition: DFPlayerMini_Fast.cpp:797
const uint8_t STOP_REPEAT
Definition: DFPlayerMini_Fast.h:115
bool parseFeedback()
Parse MP3 player query responses.
Definition: DFPlayerMini_Fast.cpp:984