Using a button with a switchcase

I'm working on an infinity mirror as a school project, and I am having trouble figuring out how to cycle through different patterns on a WS2812B led strip. I keep getting errors such as Variable not Defined, and I haven't found a good answer yet. I don't have the button press in the code yet. I was editing an example called ColorPalette from the FastLED library. Sorry if this is the wrong kind of question or setup for a question. I'm new to this website and its capabilities.

ColorPaletteEND_PROJECT.ino (9.75 KB)

After the compile fails, click the "copy error messages" button and post between code tags, like this (do not type red text):

[code]

<--- start code tag
Arduino: 1.6.5 (Linux), Board: "Arduino Nano, ATmega328"

sketch_apr15a:6: error: expected unqualified-id before '{' token
expected unqualified-id before '{' token
paste error msg between code tags
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
[/code] <--- end code tag

Where does the button come in?

There were a couple syntax errors and an extra default case, see comments with multiple "*". With these changes it compiled for me.

#include <FastLED.h>

#define LED_PIN     5
#define NUM_LEDS    71
#define BRIGHTNESS  64
#define LED_TYPE    WS2811
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

#define UPDATES_PER_SECOND 100

// This example shows several ways to set up and use 'palettes' of colors
// with FastLED.
//
// These compact palettes provide an easy way to re-colorize your
// animation on the fly, quickly, easily, and with low overhead.
//
// USING palettes is MUCH simpler in practice than in theory, so first just
// run this sketch, and watch the pretty lights as you then read through
// the code.  Although this sketch has eight (or more) different color schemes,
// the entire sketch compiles down to about 6.5K on AVR.
//
// FastLED provides a few pre-configured color palettes, and makes it
// extremely easy to make up your own color schemes with palettes.
//
// Some notes on the more abstract 'theory and practice' of
// FastLED compact palettes are at the bottom of this file.



CRGBPalette16 currentPalette;
TBlendType    currentBlending;

extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;


void setup() {
  delay( 3000 ); // power-up safety delay
  FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(  BRIGHTNESS );

  currentPalette = RainbowColors_p;
  currentBlending = LINEARBLEND;
  pinMode(2, INPUT);
}


void loop()
{
  ChangePalettePeriodically();

  static uint8_t startIndex = 0;
  startIndex = startIndex + 1; /* motion speed */

  FillLEDsFromPaletteColors( startIndex);

  FastLED.show();
  FastLED.delay(1000 / UPDATES_PER_SECOND);
}

void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
  uint8_t brightness = 255;

  for ( int i = 0; i < NUM_LEDS; i++) {
    leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
    colorIndex += 3;
  }
}


// There are several different palettes of colors demonstrated here.
//
// FastLED provides several 'preset' palettes: RainbowColors_p, RainbowStripeColors_p,
// OceanColors_p, CloudColors_p, LavaColors_p, ForestColors_p, and PartyColors_p.
//
// Additionally, you can manually define your own color palettes, or you can write
// code that creates color palettes on the fly.  All are shown here.

void ChangePalettePeriodically()
{
  //uint8_t secondHand = (millis() / 1000) % 60;
  //static uint8_t lastSecond = 99;
  for ( int Pattern = 1; Pattern < 11; Pattern++) {
    //while(digitalRead(2) != 1){



    switch (Pattern) {
      case 1:
        // statements
        currentPalette = RainbowColors_p;         currentBlending = LINEARBLEND;
        break;
      case 2:
        // statements
        currentPalette = RainbowStripeColors_p;   currentBlending = NOBLEND;
        break;
      case 3:
        // statements
        currentPalette = RainbowStripeColors_p;   currentBlending = LINEARBLEND;
        break;
      case 4:
        // statements
        SetupPurpleAndGreenPalette();             currentBlending = LINEARBLEND;
        break;
      case 5:
        // statements
        SetupTotallyRandomPalette();              currentBlending = LINEARBLEND;
        break;
      case 6:
        // statements
        SetupBlackAndWhiteStripedPalette();       currentBlending = NOBLEND;
        break;
      case 7:
        // statements
        SetupBlackAndWhiteStripedPalette();       currentBlending = LINEARBLEND;
        break;
      case 8:
        // statements
        currentPalette = CloudColors_p;           currentBlending = LINEARBLEND;
        break;
      case 9:
        // statements
        currentPalette = PartyColors_p;           currentBlending = LINEARBLEND;
        break;
      case 10:
        // statements
        currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND;
        break;
      /* *********** remove
        default:
        // statements
      ********/
      case 11:
        // statements
        currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND;
        break;
      default:
        break; /********* add *********/
        // statements
    }

    // statements
  }

  //if( lastSecond != secondHand) {
  //lastSecond = secondHand;
  //if( secondHand ==  0)  { currentPalette = RainbowColors_p;         currentBlending = LINEARBLEND; }
  //if( secondHand == 10)  { currentPalette = RainbowStripeColors_p;   currentBlending = NOBLEND;  }
  //if( secondHand == 15)  { currentPalette = RainbowStripeColors_p;   currentBlending = LINEARBLEND; }
  //if( secondHand == 20)  { SetupPurpleAndGreenPalette();             currentBlending = LINEARBLEND; }
  //if( secondHand == 25)  { SetupTotallyRandomPalette();              currentBlending = LINEARBLEND; }
  //if( secondHand == 30)  { SetupBlackAndWhiteStripedPalette();       currentBlending = NOBLEND; }
  //if( secondHand == 35)  { SetupBlackAndWhiteStripedPalette();       currentBlending = LINEARBLEND; }
  //if( secondHand == 40)  { currentPalette = CloudColors_p;           currentBlending = LINEARBLEND; }
  //if( secondHand == 45)  { currentPalette = PartyColors_p;           currentBlending = LINEARBLEND; }
  //if( secondHand == 50)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND;  }
  //if( secondHand == 55)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; }
  /* *********** remove } *******/
}

