#include <stdio.h>
#include "png.h"

#include "s2p_lib.h"
#include "s2p_const.h"

const char imagetype[2 /*alpha */ ][2 /*grey */ ][6 /*bpp */ ] =
{
  { {3, 3, 3, 3, 2, 2},		/* no alpha, no grey */
    {0, 0, 0, 0, 2, 2} },	/* no alpha, grey */
  { {3, 3, 3, 3, 6, 6},		/* alpha, no grey */
    {4, 4, 4, 4, 6, 6} }	/* alpha, grey */
};


const rgb_t rgb2[2] =
{
  {255, 255, 255}, {  0,   0,   0},
};


const rgb_t rgb4[4] =
{
  {255, 255, 255}, {170, 170, 170}, { 85,  85,  85}, {  0,   0,   0}
};


const rgb_t rgb16[16] =
{
  {255, 255, 255}, {221, 221, 221}, {187, 187, 187}, {153, 153, 153},
  {119, 119, 119}, { 85,  85,  85}, { 51,  51,  51}, {  0,   0,   0},
  {  0,  68, 153}, {238, 238,   0}, {  0, 204,   0}, {221,   0,   0},
  {238, 238, 187}, { 85, 136,   0}, {255, 187,   0}, {  0, 187, 255},
};


const rgb_t rgb256[256] =
{
  {  0,   0,   0}, { 17,  17,  17}, { 34,  34,  34}, { 51,  51,  51},
  { 68,   0,   0}, { 85,  17,  17}, {102,  34,  34}, {119,  51,  51},
  {  0,   0,  68}, { 17,  17,  85}, { 34,  34, 102}, { 51,  51, 119},
  { 68,   0,  68}, { 85,  17,  85}, {102,  34, 102}, {119,  51, 119},
  {136,   0,   0}, {153,  17,  17}, {170,  34,  34}, {187,  51,  51},
  {204,   0,   0}, {221,  17,  17}, {238,  34,  34}, {255,  51,  51},
  {136,   0,  68}, {153,  17,  85}, {170,  34, 102}, {187,  51, 119},
  {204,   0,  68}, {221,  17,  85}, {238,  34, 102}, {255,  51, 119},
  {  0,  68,   0}, { 17,  85,  17}, { 34, 102,  34}, { 51, 119,  51},
  { 68,  68,   0}, { 85,  85,  17}, {102, 102,  34}, {119, 119,  51},
  {  0,  68,  68}, { 17,  85,  85}, { 34, 102, 102}, { 51, 119, 119},
  { 68,  68,  68}, { 85,  85,  85}, {102, 102, 102}, {119, 119, 119},
  {136,  68,   0}, {153,  85,  17}, {170, 102,  34}, {187, 119,  51},
  {204,  68,   0}, {221,  85,  17}, {238, 102,  34}, {255, 119,  51},
  {136,  68,  68}, {153,  85,  85}, {170, 102, 102}, {187, 119, 119},
  {204,  68,  68}, {221,  85,  85}, {238, 102, 102}, {255, 119, 119},
  {  0, 136,   0}, { 17, 153,  17}, { 34, 170,  34}, { 51, 187,  51},
  { 68, 136,   0}, { 85, 153,  17}, {102, 170,  34}, {119, 187,  51},
  {  0, 136,  68}, { 17, 153,  85}, { 34, 170, 102}, { 51, 187, 119},
  { 68, 136,  68}, { 85, 153,  85}, {102, 170, 102}, {119, 187, 119},
  {136, 136,   0}, {153, 153,  17}, {170, 170,  34}, {187, 187,  51},
  {204, 136,   0}, {221, 153,  17}, {238, 170,  34}, {255, 187,  51},
  {136, 136,  68}, {153, 153,  85}, {170, 170, 102}, {187, 187, 119},
  {204, 136,  68}, {221, 153,  85}, {238, 170, 102}, {255, 187, 119},
  {  0, 204,   0}, { 17, 221,  17}, { 34, 238,  34}, { 51, 255,  51},
  { 68, 204,   0}, { 85, 221,  17}, {102, 238,  34}, {119, 255,  51},
  {  0, 204,  68}, { 17, 221,  85}, { 34, 238, 102}, { 51, 255, 119},
  { 68, 204,  68}, { 85, 221,  85}, {102, 238, 102}, {119, 255, 119},
  {136, 204,   0}, {153, 221,  17}, {170, 238,  34}, {187, 255,  51},
  {204, 204,   0}, {221, 221,  17}, {238, 238,  34}, {255, 255,  51},
  {136, 204,  68}, {153, 221,  85}, {170, 238, 102}, {187, 255, 119},
  {204, 204,  68}, {221, 221,  85}, {238, 238, 102}, {255, 255, 119},
  {  0,   0, 136}, { 17,  17, 153}, { 34,  34, 170}, { 51,  51, 187},
  { 68,   0, 136}, { 85,  17, 153}, {102,  34, 170}, {119,  51, 187},
  {  0,   0, 204}, { 17,  17, 221}, { 34,  34, 238}, { 51,  51, 255},
  { 68,   0, 204}, { 85,  17, 221}, {102,  34, 238}, {119,  51, 255},
  {136,   0, 136}, {153,  17, 153}, {170,  34, 170}, {187,  51, 187},
  {204,   0, 136}, {221,  17, 153}, {238,  34, 170}, {255,  51, 187},
  {136,   0, 204}, {153,  17, 221}, {170,  34, 238}, {187,  51, 255},
  {204,   0, 204}, {221,  17, 221}, {238,  34, 238}, {255,  51, 255},
  {  0,  68, 136}, { 17,  85, 153}, { 34, 102, 170}, { 51, 119, 187},
  { 68,  68, 136}, { 85,  85, 153}, {102, 102, 170}, {119, 119, 187},
  {  0,  68, 204}, { 17,  85, 221}, { 34, 102, 238}, { 51, 119, 255},
  { 68,  68, 204}, { 85,  85, 221}, {102, 102, 238}, {119, 119, 255},
  {136,  68, 136}, {153,  85, 153}, {170, 102, 170}, {187, 119, 187},
  {204,  68, 136}, {221,  85, 153}, {238, 102, 170}, {255, 119, 187},
  {136,  68, 204}, {153,  85, 221}, {170, 102, 238}, {187, 119, 255},
  {204,  68, 204}, {221,  85, 221}, {238, 102, 238}, {255, 119, 255},
  {  0, 136, 136}, { 17, 153, 153}, { 34, 170, 170}, { 51, 187, 187},
  { 68, 136, 136}, { 85, 153, 153}, {102, 170, 170}, {119, 187, 187},
  {  0, 136, 204}, { 17, 153, 221}, { 34, 170, 238}, { 51, 187, 255},
  { 68, 136, 204}, { 85, 153, 221}, {102, 170, 238}, {119, 187, 255},
  {136, 136, 136}, {153, 153, 153}, {170, 170, 170}, {187, 187, 187},
  {204, 136, 136}, {221, 153, 153}, {238, 170, 170}, {255, 187, 187},
  {136, 136, 204}, {153, 153, 221}, {170, 170, 238}, {187, 187, 255},
  {204, 136, 204}, {221, 153, 221}, {238, 170, 238}, {255, 187, 255},
  {  0, 204, 136}, { 17, 221, 153}, { 34, 238, 170}, { 51, 255, 187},
  { 68, 204, 136}, { 85, 221, 153}, {102, 238, 170}, {119, 255, 187},
  {  0, 204, 204}, { 17, 221, 221}, { 34, 238, 238}, { 51, 255, 255},
  { 68, 204, 204}, { 85, 221, 221}, {102, 238, 238}, {119, 255, 255},
  {136, 204, 136}, {153, 221, 153}, {170, 238, 170}, {187, 255, 187},
  {204, 204, 136}, {221, 221, 153}, {238, 238, 170}, {255, 255, 187},
  {136, 204, 204}, {153, 221, 221}, {170, 238, 238}, {187, 255, 255},
  {204, 204, 204}, {221, 221, 221}, {238, 238, 238}, {255, 255, 255}
};


const rgb_t *const palinfo[] =
{ rgb2, rgb4, rgb16, rgb256 };

const int palsize[] =
{
  sizeof (rgb2), sizeof (rgb4), sizeof (rgb16), sizeof (rgb256)
};
