4180 project

Dependencies:   4DGL-uLCD-SE PinDetect SDFileSystem Speaker mbed wave_player

Fork of musicplayer by Sarthak Jaiswal

Files at this revision

API Documentation at this revision

Comitter:
amaclean6
Date:
Wed Dec 06 08:51:00 2017 +0000
Parent:
1:45d8f6557ff8
Commit message:
1st

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
TextLCD.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Wed Dec 06 08:51:00 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/4180_1/code/4DGL-uLCD-SE/#2cb1845d7681
--- a/TextLCD.lib	Mon Mar 17 18:48:13 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/simon/code/TextLCD/#308d188a2d3a
--- a/main.cpp	Mon Mar 17 18:48:13 2014 +0000
+++ b/main.cpp	Wed Dec 06 08:51:00 2017 +0000
@@ -1,7 +1,7 @@
 #include "mbed.h"
 #include "SDFileSystem.h"
 #include "wave_player.h"
-#include "TextLCD.h"
+#include "uLCD_4DGL.h"
 #include "PinDetect.h"
 #include "Speaker.h"
 #include <vector>
@@ -16,19 +16,21 @@
 using namespace std;
 
 SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
-TextLCD lcd(p9, p10, p11, p12, p13, p14); // rs, e, d4-d7
+uLCD_4DGL uLCD(p9,p10,p11);
 DigitalIn sdDetect(p17); // Set up a pin for SD Card Detect
 
-PinDetect pb1(p28); // pb forup shift
-PinDetect pb2(p29); // pb fordown shift
-PinDetect pb3(p30); // pb for pause
-PinDetect pb4(p27); // pb for volume or play
+PinDetect pb1(p21); // pb forup shift
+PinDetect pb2(p22); // pb fordown shift
+PinDetect pb3(p23); // pb for pause
+
+
 
 
 AnalogOut DACout(p18); //set up speaker
 wave_player waver(&DACout); //set up wave player library
 int pos = 0; // index of the song
-int vol = 0; // volume controller
+int vol = 0;
+
  
 bool playing = false; //variable for pause/play since we only have 1 pb for that
 vector<string> filenames; //filenames are stored in a vector string
@@ -55,8 +57,8 @@
     string songname = filenames[pos];
     unsigned index = songname.find(".wav");
     songname = songname.substr(0,index);
-    lcd.cls();
-    lcd.printf(songname.c_str()); //it clears screen and then sets the new index song in the lcd display
+    uLCD.cls();
+    uLCD.printf(songname.c_str()); //it clears screen and then sets the new index song in the uLCD display
 }
 //interrupt handler for pb2
 void pb2_hit_callback (void)
@@ -71,8 +73,8 @@
     string songname = filenames[pos];
     unsigned index = songname.find(".wav");
     songname = songname.substr(0,index);
-    lcd.cls();
-    lcd.printf(songname.c_str());
+    uLCD.cls();
+    uLCD.printf(songname.c_str());
 }
 //interrupt handler for 3rd pushbutton
 void pb3_hit_callback (void)
@@ -82,21 +84,15 @@
     if (playing == false) {
         playing = true; 
     } else if (playing == true) {
-        lcd.cls();
+        uLCD.cls();
         playing = false; 
         string songname = filenames[pos];
         unsigned index = songname.find(".wav");
         songname = songname.substr(0,index);
-        lcd.printf(songname.c_str());
+        uLCD.printf(songname.c_str());
     }
 }
-//interrupt handler for pb4
-void pb4_hit_callback (void){
-    // this pb changes the volume by lowering the volume until it reaches 0. then it resets to the max volume
-    // the volume range has been divided into 16 possible ranges. and hence, it toggles through those 16 values
-    // this only changes the variable vol, which is then used in the wave player file to actually adjust the volume
-    vol = (vol+1) % 16;
-}
+
 
 int main()
 {
@@ -107,39 +103,39 @@
     pb1.mode(PullUp);
     pb2.mode(PullUp);
     pb3.mode(PullUp);
-    pb4.mode(PullUp);
+    //pb4.mode(PullUp);
     // Delay for initial pullup to take effect
     wait(.01);
     // Setup Interrupt callback functions for a pb hit
     pb1.attach_deasserted(&pb1_hit_callback);
     pb2.attach_deasserted(&pb2_hit_callback);
     pb3.attach_deasserted(&pb3_hit_callback);
-    pb4.attach_deasserted(&pb4_hit_callback);
+    
     // Start sampling pb inputs using interrupts
     pb1.setSampleFrequency();
     pb2.setSampleFrequency();
     pb3.setSampleFrequency();
-    pb4.setSampleFrequency();
-    lcd.cls();
+    
+    uLCD.cls();
     //detects whethere there is a SD card or not.. if not then it prints and informs the user
     while(sdDetect ==0) {
-        lcd.locate(0,0);
-        lcd.printf("Insert SD Card");
+        uLCD.locate(0,0);
+        uLCD.printf("Insert SD Card");
         wait(.5);
     }    
-    lcd.cls(); 
+    uLCD.cls(); 
     wait(.5);
     sd.disk_initialize();
-    read_file_names("/sd/Music");
+    read_file_names("/sd/");
     while(1) {
         //while pb3 is low, then we can start playing the song
         while(playing == true) { //we have 2 while loops..one while loop makes sure the music player is always on, the other one is for the song
             string songname = filenames[pos];
-            string a = "/sd/Music/";
+            string a = "/sd/";
             string fname = a + songname; //retrieves the file name
             FILE *wave_file; 
-            lcd.locate(0,1);
-            lcd.printf("Now Playing");
+            uLCD.locate(0,4);
+            uLCD.printf("Now Playing");
             wave_file = fopen(fname.c_str(),"r"); //opens the music file
             waver.play(wave_file); //plays the music file
             fclose(wave_file);