#ifndef PALETTES_H_
#define PALETTES_H_

// Define palettes for current and target colors
CRGBPalette16 currentPalette(CRGB::Black);
CRGBPalette16 targetPalette(CRGB::Black);

// Gradient Color Palette definitions for different cpt-city color palettes.

// Gradient palette "bhw1_01_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_01.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 12 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_01_gp ) {
    0, 227,101,  3,
  117, 194, 18, 19,
  255,  92,  8,192};

// Gradient palette "bhw1_04_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_04.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_04_gp ) {
    0, 229,227,  1,
   15, 227,101,  3,
  142,  40,  1, 80,
  198,  17,  1, 79,
  255,   0,  0, 45};

// Gradient palette "bhw1_06_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_06.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 16 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_06_gp ) {
    0, 184,  1,128,
  160,   1,193,182,
  219, 153,227,190,
  255, 255,255,255};

// Gradient palette "bhw1_24_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_24.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 36 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_24_gp ) {
    0, 186,  5,135,
   30, 252, 73,255,
   61, 186,  5,135,
   89,  77,  1,103,
  124, 190, 67,221,
  163,  77,  1,103,
  186,  69, 54,214,
  219, 121,255,255,
  255,  69, 54,214};

// Gradient palette "bhw1_26_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_26.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 52 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_26_gp ) {
    0, 107,  1,205,
   35, 255,255,255,
   73, 107,  1,205,
  107,  10,149,210,
  130, 255,255,255,
  153,  10,149,210,
  170,  27,175,119,
  198,  53,203, 56,
  207, 132,229,135,
  219, 255,255,255,
  231, 132,229,135,
  252,  53,203, 56,
  255,  53,203, 56};

// Gradient palette "bhw1_28_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_28.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 32 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_28_gp ) {
    0,  75,  1,221,
   30, 252, 73,255,
   48, 169,  0,242,
  119,   0,149,242,
  170,  43,  0,242,
  206, 252, 73,255,
  232,  78, 12,214,
  255,   0,149,242};

// Gradient palette "bhw1_purplepink_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_purplepink.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 36 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_purplepink_gp ) {
    0, 242,  5,122,
   58, 239,164,207,
  101, 242,  5,122,
  101, 242,  5,122,
  142, 125,  7,197,
  142, 125,  7,197,
  193, 201, 96,237,
  252,  59,  1,106,
  255,  59,  1,106};

// Gradient palette "bhw1_purplered_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_purplered.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 8 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_purplered_gp ) {
    0, 255,  0,  0,
  255, 107,  1,205};

// Gradient palette "bhw1_sunconure_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_sunconure.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 16 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_sunconure_gp ) {
    0,  20,223, 13,
  160, 232, 65,  1,
  252, 232,  5,  1,
  255, 232,  5,  1};

// Gradient palette "bhw1_sunset1_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_sunset1.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 24 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_sunset1_gp ) {
    0,  33, 21, 25,
   38, 125, 29, 20,
   71, 222, 59, 30,
  145, 190,147,127,
  178,  88,136,203,
  255,   3, 24, 78};

// Gradient palette "bhw1_sunset2_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_sunset2.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_sunset2_gp ) {
    0, 255,175,  8,
   81, 237, 29, 10,
  137, 148, 57, 42,
  165,  68, 54, 54,
  255,  18, 23, 29};

// Gradient palette "bhw1_sunset3_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_sunset3.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_sunset3_gp ) {
    0, 227,237, 56,
   33, 186, 67,  1,
   71, 163, 21,  1,
   81, 157, 13,  1,
  188,  39, 21, 18,
  234,  12,  7,  4,
  255,  12,  7,  4};

// Gradient palette "bhw1_three_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_three.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 32 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_three_gp ) {
    0, 255,255,255,
   45,   7, 12,255,
  112, 227,  1,127,
  112, 227,  1,127,
  140, 255,255,255,
  155, 227,  1,127,
  196,  45,  1, 99,
  255, 255,255,255};

// Gradient palette "bhw1_w00t_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw1/tn/bhw1_w00t.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 16 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw1_w00t_gp ) {
    0,   3, 13, 43,
  104,  78,141,240,
  188, 255,  0,  0,
  255,  28,  1,  1};

// Gradient palette "bhw2_01_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_01.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 44 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_01_gp ) {
    0,  15, 10,  1,
   17,  34, 31,  1,
   66,  69, 84,  2,
   86, 117,130, 10,
  124, 177,186, 28,
  157, 117,130, 10,
  173,  69, 84,  2,
  193,  50, 54,  1,
  229,  34, 31,  1,
  245,  23, 19,  1,
  255,  15, 10,  1};

// Gradient palette "bhw2_07_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_07.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 24 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_07_gp ) {
    0,  92,  1,  1,
   26, 153, 20,  5,
   79, 232, 72, 12,
  127, 220,231, 89,
  173, 232, 72, 12,
  255,  92,  1,  1};

