 // Output for Sony Alpine emulation
 const int sonyPin = A0;
 const int sonyShiftPin = A2;
+const int alpinePin = 3;
 //
 // Defines min/max menu amplitude
 const int maxMenuNumber = 2;

    lcd.begin(16,2);
    //
    // Define Alpine Pin
    pinMode(alpPin, OUTPUT);
}

void loop() {
    //
    // Get navigation states
    buttonStateUp = digitalRead(buttonPinUp);
    buttonStateDw = digitalRead(buttonPinDw);
    //
    // Handle navigation buttons
    handleButtonNavigation(buttonStateUp,buttonStateDw);
    //
    // Switch menu
    switch ( navigationState ) {
        case 1:

          break;
        case 2:

          break;

        case 0:
            handleDefaultMenu();
        break;
        //
        // MID Introduction ...
        default:
            handleIntroduceMenu();
            navigationState++;
        break;
      }



}

/**
        Handle MID's steering buttons
 */
int handleButtonNavigation(int stateUp,int stateDw){
    Serial.println(stateUp);
    Serial.println(stateDw);


    if (buttonStateUp == HIGH) {
        navigationState++;
    }

     if (buttonStateDw == HIGH) {
        navigationState--;
    }

    // Debug info ...
    Serial.println(navigationState);
}

/**

/**
        Handle Default menu
 */
void handleIndexMenu(){

}
/**
        Handle Introduce menu
 */
void handleIntroduceMenu(){
     lcd.print("Welcome... "); // Prints "Arduino" on the LCD
     delay(1500);
     lcd.clear();
     lcd.print("Opel");
     lcd.setCursor(7,0); // Sets the location at which subsequent text written to the LCD will be displayed
     lcd.print("Astra");
     delay(1500);
     lcd.setCursor(1,2);
          lcd.blink(); //Displays the blinking LCD cursor
          lcd.setCursor(2,1);
          lcd.print("Loading ...");

     delay(3000);
     lcd.clear();
     lcd.noBlink();
     delay(4000);
     lcd.noCursor(); // Hides the LCD cursor
     lcd.clear(); // Clears the LCD screen
     //
     //  When done introducing change move to nex menu
     navigationState++;
}

/**
