CRI Radio

May 10, 2007

CCS source--ccsView.c

#include
#define ROMDATA const
#define UCHAR unsigned char

#define DEMO_IMGE_EFFECT
//#define DEMO_IMGE_RGB16
//#define DEMO_IMGE_PPM
//#define DEMO_IMGE_GIF

void
DEBUG_Message (const char *fmt, ...)
{
va_list ap;

va_start (ap, fmt);
printf (fmt, ap);
va_end (ap);
printf ("\n");
}

#if defined(_DEBUG)
void ccsViewPic(void)
{
int page=0;
int column;
unsigned long pixel_w1, pixel_w2;
unsigned long *pixel_p;

for(page = 0;page < 220;page++)
{
pixel_p = (unsigned long *) display[page];
for (column = 176/2; column > 0; column--)
{
pixel_w1 = *pixel_p;
pixel_w2 = *pixel_p;
pixel_w1 &= 0xff00ff00;
pixel_w1 >>= 8;
pixel_w2 &= 0x00ff00ff;
pixel_w2 <<= 8;
*(pixel_p++) = pixel_w1 |pixel_w2;
}
}
}
#endif
/*============================================================*/

#if defined(DEMO_IMGE_EFFECT)
#include ".\pic\rgb16.h"

#if 1
#define __NegaRGB
#define __Gray
#define __Sepia
#define __Emboss
#define __Sketch
#define __Smooth
#define __FlipH
#define __FlipV
#else
#endif

#if defined(__NegaRGB)
void NegaRGB(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define NegaRGB(A,B,C,D)
#endif
#if defined(__Gray)
void Gray(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define Gray(A,B,C,D)
#endif
#if defined(__Sepia)
void Sepia(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define Sepia(A,B,C,D)
#endif
#if defined(__Emboss)
void Emboss(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define Emboss(A,B,C,D)
#endif
#if defined(__Sketch)
void Sketch(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define Sketch(A,B,C,D)
#endif
#if defined(__Smooth)
void Smooth(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define Smooth(A,B,C,D)
#endif
#if defined(__FlipH)
void FlipH(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define FlipH(A,B,C,D)
#endif
#if defined(__FlipV)
void FlipV(BYTE *srcAddr, BYTE *dstAddr, WORD width, WORD height);
#else
#define FlipV(A,B,C,D)
#endif

#else
#if defined(DEMO_IMGE_RGB16)
#include ".\pic\demo.h"
#else
#if defined(DEMO_IMGE_PPM)
#include ".\pic\ppm.h"
extern IMGDATA RGBQUAD rgb[DISPLAY_HEIGHT][DISPLAY_WIDTH];
void RGB2RGB565(BYTE* dstAddr,WORD width, WORD height);
#else
#if defined(DEMO_IMGE_GIF)
#include "gif2bmp.c"
#include ".\pic\giff.h"
#endif
#endif
#endif
#endif


int main(void)
{
#if defined(DEMO_IMGE_PPM)
int w,h;
#endif
#if defined(DEMO_IMGE_GIF)
PegPoint Where;

Where.x=0;
Where.y=7;
#endif
for(;;)
{
DEBUG_Message("test 0x%X",0x0F&waitState);
#if defined(DEMO_IMGE_EFFECT)
switch(waitState)
{
case 0:
NegaRGB((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("NegaRGB");break;
case 1:
Gray((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("Gray");break;
case 2:
Sepia((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("Sepia");break;
case 3:
Emboss((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("Emboss");break;
case 4:
Sketch((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("Sketch");break;
case 5:
Smooth((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("SmoothRGB");break;
case 6:
FlipH((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("FlipH");break;
case 7:
FlipV((BYTE *)ucdemoBitmap,(BYTE *)display,176, 220);
DEBUG_Message("FlipV");break;
default:
break;
}
#else
#if defined(DEMO_IMGE_RGB16)
memcpy(display,buff,77440);
#else
#if defined(DEMO_IMGE_PPM)
for(h=0;h<220;h++)
for(w=0;w<176;w++)
{
rgb[h][w].rgbRed=(BYTE)*(buff+15+(h*176+w)*3+0);
rgb[h][w].rgbGreen=(BYTE)*(buff+15+(h*176+w)*3+1);
rgb[h][w].rgbBlue=(BYTE)*(buff+15+(h*176+w)*3+2);
}

RGB2RGB565((BYTE *)display,176, 220);
#else
#if defined(DEMO_IMGE_GIF)
GIFDecodeMain (Where,buff,sizeof(buff));
#endif
#endif
#endif
#endif
#ifdef _DEBUG
ccsViewPic();
#endif
TargetLabel:
DEBUG_Message("test continue");
}

//DEBUG_Message("test over!");
}

/*============================================================*/