// Gradient palette "bhw2_08_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_08.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 44 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_08_gp ) {
    0,   0, 12,  0,
   33,  10,136, 11,
   50,  60,146, 25,
   51, 171,154, 46,
   61, 171,154, 46,
   68, 255,255,255,
   69, 247, 96,127,
   73, 239, 16, 48,
  162, 224, 52, 83,
  247, 210,111,130,
  255, 210,111,130};

// Gradient palette "bhw2_13_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_13.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_13_gp ) {
    0, 121,  0,  0,
   74, 173, 15,  1,
  132, 234, 70,  1,
  202,  38, 15,  1,
  255,   0,  0,  0};

// Gradient palette "bhw2_22_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_22.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_22_gp ) {
    0,   0,  0,  0,
   99, 227,  1,  1,
  130, 249,199, 95,
  155, 227,  1,  1,
  255,   0,  0,  0};

// Gradient palette "bhw2_23_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_23.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_23_gp ) {
    0,   0,  0,  0,
   66,  57,227,233,
   96, 255,255,  8,
  124, 255,255,255,
  153, 255,255,  8,
  188,  57,227,233,
  255,   0,  0,  0};

// Gradient palette "bhw2_34_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_34.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_34_gp ) {
    0,  92, 53,240,
   89, 224,157, 11,
  124, 255,255, 45,
  198,  65,144,230,
  255,  65,144,230};

// Gradient palette "bhw2_39_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_39.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_39_gp ) {
    0,   2,184,188,
   33,  56, 27,162,
   66,  56, 27,162,
  122, 255,255, 45,
  150, 227, 65,  6,
  201,  67, 13, 27,
  255,  16,  1, 53};

// Gradient palette "bhw2_51_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_51.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_51_gp ) {
    0,  14,  2,  5,
   63,  40,  1,  7,
  130, 182,  1,  1,
  188,  40,  1,  7,
  255,  14,  2,  5};

// Gradient palette "bhw2_n_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_n.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_n_gp ) {
    0,  16,  1, 35,
   63,  39,  6, 75,
  119, 117, 24,197,
  173, 120,  8, 60,
  255, 121,  0,  0};

// Gradient palette "bhw2_sherbet_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_sherbet.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_sherbet_gp ) {
    0,  44,  4, 13,
   38, 224, 25, 68,
   58, 199, 55,102,
  104, 255,255,  8,
  124,  55,124, 65,
  170, 220,227,158,
  255,  97,  3, 13};

// Gradient palette "bhw2_sherbet2_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_sherbet2.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 32 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_sherbet2_gp ) {
    0, 217,  1,  1,
   35, 249, 43, 19,
   71, 247,125,172,
  109, 206,  2, 32,
  163, 210, 23,  9,
  211, 255,255,255,
  232, 252,199, 88,
  255, 206,115, 52};

// Gradient palette "bhw2_sherbet3_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_sherbet3.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 24 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_sherbet3_gp ) {
    0,  25, 85,149,
   61,  54, 18, 75,
  109,  49,133, 34,
  153, 217,151, 15,
  191, 255, 79, 92,
  255, 140, 20, 74};

// Gradient palette "bhw2_whooo_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_whooo.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 52 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_whooo_gp ) {
    0,   7,128, 95,
   30,   8,  9, 35,
   51,  21, 24, 25,
   66,  77, 55, 96,
   84, 255,255,125,
  101,  45, 39,  4,
  122, 224, 45,144,
  137,  82,  1, 34,
  160,  39, 47, 35,
  175, 155, 99, 91,
  204,   4, 10, 21,
  224,   5, 66, 68,
  255,  75,166, 78};

// Gradient palette "bhw2_xmas_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw2/tn/bhw2_xmas.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 48 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw2_xmas_gp ) {
    0,   0, 12,  0,
   40,   0, 55,  0,
   66,   1,117,  2,
   77,   1, 84,  1,
   81,   0, 55,  0,
  119,   0, 12,  0,
  153,  42,  0,  0,
  181, 121,  0,  0,
  204, 255, 12,  8,
  224, 121,  0,  0,
  244,  42,  0,  0,
  255,  42,  0,  0};

// Gradient palette "bhw3_01_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_01.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 52 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_01_gp ) {
    0, 255,146,228,
   25, 152, 43, 65,
   48,  36, 17, 22,
   72,   8, 34, 75,
   81,   1, 58,170,
  104,  42, 49,245,
  124,  15, 15, 95,
  150,   1,  8, 39,
  175,  98, 32, 35,
  204, 123,  9,  2,
  219, 220, 15,  2,
  237, 255, 93,  6,
  255, 244,244,  0};

// Gradient palette "bhw3_02_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_02.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 24 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_02_gp ) {
    0, 121,  1,  1,
   63, 255, 57,  1,
  112, 255, 79, 25,
  145, 255, 79, 25,
  188, 244,146,  3,
  255, 115, 14,  1};

