Music Player for LPC1768 and MAPLE Board
Dependencies: SDFileSystem mbed
main.cpp@0:b347ed8fee7f, 2014-02-03 (annotated)
- Committer:
- marutsu
- Date:
- Mon Feb 03 08:58:23 2014 +0000
- Revision:
- 0:b347ed8fee7f
mbed(LPC1768),MAPLE???,MARY-UB????????????????MicroSD????Music?????wave????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marutsu | 0:b347ed8fee7f | 1 | #include "mbed.h" |
marutsu | 0:b347ed8fee7f | 2 | #include "SDFileSystem.h" |
marutsu | 0:b347ed8fee7f | 3 | #include "wave_player.h" |
marutsu | 0:b347ed8fee7f | 4 | |
marutsu | 0:b347ed8fee7f | 5 | #include <iostream> |
marutsu | 0:b347ed8fee7f | 6 | #include <vector> |
marutsu | 0:b347ed8fee7f | 7 | #include <string> |
marutsu | 0:b347ed8fee7f | 8 | |
marutsu | 0:b347ed8fee7f | 9 | SDFileSystem sd(p5, p6, p7, p20, "sd"); //SD card Slot |
marutsu | 0:b347ed8fee7f | 10 | AnalogOut DACout(p18); //Analog Output |
marutsu | 0:b347ed8fee7f | 11 | PwmOut sounder(p26); //PWM Sounder Output |
marutsu | 0:b347ed8fee7f | 12 | wave_player waver(&DACout, &sounder); //wave player object |
marutsu | 0:b347ed8fee7f | 13 | |
marutsu | 0:b347ed8fee7f | 14 | int main() { |
marutsu | 0:b347ed8fee7f | 15 | string DIRPATH("/sd/Music"); |
marutsu | 0:b347ed8fee7f | 16 | DIR *dir; |
marutsu | 0:b347ed8fee7f | 17 | struct dirent *entry; |
marutsu | 0:b347ed8fee7f | 18 | FILE *wave_file; |
marutsu | 0:b347ed8fee7f | 19 | vector<string> file_list; |
marutsu | 0:b347ed8fee7f | 20 | int num_file,i; |
marutsu | 0:b347ed8fee7f | 21 | string file_name; |
marutsu | 0:b347ed8fee7f | 22 | |
marutsu | 0:b347ed8fee7f | 23 | dir = opendir(DIRPATH.c_str()); |
marutsu | 0:b347ed8fee7f | 24 | if ( dir != NULL ) { |
marutsu | 0:b347ed8fee7f | 25 | while ( (entry = readdir(dir)) != NULL ) { |
marutsu | 0:b347ed8fee7f | 26 | file_list.push_back(entry -> d_name); |
marutsu | 0:b347ed8fee7f | 27 | } |
marutsu | 0:b347ed8fee7f | 28 | num_file = file_list.size(); |
marutsu | 0:b347ed8fee7f | 29 | for(i = 0; i < num_file; i++){ |
marutsu | 0:b347ed8fee7f | 30 | std::cout << "File No." << i + 1 << " " << file_list[i] << std::endl; |
marutsu | 0:b347ed8fee7f | 31 | } |
marutsu | 0:b347ed8fee7f | 32 | sounder.period(1.0/400000.0); |
marutsu | 0:b347ed8fee7f | 33 | while(1){ |
marutsu | 0:b347ed8fee7f | 34 | std::cout << "Input File Number:"; |
marutsu | 0:b347ed8fee7f | 35 | std::cin >> i; |
marutsu | 0:b347ed8fee7f | 36 | file_name = file_name.erase() + DIRPATH + "/" +file_list[i-1]; |
marutsu | 0:b347ed8fee7f | 37 | wave_file=fopen(file_name.c_str(),"r"); |
marutsu | 0:b347ed8fee7f | 38 | waver.play(wave_file); |
marutsu | 0:b347ed8fee7f | 39 | fclose(wave_file); |
marutsu | 0:b347ed8fee7f | 40 | } |
marutsu | 0:b347ed8fee7f | 41 | } |
marutsu | 0:b347ed8fee7f | 42 | closedir(dir); |
marutsu | 0:b347ed8fee7f | 43 | return 0; |
marutsu | 0:b347ed8fee7f | 44 | } |