#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define LEFT_CHANNEL A0
#define RIGHT_CHANNEL A3
#define LED 3

RF24 radio(10, 9); // CE, CSN
byte address[6] = "00001";
byte buttonNum = 1;
int RawValue= 0;
int mappedValue = 0;

byte PAGE_NUMBER = 1;
const byte MAX_PAGE = 6;
int leftButtons = 1024;
int rightButtons = 1024;

unsigned long timeNow = 0;//for timing

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);   // Setup single led
  radio.begin();          // setup radio
  radio.openWritingPipe(address); //set the address
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening(); //Set module as transmitter
}

void loop() {
    
    findPressed();
    if(buttonNum != 0){
      char text[9];
      String potentiometer = String(mappedValue);
      String number = String(buttonNum);
      number = number + "," + potentiometer + '\n';  
      number.toCharArray(text, 7);
      radio.write(&text, sizeof(text));
      flashLED();
      buttonNum = 0;
    }
    if(millis() > timeNow + 10000){ // blink to signify it's still on
      digitalWrite(LED, HIGH);
      delay(50);
      digitalWrite(LED, LOW);
      delay(50);
      timeNow = millis();
    }
  }

  void flashLED(){
    if(buttonNum == 1){
     if(PAGE_NUMBER > 1){
        PAGE_NUMBER = PAGE_NUMBER - 1;
     }
     delay(350);
     for(int i = 0; i < PAGE_NUMBER; i++){
        digitalWrite(LED, HIGH);
        delay(150);
        digitalWrite(LED, LOW);
        delay(100);
     }
    }
    if(buttonNum == 2){
     if(PAGE_NUMBER < MAX_PAGE){
        PAGE_NUMBER = PAGE_NUMBER + 1;
     }
     delay(350);
     for(int i = 0; i < PAGE_NUMBER; i++){
        digitalWrite(LED, HIGH);
        delay(150);
        digitalWrite(LED, LOW);
        delay(100);
     }
    }
    if(buttonNum > 2){
        digitalWrite(LED, HIGH);
        delay(300);
        digitalWrite(LED, LOW);
    }
    delay(250); // So we dont send too many codes at once;
    //Debounce..
  }
  
  void findPressed(){
  leftButtons = analogRead(LEFT_CHANNEL);
  rightButtons = analogRead(RIGHT_CHANNEL);
    if(leftButtons >= 1000){
      //No Button Pressed -- IDLE
    }else if(leftButtons < 1000 && leftButtons >= 625){
      //Pressed Button 6
//      leftButtonPressed = '6';
      buttonNum = 1;
    }else if(leftButtons < 625 && leftButtons >= 550){
      //Pressed Button 5
      buttonNum = 3;
    }else if(leftButtons < 550 && leftButtons >= 400){
      //Pressed Button 4
      buttonNum = 5;
    }else if(leftButtons < 400 && leftButtons >= 250){
      //Pressed Button 3
      buttonNum = 7;
    }else if(leftButtons < 250 && leftButtons >= 50){
      //Pressed Button 2
      buttonNum = 9;
    }else if(leftButtons < 50 && leftButtons >= 0){
      //Pressed Button 1
      buttonNum = 11;
    }
    //RightSide
    if(rightButtons >= 1000){
      //No Button Pressed -- IDLE
  }else if(rightButtons < 500 && rightButtons >= 100){
      //Pressed Button 6
      buttonNum = 2;
    }else if(rightButtons < 100 && rightButtons >= 80){
      //Pressed Button 5
      buttonNum = 4;
    }else if(rightButtons < 80 && rightButtons >= 60){
      //Pressed Button 4
      buttonNum = 6;
    }else if(rightButtons < 60 && rightButtons >= 35){
      //Pressed Button 3
      buttonNum = 8;
    }else if(rightButtons < 35 && rightButtons >= 15){
      //Pressed Button 2
      buttonNum = 10;
    }else if(rightButtons < 15 && rightButtons >= 0){
      //Pressed Button 1
      buttonNum = 12;
    }
  }

  
