2008年10月5日星期日

nanox记一下目录结构

源码树文件夹注释

configs //一些默认配置选项

demos //测试nanox的应用程序,配置时可选择是否编

drivers //nanox驱动,包括screen,keypad,touchpanel。比如mou_touchscreen.c里建立一个结构体变量 MOUSEDEVICE mousedev,fb开头是怎样画点画线SUBDRIVER,kbd开头是不同键盘KBDDEVICE,mou开头是不同鼠标MOUSEDEVICE。screen开头是不同屏SCREENDEVICE,如果内核提供的接口不同,比如键盘,就建立一个kbd_xxx.c,完成KBDDEVICE结构体里的函数就可以了。
typedef struct _mousedevice {
int (*Open)(struct _mousedevice *);
void (*Close)(void);
int (*GetButtonInfo)(void);
void (*GetDefaultAccel)(int *pscale,int *pthresh);
int (*Read)(MWCOORD *dx,MWCOORD *dy,MWCOORD *dz,int *bp);
int (*Poll)(void); /* not required if have select()*/
int flags; /* raw, normal, transform flags*/
} MOUSEDEVICE;


engine //nanox驱动上面一层
比如devmouse.c调用mousedev.Open(&mousedev)打开mouse设备。以dev开头的是设备相关文件,font开头是画字体的方式,image开头是不同格式的图片

fonts //纯字体数据文件,与此联系的是engine/font_xxx.c。
比如fonts/chinese/gb2312font.c建立了一个字体数组GUO_GB2312_12X12_FONT_BITMAP[],在engine/font_dbcs.c中会调用到unsigned char *src = GUO_GB2312_12X12_FONT_BITMAP + pos + i * 3;,条件是#if HAVE_GB2312_SUPPORT

mwin //microwindows API

nanox //nanox API

没有评论: