#ifdef USE_TI89 #include "Lava.h" #define Y0 0 #else #define Y0 0 #define LCD_W 160 #define LCD_H 80 #endif #define KEY_ESC 27 #define KEY_ENTER 13 #define KEY_UP 20 #define KEY_DOWN 21 #define KEY_RIGHT 22 #define KEY_LEFT 23 char FlmHead[16]; char FlmData[1600]; char BmpData[1600]; int play_flm(char fp); void main() { char fp; fp = fopen("/FlmData/Apple.flm", "r"); ClearScreen(); Block(0, 80, 159, 99, 1); Rectangle(1, 81, 158, 98, 0); TextOut(4, 84, "FlmPlayer v1.0 0000/0000", 5); Refresh(); if( fp!=NULL ) { while(play_flm(fp)==0) { } fclose(fp); } ClearScreen(); TextOut(52, 32, "The END!", 1); Block(0, 80, 159, 99, 1); Rectangle(1, 81, 158, 98, 0); TextOut(4, 84, "FlmPlayer v1.0 by Snoopy", 5); Refresh(); getchar(); } char str_num[5]; void num2str(int num) { int n = 4; while(--n >= 0) { str_num[n] = '0' + num%10; num = num / 10; } } int play_flm(char fp) { int frames; int i, n, m; int ms; int tick0; int length; char delta; char type; char count; char low, high, ch; rewind(fp); fread(FlmHead, 1, 16, fp); if( FlmHead[0]=='F' && FlmHead[1]=='L' && FlmHead[2]=='M' && FlmHead[3]==0x10 ) { frames = FlmHead[5] + FlmHead[6]*256 + 1; Box(4+6*21, 84, 4+6*25, 95, 1, 1); num2str(frames); TextOut(4+6*21, 84, str_num, 0x45); // if( FlmHead[4]==0 ) {// FLM1.0 /*ms = FlmHead[7] + FlmHead[8]*256; ms = ms*36/10; if(ms<10) ms=10; fseek(fp, 0, SEEK_END); if( frames!=ftell(fp)/1600 ) { return -1;//ÎļþË𻵠} for(i=0; i>4; // if (fread(FlmData, 1, length, fp) != length) { break; } if( type==0 ) { memcpy(BmpData, FlmData, 1600); } else if( type==1 || type==2 ) { if( type==1 ) { memset(BmpData, 0, 1600); } // m = 0; n = 0; for(n=0; n 0 && CheckKey(KEY_RIGHT)==0) {//ÑÓʱ while(((Getms()-tick0)&0xff) < ms); } // ch = Inkey(); if( ch==KEY_ESC ) { return -1; } if( ch==KEY_ENTER ) { ms = 16; getchar(); } else if( ch==KEY_LEFT ) { return 0; } else if( ch==KEY_UP ) { if(ms>0) ms=ms-4; } else if( ch==KEY_DOWN ) { if(ms<100) ms=ms+4; } }//end while frames return 0; } } return -1; }