 //          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;
 

    #endif
    
    // read data from tag: directory, track number and playing order.
    if (!getDirAndTrackToPlay(weHaveATag)) {
      // if we don't get at least a directory we can't start playback and inform the user
      if (loopWarningMessageNoAlbumInfos) {
        loopWarningMessageNoAlbumInfos = false;

//      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
