ButtonUtility


int checkButton() {

  int result = 0;

 

  ppState = digitalRead(play_pauseButton);

  if(ppState == 1 && ppStateLast == 0)

    result = PLAY_PAUSE;

  ppStateLast = ppState;

 

  nState = digitalRead(nextButton);

  if(nState == 1 && nStateLast == 0)

    result = NEXT;

  nStateLast = nState;

 

  preState = digitalRead(previousButton);

  if(preState == 1 && preStateLast == 0)

    previous(result);

  preStateLast = preState;

 

  vUState = digitalRead(volumeUpButton);

  if(vUState == 1 && vUStateLast == 0)

    result = VOL_UP;

  vUStateLast = vUState;

 

  vDState = digitalRead(volumeDownButton);

  if(vDState == 1 && vDStateLast == 0)

    result = VOL_DOWN;

  vDStateLast = vDState;

 

  return result;

}    

 

//Changes the state to idle or the prev_state when play/pause pressed 

void changePlay(){

  if(current_state != IDLE){

    prev_state = current_state;

    current_state = IDLE;

    Mp3.cancel_playback();

  }

 

  else if(current_state == IDLE){

    current_state = prev_state;

  }

}

 

//Skips to the next song when button pushed

void skipAhead(){

  sd_file.close();

  Mp3.clear_buffer();

  FindSong();

  Serial.println("Got here");

  sd_file_open();

}

 

//Skips to the beginning of the current song when pushed

void skipBehind(){

  Mp3.cancel_playback();

  Serial.println("Back got here");

  Mp3.clear_buffer();

  sd_file.seekSet(10);

}

 

 

//Changes to vol. Note that the user cannot change the volume below the min

//or above the max. Also sets the vol in EEPROM every time a user chages the

//volume. This allows the player to find know the last volume when it starts up

#define MAX_VOL 254

#define MIN_VOL 0

 

void changeVol(int buttonCmd){

  if(buttonCmd == VOL_UP){

    if(mp3_vol < MAX_VOL) mp3_vol += 5;

    else mp3_vol = MAX_VOL;

    EEPROM.write(1023, mp3_vol);

    Mp3.volume(mp3_vol);

  } 

 

  if(buttonCmd == VOL_DOWN){

    if(mp3_vol > MIN_VOL) mp3_vol -= 5;

    else mp3_vol = MIN_VOL;

    EEPROM.write(1023, mp3_vol);

    Mp3.volume(mp3_vol);

  }