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

📄 language.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
字号:
/*************************************************************************** *             __________               __   ___. *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  / *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  < *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \ *                     \/            \/     \/    \/            \/ * $Id: language.c,v 1.9 2004/01/23 11:39:34 bagder Exp $ * * Copyright (C) 2002 Daniel Stenberg * * 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 <file.h>#if defined(SIMULATOR) && defined(__MINGW32__)extern int printf(const char *format, ...);#endif#include "language.h"#include "lang.h"#include "debug.h"static unsigned char language_buffer[MAX_LANGUAGE_SIZE];int lang_load(char *filename){    int filesize;    int fd = open(filename, O_RDONLY);    int retcode=0;    if(fd == -1)        return 1;    filesize = read(fd, language_buffer, MAX_LANGUAGE_SIZE);    if(filesize != MAX_LANGUAGE_SIZE) {        if((language_buffer[0] == LANGUAGE_COOKIE) &&           (language_buffer[1] == LANGUAGE_VERSION)) {            unsigned char *ptr=&language_buffer[2];            int id;            filesize-=2;            while(filesize>3) {                id = (ptr[0]<<8) | ptr[1];  /* get two-byte id */                ptr+=2;                     /* pass the id */                if(id < LANG_LAST_INDEX_IN_ARRAY) {#ifdef SIMULATOR                    printf("%2x New: %30s ", id, ptr);                    printf("Replaces: %s\n", language_strings[id]);#endif                    language_strings[id] = ptr; /* point to this string */                }                while(*ptr) {               /* pass the string */                    filesize--;                    ptr++;                }                filesize-=3; /* the id and the terminating zero */                ptr++;       /* pass the terminating zero-byte */            }        }        else {            DEBUGF("Illegal language file\n");            retcode = 2;        }    }    else {        DEBUGF("Language %s too large: %d\n", filename, filesize);        retcode = 3;    }    close(fd);    return retcode;}

⌨️ 快捷键说明

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