// This function fills the palette with totally random colors.
void SetupTotallyRandomPalette()
{
  for ( int i = 0; i < 16; i++) {
    currentPalette[i] = CHSV( random8(), 255, random8());
  }
}

// This function sets up a palette of black and white stripes,
// using code.  Since the palette is effectively an array of
// sixteen CRGB colors, the various fill_* functions can be used
// to set them up.
void SetupBlackAndWhiteStripedPalette()
{
  // 'black out' all 16 palette entries...
  fill_solid( currentPalette, 16, CRGB::Black);
  // and set every fourth one to white.
  currentPalette[0] = CRGB::White;
  currentPalette[4] = CRGB::White;
  currentPalette[8] = CRGB::White;
  currentPalette[12] = CRGB::White;

}

// This function sets up a palette of purple and green stripes.
void SetupPurpleAndGreenPalette()
{
  CRGB purple = CHSV( HUE_PURPLE, 255, 255);
  CRGB green  = CHSV( HUE_GREEN, 255, 255);
  CRGB black  = CRGB::Black;

  currentPalette = CRGBPalette16(
                     green,  green,  black,  black,
                     purple, purple, black,  black,
                     green,  green,  black,  black,
                     purple, purple, black,  black );
}


// This example shows how to set up a static color palette
// which is stored in PROGMEM (flash), which is almost always more
// plentiful than RAM.  A static PROGMEM palette like this
// takes up 64 bytes of flash.
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
  CRGB::Red,
  CRGB::Gray, // 'white' is too bright compared to red and blue
  CRGB::Blue,
  CRGB::Black,

  CRGB::Red,
  CRGB::Gray,
  CRGB::Blue,
  CRGB::Black,

  CRGB::Red,
  CRGB::Red,
  CRGB::Gray,
  CRGB::Gray,
  CRGB::Blue,
  CRGB::Blue,
  CRGB::Black,
  CRGB::Black
};



// Additionl notes on FastLED compact palettes:
//
// Normally, in computer graphics, the palette (or "color lookup table")
// has 256 entries, each containing a specific 24-bit RGB color.  You can then
// index into the color palette using a simple 8-bit (one byte) value.
// A 256-entry color palette takes up 768 bytes of RAM, which on Arduino
// is quite possibly "too many" bytes.
//
// FastLED does offer traditional 256-element palettes, for setups that
// can afford the 768-byte cost in RAM.
//
// However, FastLED also offers a compact alternative.  FastLED offers
// palettes that store 16 distinct entries, but can be accessed AS IF
// they actually have 256 entries; this is accomplished by interpolating
// between the 16 explicit entries to create fifteen intermediate palette
// entries between each pair.
//
// So for example, if you set the first two explicit entries of a compact
// palette to Green (0,255,0) and Blue (0,0,255), and then retrieved
// the first sixteen entries from the virtual palette (of 256), you'd get
// Green, followed by a smooth gradient from green-to-blue, and then Blue.

outsider:
After the compile fails, click the "copy error messages" button and post between code tags, like this (do not type red text):

[code]

<--- start code tag
Arduino: 1.6.5 (Linux), Board: "Arduino Nano, ATmega328"

sketch_apr15a:6: error: expected unqualified-id before '{' token
expected unqualified-id before '{' token
paste error msg between code tags
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

[/code]

<--- end code tag

Where does the button come in?

I am trying to have the scrolling pattern(palette) on the led strip to change when I press the button, so somewhere around the switch case I think.

This is the error:

Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"

In file included from L:\Engineering\Electronics\Arduino\ColorPaletteEND_PROJECT\ColorPaletteEND_PROJECT.ino:1:0:

L:\Engineering\Electronics\Arduino\libraries\FastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.008

 #    pragma message "FastLED version 3.001.008"

                     ^

L:\Engineering\Electronics\Arduino\ColorPaletteEND_PROJECT\ColorPaletteEND_PROJECT.ino: In function 'void ChangePalettePeriodically()':

ColorPaletteEND_PROJECT:105: error: 'SetupPurpleAndGreenPalette' was not declared in this scope

         SetupPurpleAndGreenPalette();             currentBlending = LINEARBLEND;

                                    ^

ColorPaletteEND_PROJECT:109: error: 'SetupTotallyRandomPalette' was not declared in this scope

         SetupTotallyRandomPalette();              currentBlending = LINEARBLEND;

                                   ^

ColorPaletteEND_PROJECT:113: error: 'SetupBlackAndWhiteStripedPalette' was not declared in this scope

         SetupBlackAndWhiteStripedPalette();       currentBlending = NOBLEND;

                                          ^

ColorPaletteEND_PROJECT:137: error: multiple default labels in one switch

       default:

       ^

ColorPaletteEND_PROJECT:131: error: this is the first default label

       default:

       ^

ColorPaletteEND_PROJECT:139: error: expected primary-expression before '}' token

     }

     ^

L:\Engineering\Electronics\Arduino\ColorPaletteEND_PROJECT\ColorPaletteEND_PROJECT.ino: At global scope:

ColorPaletteEND_PROJECT:207: error: expected declaration before '}' token

 }

 ^

exit status 1
'SetupPurpleAndGreenPalette' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.