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

📄 rkbin.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/* Copyright (C) 2006 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*
File         : include\rkbin.h
Desc         : 定义 资源文件的数据结构.


Author : huangsl
Date          : 2007-07-11
Notes :


$Log: rkbin.h,v $
Revision 1.2  2008/06/19 04:43:26  Administrator
代码整理!

Revision 1.1  2008/06/18 02:50:03  Administrator
修改位置!

Revision 1.7  2008/01/07 12:52:15  Huangshilin
no message

Revision 1.6  2007/12/11 09:18:57  Huangshilin
把视频 6M buffer改为静态,修改 GUI 于该 BUFFER 复用,修改 窗口系统
部分 BUG.

Revision 1.5  2007/11/05 09:53:49  Huangshilin
增加GUI接口,增加应用资源互斥控制.

Revision 1.4  2007/10/25 11:13:31  Huangshilin
修改 支持 TOUCH_MOVE 消息以及GUI BUG.

Revision 1.3  2007/10/11 04:08:07  Huangshilin
System\os

Revision 1.2  2007/10/08 02:57:02  Lingzhaojun
添加版本自动注释脚本

* huangsl     2007-07-11      主要考虑扩展需要.
*
* huangsl              2007-07-22      为了方便统一管理,对 NAME 资源和 ID资源增加属性区分。
*
*/

#ifndef _ROCK_RESBIN_H_
#define _ROCK_RESBIN_H_

/***********************************************************************/

/***********************************************************************/
#define RKB_CHARA_CACHE             (0X00000001U<<0)  //特性

#define RKB_PROP_BIGEND             (0X00000001U<<1)  //属性
#define RKB_PROP_NAMERES            (0X00000001U<<31)  //属性
#define RKB_PROP_ACTION             (0X00000001U<<30)  // 打包段或者安装段.

#define RKB_MAGIC_FLAG              (0X53524B52)        //RKRS

#define RKST_MAGIC_FLAG             (0X53544B52)        //RKST,安装段.
typedef struct _IMAGE_RESBIN_DIRECTORY
{
    INT32U              Size;
    INT32U              Magic;
    INT32U              Property;               //such as cache ,ENDIAN
    INT32U              DateTimeStamp;  //
    INT32U              AllignedSize;       //use as head size.
    INT32U              FileByteSize;       //for future

    INT16U              SizeOfNameDir;
    INT16U              SizeOfIdDir;

    INT16U              NumberOfNamedEntries;
    INT16U              NumberOfIdEntries;

    INT32U              OffsetOfNamedEntries;
    INT32U              OffsetOfIdEntries;

} IMAGE_RESBIN_DIRECTORY , *PIMAGE_RESBIN_DIRECTORY;


#define IRES_ENTRYNAME                          15  //等于文件的文件名.
typedef struct _IMAGE_NAMEDENTRY
{
    INT32U       Size;       //对于PACK项,用来记录操作.
    INT32U      Characteristics;

    INT32U       OffsetToData;
    INT32U       SizeOfBytes;

    char             Name[IRES_ENTRYNAME+1];
}  IMAGE_NAMEDENTRY, *PIMAGE_NAMEDENTRY;

///////////////////////////////////////////////////////////////////////////
#define IRES_PACKACT_NONE                       0   // no action!
#define IRES_PACKACT_MKDIR                      1   //action!
#define IRES_PACKACT_CRREATFILE                 2

#define IRES_ENTRYPACK                         15  //等于文件的文件名.
typedef struct _IMAGE_PACKDENTRY
{
    INT32U           Size ; // 由于 Name 为 路径,因此 是变长的,并且长度可能很长,因此采用动态长度.

    INT32U           Action;       //对于PACK项,用来记录操作.
    INT32U           OffsetToData;
    INT32U           SizeOfBytes;

    char             Name[4];
}  IMAGE_PACKDENTRY , *PIMAGE_PACKDENTRY ;

///////////////////////////////////////////////////////////////////////////
#define RSID_TYPE_STRING                        0
#define RSID_TYPE_BMP                           1
#define RSID_TYPE_ICON                          2
#define RSID_TYPE_MENU                          3

#define RSID_TYPE_MAX                           4

///////////////////////////////////////////////////////////////////////////
#define RSID_LANG_MAX                           10
#define RSID_LANG_BMP                           0XFFFF //bmp 对应的 LANG ID 
//INPUT LANGUAGE --- for LANIN ,  LANOUT
#define IPLC_INVALIDLANG                    "0"     //无效的语言标志

//对于 ID 资源,有 语言和 ID之分.
typedef struct _IMAGE_ID_DIRECTORY
{
    INT32U      Size;
    INT32U      Characteristics;

    INT32U      IDOffsetToData;       //POINT TO FIRST ID DATA
    INT32U      DataOffsetToData;       //POINT TO FIRST RES DATA

    INT16U      IDType;
    INT16U      Language;

    INT16U      IdEntrySize;
    INT16U      totalIDCount;

    INT16U      Reserved;
    INT16U      StartID;

    INT32U      DataByteSize;   //ID RESOURECE DATA SIZE ,//use to get the id data size;

} IMAGE_ID_DIRECTORY , *PIMAGE_ID_DIRECTORY;


//ID  项
typedef struct _IMAGE_DATAENTRY
{
    INT32U       SizeOfBytes;
    INT32U      OffsetToData;

}  IMAGE_DATAENTRY, *PIMAGE_DATAENTRY;


//定义 KERNAL 的 数据结构.
//由于代码加载由各自的模块负责,此处只需要几个关键数据即可.
typedef struct _KNL_SECINFO
{
    INT32U                          ImagicNumber;
    INT32U                          Size;       //是否增加一个 CRC ?

    INT32U                          ImageBase; //CODE START
    INT32U                          ImageLoadBase; //code ,rw
    INT32U                          ImageLoadLimit; //code ,rw
    INT32U                          ImageZiBase;   //ZI LIMIT

    INT32U                          ImageReserved0;  // 加载地址
    INT32U                          ImageReserved1;    //长度.

    INT32U                          ImageEntry; //正常启动
    INT32U                          ImageLoadOption; //安装启动

    //为了安全,可以增加一个 哈希 校验或者 CRC校验.
    INT32U                          CRC32;      // 校验码,暂时没有使用.
} KNL_SECINFO, *PKNL_SECINFO;


/************************************************************************/
//RES TYPE ID START
#ifndef RSID_START_STRING
#define RSID_START_STRING                       0Xa000      //默认起始 ID 
#define RSID_START_BMP                          0Xb000       //默认起始 ID。

#define RSID_START_UNKNOW                       0XFFFF
#endif

//对于 PACK ,2K 可能不足.
//由于 文件名长度不可控制,以及文件个数不可控制,把头部长度增加到 10 K.
#define     BF_HEAD_SIZE                        (10*1024)
/************************************************************************/
//getbfData.c
BOOLEAN GBFOpenBinFile(char* fileName);
void GBFGetHeadInfo(void);
INT32U GBFGetBmpIDData(INT16U StartID,  INT16U  ID  , void*outBuffer , INT32U outBufferSize);
INT32U GBFGetStringIDData(INT16U StartID,  INT16U  ID  , INT16U lang ,  void*outBuffer , INT32U outBufferSize);
INT32U GBFGetNameData(char* dsName , void*outBuffer , INT32U outBufferSize);
void GBFCloseBinFile(void);
void GBFGetHeadInfo_Lib(char   *outBuffer);


/************************************************************************/

/*****************************************************************************************/
#endif /* not _ROCK_RESBIN_H_ */
/*----------------------------end of file-------------------------------------*/

⌨️ 快捷键说明

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