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;
149 bool begin(Stream& stream,
unsigned long threshold=500);
153 void play(uint16_t trackNum);
162 void loop(uint16_t trackNum);
169 void playFolder(uint8_t folderNum, uint8_t trackNum);
200 int16_t
query(uint8_t cmd, uint8_t msb=0, uint8_t lsb=0);
210 FireTimer timoutTimer;
211 unsigned long _threshold;
226 fsm state = find_start_byte;
int16_t currentSdTrack()
Determine the current track played via SD card.
Definition: DFPlayerMini_Fast.cpp:806
void playFromMP3Folder(uint16_t trackNum)
Play a specific track in the folder named "MP3".
Definition: DFPlayerMini_Fast.cpp:160
void pause()
Pause playing current track.
Definition: DFPlayerMini_Fast.cpp:426
int16_t numUsbTracks()
Determine the number of tracks accessible via USB.
Definition: DFPlayerMini_Fast.cpp:750
const uint8_t U
Definition: DFPlayerMini_Fast.h:105
void stopRepeat()
Stop repeat play of the current track.
Definition: DFPlayerMini_Fast.cpp:589
void repeatFolder(uint16_t folder)
Play all tracks in a given folder.
Definition: DFPlayerMini_Fast.cpp:532
int16_t currentFlashTrack()
Determine the current track played via flash.
Definition: DFPlayerMini_Fast.cpp:820
int16_t numSdTracks()
Determine the number of tracks accessible via SD card.
Definition: DFPlayerMini_Fast.cpp:764
int16_t numFlashTracks()
Determine the number of tracks accessible via flash.
Definition: DFPlayerMini_Fast.cpp:778
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:570
int16_t numFolders()
Determine the number of folders available.
Definition: DFPlayerMini_Fast.cpp:850
void EQSelect(uint8_t setting)
Set the EQ mode.
Definition: DFPlayerMini_Fast.cpp:283
void play(uint16_t trackNum)
Play a specific track.
Definition: DFPlayerMini_Fast.cpp:120
int16_t currentVersion()
Determine the current firmware version.
Definition: DFPlayerMini_Fast.cpp:736
const uint8_t REPEAT
Definition: DFPlayerMini_Fast.h:99
void wakeUp()
Pull the MP3 player out of sleep mode.
Definition: DFPlayerMini_Fast.cpp:659
void playNext()
Play the next song in chronological order.
Definition: DFPlayerMini_Fast.cpp:80
void decVolume()
Decrement the volume by 1 out of 30.
Definition: DFPlayerMini_Fast.cpp:238
const uint8_t EQ_NORMAL
Definition: DFPlayerMini_Fast.h:91
void resume()
Resume playing current track.
Definition: DFPlayerMini_Fast.cpp:407
void setTimeout(unsigned long threshold)
Set the timout value for MP3 player query responses.
Definition: DFPlayerMini_Fast.cpp:866
void playPrevious()
Play the previous song in chronological order.
Definition: DFPlayerMini_Fast.cpp:99
void stop()
Stop the current playback.
Definition: DFPlayerMini_Fast.cpp:139
void volumeAdjustSet(uint8_t gain)
Specify volume gain.
Definition: DFPlayerMini_Fast.cpp:470
Definition: DFPlayerMini_Fast.h:133
void playAdvertisement(uint16_t trackNum)
Interrupt the current track with a new track.
Definition: DFPlayerMini_Fast.cpp:181
int16_t currentEQ()
Determine the current EQ setting.
Definition: DFPlayerMini_Fast.cpp:708
void sleep()
Put the MP3 player into sleep mode.
Definition: DFPlayerMini_Fast.cpp:646
void flush()
Clear out the serial input buffer connected to the MP3 player.
Definition: DFPlayerMini_Fast.cpp:921
int16_t currentMode()
Determine the current mode.
Definition: DFPlayerMini_Fast.cpp:722
const uint8_t NEXT
Definition: DFPlayerMini_Fast.h:44
bool getStatus(uint8_t cmd)
Parse MP3 player query responses - determines if timout occurs.
Definition: DFPlayerMini_Fast.cpp:971
int16_t numTracksInFolder(uint8_t folder)
Determine the number of tracks in the specified folder.
Definition: DFPlayerMini_Fast.cpp:836
void incVolume()
Increment the volume by 1 out of 30.
Definition: DFPlayerMini_Fast.cpp:219
void stopRepeatPlay()
Stop repeat play.
Definition: DFPlayerMini_Fast.cpp:511
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:675
void stopDAC()
Turn off DAC.
Definition: DFPlayerMini_Fast.cpp:627
void volume(uint8_t volume)
Set the volume to a specific value out of 30.
Definition: DFPlayerMini_Fast.cpp:259
void printStack(stack _stack)
Print the entire contents of the specified config/command packet for debugging purposes.
Definition: DFPlayerMini_Fast.cpp:1107
void normalMode()
Pull the MP3 player out of standby mode.
Definition: DFPlayerMini_Fast.cpp:369
int16_t currentVolume()
Determine the current volume setting.
Definition: DFPlayerMini_Fast.cpp:694
void reset()
Reset all settings to factory default.
Definition: DFPlayerMini_Fast.cpp:388
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:942
void loop(uint16_t trackNum)
Loop a specific track.
Definition: DFPlayerMini_Fast.cpp:307
void randomAll()
Play all tracks in a random order.
Definition: DFPlayerMini_Fast.cpp:551
void findChecksum(stack *_stack)
Determine and insert the checksum of a given config/command packet into that same packet struct.
Definition: DFPlayerMini_Fast.cpp:883
bool begin(Stream &stream, unsigned long threshold=500)
Configure the class.
Definition: DFPlayerMini_Fast.cpp:52
void stopAdvertisement()
Stop the interrupting track.
Definition: DFPlayerMini_Fast.cpp:200
void startRepeatPlay()
Play all tracks.
Definition: DFPlayerMini_Fast.cpp:492
void standbyMode()
Put the MP3 player in standby mode (this is NOT sleep mode).
Definition: DFPlayerMini_Fast.cpp:350
void sendData()
Send a config/command packet to the MP3 player.
Definition: DFPlayerMini_Fast.cpp:899
void startDAC()
Turn on DAC.
Definition: DFPlayerMini_Fast.cpp:608
const uint8_t SEND_INIT
Definition: DFPlayerMini_Fast.h:72
void playbackSource(uint8_t source)
Specify the playback source.
Definition: DFPlayerMini_Fast.cpp:328
void playFolder(uint8_t folderNum, uint8_t trackNum)
Play a specific track from a specific folder.
Definition: DFPlayerMini_Fast.cpp:449
int16_t currentUsbTrack()
Determine the current track played via USB.
Definition: DFPlayerMini_Fast.cpp:792
const uint8_t STOP_REPEAT
Definition: DFPlayerMini_Fast.h:115
bool parseFeedback()
Parse MP3 player query responses.
Definition: DFPlayerMini_Fast.cpp:1002