⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generate_rocklatin.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
📖 第 1 页 / 共 2 页
字号:
/*************************************************************************** *             __________               __   ___. *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  / *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  < *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \ *                     \/            \/     \/    \/            \/ * $Id: generate_rocklatin.c,v 1.1 2003/01/10 10:05:32 kjer Exp $ * * Copyright (C) 2003 by Kjell Ericson * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/#include <stdio.h>#include <stdlib.h>#define CHAR_WIDTH 8#define CHAR_HEIGHT 8#define BITMAP_WIDTH ((CHAR_WIDTH)*17)#define BITMAP_HEIGHT ((CHAR_HEIGHT)*17)#define SIZE 2unsigned int bitmap[BITMAP_WIDTH][BITMAP_HEIGHT];extern unsigned char extended_font_player[256][8];extern unsigned char font_new_player[256][5];extern unsigned char font_old_player[256][5];extern unsigned short new_lcd_rocklatin1_to_xlcd[];extern unsigned short old_lcd_rocklatin1_to_xlcd[];extern unsigned char lcd_player_extended_lcd_to_rocklatin1[];unsigned char (* font)[256][5];unsigned short *rocklatin;char show_subst=0;char show_hardware=0;char shadow_show_hardware=0;void set_pixel(int x, int y, int col){  bitmap[x][y]=col;}void draw_extended_char(unsigned char chr, int x, int y){  int x2, y2;  unsigned char *data;  short mapped_char;  int col=0;  data=extended_font_player[chr];  col=0xf00000;  for (x2=0; x2<5; x2++) {    for (y2=0; y2<7; y2++) {      if (data[y2]&((1<<4)>>x2))        set_pixel(x+x2, y+y2, col);      else        set_pixel(x+x2, y+y2, 0xc0c0c0);    }  }}void draw_char(unsigned char chr, int x, int y){  int x2, y2;  unsigned char *data;  short mapped_char;  int col=0;  if (show_hardware)    mapped_char=chr;  else {    mapped_char=rocklatin[chr];    if (chr<=0x20 && mapped_char==0xff)      mapped_char=rocklatin[' '];  }  if (mapped_char>=512) {    if (show_subst) {      chr=lcd_player_extended_lcd_to_rocklatin1[mapped_char-512];      mapped_char=rocklatin[chr];      data=(*font)[mapped_char];    } else {      draw_extended_char(mapped_char-512, x, y);      return;    }    col=0xf00000;  } else if (mapped_char<256) {    data=(*font)[mapped_char];  } else if (mapped_char>=256) {    mapped_char=mapped_char-256;  }  for (x2=0; x2<5; x2++) {    for (y2=0; y2<7; y2++) {      if (data[x2]&(1<<y2))        set_pixel(x+x2, y+y2, col);      else        set_pixel(x+x2, y+y2, 0xc0c0c0);    }  }}int main (int argc, char** argv){  int x, y;  int loop;  char *filename;  FILE *fp;  for (loop=0; loop<6; loop++) {    switch (loop) {    case 0:      font=&font_old_player;      rocklatin=old_lcd_rocklatin1_to_xlcd;      filename="lcd_old.gif";      show_subst=0;      show_hardware=0;      break;    case 1:      font=&font_new_player;      rocklatin=new_lcd_rocklatin1_to_xlcd;      filename="lcd_new.gif";      show_subst=0;      show_hardware=0;      break;    case 2:      font=&font_old_player;      rocklatin=old_lcd_rocklatin1_to_xlcd;      filename="lcd_old_subst.gif";      show_subst=1;      show_hardware=0;      break;    case 3:      font=&font_new_player;      rocklatin=new_lcd_rocklatin1_to_xlcd;      filename="lcd_new_subst.gif";      show_subst=1;      show_hardware=0;      break;    case 4:      font=&font_old_player;      rocklatin=old_lcd_rocklatin1_to_xlcd;      filename="lcd_old_hw.gif";      show_subst=1;      show_hardware=1;      break;    case 5:      font=&font_new_player;      rocklatin=new_lcd_rocklatin1_to_xlcd;      filename="lcd_new_hw.gif";      show_subst=1;      show_hardware=1;      break;    default:      printf("Not in loop!\n");      exit(0);    }    fp=fopen("tmp.pnm", "wb");    if (!fp) {      printf("Error opening %s!\n", filename);      exit(0);    }    memset(bitmap, 255, sizeof(bitmap));    fprintf(fp, "P3\n#PNM showing a picture of the Rocklatin charset\n");    fprintf(fp, "%d %d\n255\n", BITMAP_HEIGHT*SIZE, BITMAP_WIDTH*SIZE);    shadow_show_hardware=show_hardware;    show_hardware=0;    for (x=0; x<16; x++) {      draw_char(x+(x<10?'0':'A'-10), CHAR_WIDTH+CHAR_WIDTH*x+1, 0);      draw_char(x+(x<10?'0':'A'-10), 1, CHAR_WIDTH+CHAR_WIDTH*x);    }    show_hardware=shadow_show_hardware;    for (x=0; x<16; x++) {      for (y=0; y<16; y++) {        draw_char(x+y*16, CHAR_WIDTH+CHAR_WIDTH*x+1, y*CHAR_HEIGHT+CHAR_HEIGHT);      }    }    for (y=0; y<BITMAP_HEIGHT; y++) {      int i, z;      for (i=0; i<SIZE; i++) {        for (x=0; x<BITMAP_WIDTH; x++) {          unsigned int col=bitmap[x][y];          if (y<CHAR_HEIGHT || x<CHAR_WIDTH) {            col=0xffffffff-col;          }          for (z=0; z<SIZE; z++) {            fprintf(fp, "%d ", (col>>16)&255);            fprintf(fp, "%d ", (col>>8)&255);            fprintf(fp, "%d  ", (col)&255);          }        }        fprintf(fp, "\n");      }    }    fclose(fp);    {      char buffer[200];      sprintf(buffer, "convert tmp.pnm %s", filename);      system(buffer);      system("rm tmp.pnm");    }  }}unsigned char font_new_player[256][5] = {	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 00 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 01 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 02 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 03 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 04 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 05 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 06 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 07 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 08 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 09 */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0a */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0b */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0c */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0d */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0e */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0f */	{ 0x3e, 0x1c, 0x1c, 0x08, 0x08 }, /* 10 */	{ 0x08, 0x08, 0x1c, 0x1c, 0x3e }, /* 11 */	{ 0x02, 0x04, 0x08, 0x10, 0x20 }, /* 12 */	{ 0x00, 0x4f, 0x00, 0x4f, 0x00 }, /* 13 */	{ 0x06, 0x0f, 0x7f, 0x01, 0x7f }, /* 14 */	{ 0x48, 0x56, 0x55, 0x35, 0x09 }, /* 15 */	{ 0x0c, 0x0c, 0x0c, 0x0c, 0x0c }, /* 16 */	{ 0x10, 0x38, 0x54, 0x10, 0x1f }, /* 17 */	{ 0x04, 0x02, 0x7f, 0x02, 0x04 }, /* 18 */	{ 0x10, 0x20, 0x7f, 0x20, 0x10 }, /* 19 */	{ 0x7f, 0x3e, 0x1c, 0x08, 0x7f }, /* 1a */	{ 0x7f, 0x08, 0x1c, 0x3e, 0x7f }, /* 1b */	{ 0x7f, 0x08, 0x2a, 0x1c, 0x08 }, /* 1c */	{ 0x08, 0x1c, 0x2a, 0x08, 0x7f }, /* 1d */	{ 0x02, 0x0e, 0x3e, 0x0e, 0x02 }, /* 1e */	{ 0x20, 0x38, 0x3e, 0x38, 0x20 }, /* 1f */	{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 20 */	{ 0x00, 0x00, 0x4f, 0x00, 0x00 }, /* 21 */	{ 0x00, 0x07, 0x00, 0x07, 0x00 }, /* 22 */	{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* 23 */	{ 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* 24 */	{ 0x23, 0x13, 0x08, 0x64, 0x62 }, /* 25 */	{ 0x36, 0x49, 0x55, 0x22, 0x50 }, /* 26 */	{ 0x00, 0x05, 0x03, 0x00, 0x00 }, /* 27 */	{ 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* 28 */	{ 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* 29 */	{ 0x14, 0x08, 0x3e, 0x08, 0x14 }, /* 2a */	{ 0x08, 0x08, 0x3e, 0x08, 0x08 }, /* 2b */	{ 0x00, 0x50, 0x30, 0x00, 0x00 }, /* 2c */	{ 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 2d */	{ 0x00, 0x30, 0x30, 0x00, 0x00 }, /* 2e */	{ 0x20, 0x10, 0x08, 0x04, 0x02 }, /* 2f */	{ 0x3e, 0x51, 0x49, 0x45, 0x3e }, /* 30 */	{ 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 31 */	{ 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 32 */	{ 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 33 */	{ 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 34 */	{ 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 35 */	{ 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 36 */	{ 0x01, 0x01, 0x71, 0x0d, 0x03 }, /* 37 */	{ 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 38 */	{ 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 39 */	{ 0x00, 0x36, 0x36, 0x00, 0x00 }, /* 3a */	{ 0x00, 0x5b, 0x3b, 0x00, 0x00 }, /* 3b */	{ 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 3c */	{ 0x14, 0x14, 0x14, 0x14, 0x14 }, /* 3d */	{ 0x00, 0x41, 0x22, 0x14, 0x08 }, /* 3e */	{ 0x02, 0x01, 0x51, 0x09, 0x06 }, /* 3f */	{ 0x32, 0x49, 0x79, 0x41, 0x3e }, /* 40 */	{ 0x7e, 0x11, 0x11, 0x11, 0x7e }, /* 41 */	{ 0x7f, 0x49, 0x49, 0x49, 0x36 }, /* 42 */	{ 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* 43 */	{ 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* 44 */	{ 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* 45 */	{ 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* 46 */	{ 0x3e, 0x41, 0x49, 0x49, 0x7a }, /* 47 */	{ 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* 48 */	{ 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* 49 */	{ 0x20, 0x41, 0x41, 0x3f, 0x01 }, /* 4a */	{ 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* 4b */	{ 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* 4c */	{ 0x7f, 0x02, 0x0c, 0x02, 0x7f }, /* 4d */	{ 0x7f, 0x04, 0x08, 0x10, 0x7f }, /* 4e */	{ 0x3e, 0x41, 0x41, 0x41, 0x3e }, /* 4f */	{ 0x7f, 0x09, 0x09, 0x09, 0x06 }, /* 50 */	{ 0x3e, 0x41, 0x41, 0x21, 0x5e }, /* 51 */	{ 0x7f, 0x09, 0x19, 0x29, 0x46 }, /* 52 */	{ 0x26, 0x49, 0x49, 0x49, 0x32 }, /* 53 */	{ 0x01, 0x01, 0x7f, 0x01, 0x01 }, /* 54 */	{ 0x3f, 0x40, 0x40, 0x40, 0x3f }, /* 55 */	{ 0x1f, 0x20, 0x40, 0x20, 0x1f }, /* 56 */	{ 0x3f, 0x40, 0x38, 0x40, 0x3f }, /* 57 */	{ 0x63, 0x14, 0x08, 0x14, 0x63 }, /* 58 */	{ 0x03, 0x04, 0x78, 0x04, 0x03 }, /* 59 */	{ 0x61, 0x51, 0x49, 0x45, 0x43 }, /* 5a */	{ 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 5b */	{ 0x15, 0x16, 0x7c, 0x16, 0x15 }, /* 5c */	{ 0x00, 0x41, 0x41, 0x7f, 0x00 }, /* 5d */	{ 0x04, 0x02, 0x01, 0x02, 0x04 }, /* 5e */	{ 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 5f */	{ 0x00, 0x01, 0x02, 0x04, 0x00 }, /* 60 */	{ 0x20, 0x54, 0x54, 0x54, 0x78 }, /* 61 */	{ 0x7f, 0x48, 0x44, 0x44, 0x38 }, /* 62 */	{ 0x38, 0x44, 0x44, 0x44, 0x20 }, /* 63 */	{ 0x38, 0x44, 0x44, 0x48, 0x7f }, /* 64 */	{ 0x38, 0x54, 0x54, 0x54, 0x18 }, /* 65 */	{ 0x08, 0x7e, 0x09, 0x01, 0x02 }, /* 66 */	{ 0x0c, 0x52, 0x52, 0x52, 0x3e }, /* 67 */	{ 0x7f, 0x08, 0x04, 0x04, 0x78 }, /* 68 */	{ 0x00, 0x44, 0x7d, 0x40, 0x00 }, /* 69 */	{ 0x20, 0x40, 0x44, 0x3d, 0x00 }, /* 6a */	{ 0x7f, 0x10, 0x28, 0x44, 0x00 }, /* 6b */	{ 0x00, 0x41, 0x7f, 0x40, 0x00 }, /* 6c */	{ 0x7c, 0x04, 0x18, 0x04, 0x78 }, /* 6d */	{ 0x7c, 0x08, 0x04, 0x04, 0x78 }, /* 6e */	{ 0x38, 0x44, 0x44, 0x44, 0x38 }, /* 6f */	{ 0x7c, 0x14, 0x14, 0x14, 0x08 }, /* 70 */	{ 0x08, 0x14, 0x14, 0x18, 0x7c }, /* 71 */	{ 0x7c, 0x08, 0x04, 0x04, 0x08 }, /* 72 */	{ 0x48, 0x54, 0x54, 0x54, 0x20 }, /* 73 */	{ 0x04, 0x3f, 0x44, 0x40, 0x20 }, /* 74 */	{ 0x3c, 0x40, 0x40, 0x20, 0x7c }, /* 75 */	{ 0x1c, 0x20, 0x40, 0x20, 0x1c }, /* 76 */	{ 0x3c, 0x40, 0x30, 0x40, 0x3c }, /* 77 */	{ 0x44, 0x28, 0x10, 0x28, 0x44 }, /* 78 */	{ 0x4c, 0x50, 0x50, 0x50, 0x3c }, /* 79 */	{ 0x44, 0x64, 0x54, 0x4c, 0x44 }, /* 7a */	{ 0x00, 0x08, 0x36, 0x41, 0x00 }, /* 7b */	{ 0x00, 0x00, 0x7f, 0x00, 0x00 }, /* 7c */	{ 0x00, 0x41, 0x36, 0x08, 0x00 }, /* 7d */	{ 0x08, 0x08, 0x2a, 0x1c, 0x08 }, /* 7e */	{ 0x08, 0x1c, 0x2a, 0x08, 0x08 }, /* 7f */	{ 0x40, 0x40, 0x40, 0x40, 0x40 }, /* 80 */	{ 0x60, 0x60, 0x60, 0x60, 0x60 }, /* 81 */	{ 0x70, 0x70, 0x70, 0x70, 0x70 }, /* 82 */	{ 0x78, 0x78, 0x78, 0x78, 0x78 }, /* 83 */	{ 0x7c, 0x7c, 0x7c, 0x7c, 0x7c }, /* 84 */	{ 0x7e, 0x7e, 0x7e, 0x7e, 0x7e }, /* 85 */	{ 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, /* 86 */	{ 0x08, 0x2a, 0x1c, 0x2a, 0x08 }, /* 87 */	{ 0x7f, 0x00, 0x00, 0x00, 0x7f }, /* 88 */	{ 0x7f, 0x7f, 0x00, 0x00, 0x7f }, /* 89 */	{ 0x7f, 0x7f, 0x7f, 0x00, 0x7f }, /* 8a */	{ 0x00, 0x7f, 0x00, 0x00, 0x00 }, /* 8b */	{ 0x00, 0x7f, 0x7f, 0x00, 0x00 }, /* 8c */	{ 0x00, 0x7f, 0x7f, 0x7f, 0x00 }, /* 8d */	{ 0x00, 0x7f, 0x7f, 0x7f, 0x7f }, /* 8e */	{ 0x3e, 0x3e, 0x3e, 0x3e, 0x3e }, /* 8f */	{ 0x1c, 0x3e, 0x3e, 0x3e, 0x1c }, /* 90 */	{ 0x7f, 0x41, 0x41, 0x41, 0x7f }, /* 91 */	{ 0x7f, 0x5b, 0x41, 0x5f, 0x7f }, /* 92 */	{ 0x7f, 0x4d, 0x55, 0x59, 0x7f }, /* 93 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -