Vasanth Kumar / Mbed 2 deprecated RapidMP3_check

Dependencies:   RAPIDMP3 mbed

Fork of RapidMP3_check by Vasanth Kumar

Committer:
vasanth
Date:
Fri Nov 21 10:44:09 2014 +0000
Revision:
1:dbb63bd6c828
Parent:
0:a540b792fbf0
RAPID_MP3_V1 demonstration

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vasanth 0:a540b792fbf0 1 #include "mbed.h"
vasanth 0:a540b792fbf0 2 #include "RAPIDMP3.h"
vasanth 0:a540b792fbf0 3
vasanth 0:a540b792fbf0 4
vasanth 1:dbb63bd6c828 5 RAPIDMP3 rmp3(D8, D2); // Tx, Rx
vasanth 0:a540b792fbf0 6 Serial pc(USBTX, USBRX);
vasanth 0:a540b792fbf0 7
vasanth 0:a540b792fbf0 8 int main() {
vasanth 0:a540b792fbf0 9
vasanth 1:dbb63bd6c828 10 pc.puts("RAPID_MP3_V1 module demonstration\r\n");
vasanth 1:dbb63bd6c828 11
vasanth 1:dbb63bd6c828 12 // After powering up, wait atleast a second before sending commands
vasanth 0:a540b792fbf0 13 wait(1.0);
vasanth 0:a540b792fbf0 14
vasanth 0:a540b792fbf0 15 while (1) {
vasanth 0:a540b792fbf0 16
vasanth 0:a540b792fbf0 17 // Play track till its end
vasanth 1:dbb63bd6c828 18 rmp3.playFile("track1.mp3");
vasanth 1:dbb63bd6c828 19 rmp3.waitEndOfPlay();
vasanth 0:a540b792fbf0 20
vasanth 0:a540b792fbf0 21 // Play track for a specified duration
vasanth 1:dbb63bd6c828 22 rmp3.playFile("track2.mp3");
vasanth 0:a540b792fbf0 23 wait(20.0);
vasanth 0:a540b792fbf0 24 rmp3.stop();
vasanth 1:dbb63bd6c828 25 wait(5.0);
vasanth 0:a540b792fbf0 26
vasanth 0:a540b792fbf0 27 // Play, pause and resume a track
vasanth 1:dbb63bd6c828 28 rmp3.playFile("track3.mp3");
vasanth 0:a540b792fbf0 29 wait(10.0);
vasanth 0:a540b792fbf0 30 rmp3.playPause();
vasanth 0:a540b792fbf0 31 wait(5.0);
vasanth 0:a540b792fbf0 32 rmp3.playResume();
vasanth 0:a540b792fbf0 33 wait(5.0);
vasanth 0:a540b792fbf0 34
vasanth 0:a540b792fbf0 35 // Set volume level to 2
vasanth 0:a540b792fbf0 36 rmp3.volumeSet(2); // 0 is max, 9 is mute
vasanth 0:a540b792fbf0 37 wait(5.0);
vasanth 0:a540b792fbf0 38
vasanth 0:a540b792fbf0 39 // Increase volume one level
vasanth 0:a540b792fbf0 40 rmp3.volumeInc();
vasanth 0:a540b792fbf0 41 wait(5.0);
vasanth 0:a540b792fbf0 42
vasanth 0:a540b792fbf0 43 // Decrease volume one level
vasanth 0:a540b792fbf0 44 rmp3.volumeDec();
vasanth 0:a540b792fbf0 45 wait(5.0);
vasanth 0:a540b792fbf0 46
vasanth 1:dbb63bd6c828 47 // Get current volume level and send to PC
vasanth 0:a540b792fbf0 48 uint8_t volume = rmp3.volumeGet();
vasanth 0:a540b792fbf0 49 pc.printf("current volume level = %d\r\n", volume);
vasanth 0:a540b792fbf0 50 wait(5.0);
vasanth 0:a540b792fbf0 51
vasanth 1:dbb63bd6c828 52 // Read playback status
vasanth 0:a540b792fbf0 53 uint8_t playStatus = rmp3.getPlaybackStatus();
vasanth 0:a540b792fbf0 54 if (playStatus == RMP3_BUSY) {
vasanth 1:dbb63bd6c828 55 pc.puts("Device is busy\r\n");
vasanth 1:dbb63bd6c828 56 // Stop current playback
vasanth 1:dbb63bd6c828 57 rmp3.stop();
vasanth 0:a540b792fbf0 58 }
vasanth 0:a540b792fbf0 59 pc.puts("Device is free\r\n");
vasanth 0:a540b792fbf0 60 wait(5.0);
vasanth 0:a540b792fbf0 61
vasanth 1:dbb63bd6c828 62 // Record audio as .wav file for a specified duration
vasanth 0:a540b792fbf0 63 rmp3.recordFile("rec_001.wav");
vasanth 0:a540b792fbf0 64 wait(20.0);
vasanth 0:a540b792fbf0 65 rmp3.stop();
vasanth 1:dbb63bd6c828 66
vasanth 0:a540b792fbf0 67 // Play the recorded audio till its end
vasanth 0:a540b792fbf0 68 rmp3.playFile("rec_001.wav");
vasanth 0:a540b792fbf0 69 rmp3.waitEndOfPlay();
vasanth 0:a540b792fbf0 70
vasanth 0:a540b792fbf0 71 wait(5.0);
vasanth 0:a540b792fbf0 72
vasanth 0:a540b792fbf0 73 // loop again.
vasanth 0:a540b792fbf0 74 }
vasanth 1:dbb63bd6c828 75 }