 //      HH    HH  EE      LL      PP        EE      RR   RR
 //      HH    HH  EEEEEE  LLLLLL  PP        EEEEEE  RR   RR
 //
+
+// this allows for the pause/resume button to be pressed without a tag being present
+// in this case the last played album is resumed - given there was one. 
+static boolean checkForResumeLast(){
+  boolean resumeLast = false;
+  #ifdef RESUMELAST
+    // Of course works only when we have the Buttons 
+    #ifdef BUTTONS
+      btnVal = analogRead(btnLinePin);
+      if (btnVal > minBtnValue && (millis()-btnPressTime) > btnPressDelay) 
+        if ( ((btnVal - btnValDrift) < btnPauseValue) && ((btnVal + btnValDrift) > btnPauseValue) ) resumeLast = true;
+    #endif
+    // ... or the IR Remote Control implementation
+    #ifdef IRREMOTE
+      if (irrecv.decode(&results)) if ( ((results.value-2011000000)/100) == pauseVal ) resumeLast = true;
+    #endif
+  #endif
+  return (resumeLast);
+}
+
+
 // stores the file to play in the global var filename - it is created from the gloal vars plrCurrentFolder and current track
 static void setFileNameToPlay(byte trackNo) {
   // convert the trackNo to a char array - we need it next to create the filename of the track

                                                // file) to allow resuming a played album on the current track in case the box is turned off                                                
static boolean writeTrackDbEntry(void);         // store Tag UID, plrCurrentFolder and firstTrackToPlay in the trackDb (files on SD)


static void issueWarning(const char[], const char[], boolean); // the new warning method


//          TT      RR   RR  AA      AA   CCCCC  KK   KK  DDDDDD    BBBBBB
//
// sets the directpry to play (plrCurrentFolder) and the track to start playback with (firstTrackToPlay)
// if passed true, the function will try to get the information from a tag, on false, it will try to read 
// the last played album file
static boolean getDirAndTrackToPlay(boolean readFromTag) {
  boolean plrStartPlaying = false;

