Adding a second switch to control relay

I need two switches that can both be used to control relays depending on the pattern clicked. This is not my original code but I have modified it for my personal project.

How can I add another switch to this code?

/* 4-Way Button:  Click, Double-Click, Press+Hold, and Press+Long-Hold Test Sketch
 
 By Jeff Saltzman
 Oct. 13, 2009
 
 To keep a physical interface as simple as possible, this sketch demonstrates generating four output events from a single push-button.
 1) Click:  rapid press and release
 2) Double-Click:  two clicks in quick succession
 3) Press and Hold:  holding the button down
 4) Long Press and Hold:  holding the button for a long time 
 
 
 */


/*
D0 - Pin2 - LED2
D1 - Pin3 - LED1
A7 - Pin6 - GainSetting1
A8 - Pin7 - GainSetting2
A5 - Pin8 - Bypass1
A4 - Pin9 - Bypass2
A3 - Pin10 - BoostBypass1
A2 - Pin11 - BoostBypass2

*/

#define relay1pin1          1   
#define relay1pin2          2
#define relay2pin1          3
#define relay2pin2          4   
#define relay3pin1          5
#define relay3pin2          6
#define buttonPin            7  
#define buttonPin2          8

int latchPin = 8;
int clockPin = 12;
int dataPin = 11;

// LED variables
boolean ledVal1 = false;    // state of LED 1
boolean ledVal2 = false;    // state of LED 2
boolean ledVal3 = false;    // state of LED 3
boolean ledVal4 = false;    // state of LED 4

boolean latch = LOW;
boolean dClick = LOW;
boolean shortHold = LOW;
boolean longHold = LOW;

byte leds = 0;


//=================================================

void setup() {
  // Set button input pin
  pinMode(buttonPin, INPUT);
  digitalWrite(buttonPin, HIGH );

  pinMode(relay1pin1, OUTPUT);    
  digitalWrite(relay1pin1, LOW);
  pinMode(relay1pin2, OUTPUT);    
  digitalWrite(relay1pin2, LOW);
  
  
  pinMode(relay2pin1, OUTPUT);    
  digitalWrite(relay2pin1, LOW);
  pinMode(relay2pin2, OUTPUT);    
  digitalWrite(relay2pin2, LOW);
  
  
  pinMode(relay3pin1, OUTPUT);    
  digitalWrite(relay3pin1, LOW);
  pinMode(relay3pin2, OUTPUT);    
  digitalWrite(relay3pin2, LOW);

  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);

}

void loop() {
  // Get button event and act accordingly
  int b = checkButton();
  if (b == 1) clickEvent();
  if (b == 2) doubleClickEvent();
  if (b == 3) holdEvent();
  if (b == 4) longHoldEvent();
}

//=================================================
// Events to trigger

void updateShiftRegister()
{
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, leds);
  digitalWrite(latchPin, HIGH);

}

void clickEvent() {
  ledVal1 = !ledVal1;

  if (latch) {  // set relay
    digitalWrite (relay1pin1, HIGH);
    delay(15);
    digitalWrite (relay1pin2, LOW);
  } 
  else {  // reset relay
    digitalWrite (relay1pin2, HIGH);
    delay(15);
    digitalWrite (relay1pin1, LOW);
  }
  latch = !latch;
}

void doubleClickEvent() {
  ledVal2 = !ledVal2;

  }
  dClick = !dClick;

}

void holdEvent() {
  ledVal3 = !ledVal3;

  }
  shortHold = !shortHold;
}

void longHoldEvent() {
  ledVal4 = !ledVal4;

  }
  longHold = !longHold;
}


//=================================================
//  MULTI-CLICK:  One Button, Multiple Events

// Button timing variables
int debounce = 20;          // ms debounce period to prevent flickering when pressing or releasing the button
int DCgap = 150;            // max ms between clicks for a double click event
int holdTime = 1000;        // ms hold period: how long to wait for press+hold event
int longHoldTime = 2500;    // ms long hold period: how long to wait for press+hold event

// Button variables
boolean buttonVal = HIGH;   // value read from button
boolean buttonLast = HIGH;  // buffered value of the button's previous state
boolean DCwaiting = false;  // whether we're waiting for a double click (down)
boolean DConUp = false;     // whether to register a double click on next release, or whether to wait and click
boolean singleOK = true;    // whether it's OK to do a single click
long downTime = -1;         // time the button was pressed down
long upTime = -1;           // time the button was released
boolean ignoreUp = false;   // whether to ignore the button release because the click+hold was triggered
boolean waitForUp = false;        // when held, whether to wait for the up event
boolean holdEventPast = false;    // whether or not the hold event happened already
boolean longHoldEventPast = false;// whether or not the long hold event happened already

int checkButton() {    
  int event = 0;
  buttonVal = digitalRead(buttonPin);
  // Button pressed down
  if (buttonVal == LOW && buttonLast == HIGH && (millis() - upTime) > debounce)
  {
    downTime = millis();
    ignoreUp = false;
    waitForUp = false;
    singleOK = true;
    holdEventPast = false;
    longHoldEventPast = false;
    if ((millis()-upTime) < DCgap && DConUp == false && DCwaiting == true)  DConUp = true;
    else  DConUp = false;
    DCwaiting = false;
  }
  // Button released
  else if (buttonVal == HIGH && buttonLast == LOW && (millis() - downTime) > debounce)
  {        
    if (not ignoreUp)
    {
      upTime = millis();
      if (DConUp == false) DCwaiting = true;
      else
      {
        event = 2;
        DConUp = false;
        DCwaiting = false;
        singleOK = false;
      }
    }
  }
  // Test for normal click event: DCgap expired
  if ( buttonVal == HIGH && (millis()-upTime) >= DCgap && DCwaiting == true && DConUp == false && singleOK == true && event != 2)
  {
    event = 1;
    DCwaiting = false;
  }
  // Test for hold
  if (buttonVal == LOW && (millis() - downTime) >= holdTime) {
    // Trigger "normal" hold
    if (not holdEventPast)
    {
      event = 3;
      waitForUp = true;
      ignoreUp = true;
      DConUp = false;
      DCwaiting = false;
      //downTime = millis();
      holdEventPast = true;
    }
    // Trigger "long" hold
    if ((millis() - downTime) >= longHoldTime)
    {
      if (not longHoldEventPast)
      {
        event = 4;
        longHoldEventPast = true;
      }
    }
  }
  buttonLast = buttonVal;
  return event;
}

If you tell us what you want the switches to do you may get some ideas from us. At this time all we know is that you want to add a switch but no idea what to do with it.

Weedpharma