// Gradient palette "bhw3_07_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_07.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 44 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_07_gp ) {
    0, 132,  5,  1,
   30,  12, 13,147,
   53,  54, 32,166,
   73, 103, 39, 98,
   84, 239, 52, 27,
   96,  71,  2,  1,
  117,  46,  8, 33,
  130,  54, 32,166,
  163,  10,  7, 78,
  196, 239, 52, 27,
  255,   1,  1, 14};

// Gradient palette "bhw3_23_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_23.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_23_gp ) {
    0, 232,203,199,
   38, 208, 66,133,
   73, 173, 13, 55,
  117, 197, 47, 14,
  163, 201, 45, 43,
  201, 123,  5,  2,
  255,  27,  1,  1};

// Gradient palette "bhw3_27_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_27.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 32 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_27_gp ) {
    0,  59,  6,  1,
   30, 140, 13,  1,
   76, 255, 55,  8,
   94, 242, 59,  1,
  130,  94,175,170,
  165,  39, 90, 85,
  209,   5, 37, 51,
  255,  41, 91, 88};

// Gradient palette "bhw3_32_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_32.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 52 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_32_gp ) {
    0, 234,231,  1,
   15, 171, 43,  6,
   40, 121,  0,  0,
   53,  95,  1, 29,
   71,  73,  1,168,
   94,  38, 63,221,
  109, 115, 51,221,
  127,  38, 63,221,
  147,  73,  1,168,
  181, 203, 28,  1,
  193, 155, 16, 11,
  216,  73,  1,168,
  255,   1,  4, 29};

// Gradient palette "bhw3_47_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_47.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_47_gp ) {
    0,  28,  1, 98,
   33,  19, 36, 87,
   58,  74,157,199,
   94,  82, 35, 53,
  150, 255,182,  9,
  188, 161,  1,  1,
  255, 249, 91,  1};

// Gradient palette "bhw3_55_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_55.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_55_gp ) {
    0,  42,  0,  0,
   48, 107,  1, 12,
  122, 213,115,162,
  163, 227, 40,120,
  255, 107,  1, 12};

// Gradient palette "bhw3_58_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_58.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 28 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_58_gp ) {
    0, 242,  4,  1,
   48, 255,157, 29,
   91, 249, 21,  3,
  124, 255,128, 18,
  158, 252, 88, 10,
  209, 255, 22,  1,
  255,  98,  1,  1};

// Gradient palette "bhw3_62_gp", originally from
// http://seaviewsensing.com/pub/cpt-city/bhw/bhw3/tn/bhw3_62.png.index.html
// converted for FastLED with gammas (2.6, 2.2, 2.5)
// Size: 20 bytes of program space.

DEFINE_GRADIENT_PALETTE( bhw3_62_gp ) {
    0, 255,255, 45,
   43, 208, 93,  1,
  137, 224,  1,242,
  181, 159,  1, 29,
  255,  63,  4, 68};

// Single array of defined cpt-city color palettes.
// This will let us programmatically choose one based on
// a number, rather than having to activate each explicitly
// by name every time.
// Since it is const, this array could also be moved
// into PROGMEM to save SRAM, but for simplicity of illustration
// we'll keep it in a regular SRAM array.
//
// This list of color palettes acts as a "playlist"; you can
// add or delete, or re-arrange as you wish.
const TProgmemRGBGradientPalettePtr gGradientPalettes[] = {
bhw1_01_gp,
bhw1_04_gp,
bhw1_06_gp,
bhw1_24_gp,
bhw1_26_gp,
bhw1_28_gp,
bhw1_purplepink_gp,
bhw1_purplered_gp,
bhw1_sunconure_gp,
bhw1_sunset1_gp,
bhw1_sunset2_gp,
bhw1_sunset3_gp,
bhw1_three_gp,
bhw1_w00t_gp,
bhw2_01_gp,
bhw2_07_gp,
bhw2_08_gp,
bhw2_13_gp,
bhw2_22_gp,
bhw2_23_gp,
bhw2_34_gp,
bhw2_39_gp,
bhw2_51_gp,
bhw2_n_gp,
bhw2_sherbet_gp,
bhw2_sherbet2_gp,
bhw2_sherbet3_gp,
bhw2_whooo_gp,
bhw2_xmas_gp,
bhw3_01_gp,
bhw3_02_gp,
bhw3_07_gp,
bhw3_23_gp,
bhw3_27_gp,
bhw3_32_gp,
bhw3_47_gp,
bhw3_55_gp,
bhw3_58_gp,
bhw3_62_gp };

// Count of how many cpt-city gradients are defined:
const uint8_t gGradientPaletteCount =
  sizeof( gGradientPalettes) / sizeof( TProgmemRGBGradientPalettePtr );

#endif /* PALETTES_H_ */

