/* **************************************************************************************************** *Name : dsk_send_rmmod_usbh_cmd *Prototype : __s32 dsk_send_rmmod_usbh_cmd(void) *Arguments : void *Return : EPDK_OK 发送成功 * EPDK_FAIL 发送失败 *Description : 向usbh_monitor发送卸载host驱动命令 *Other : 命令发送完毕后,delay 1s 确保卸载成功 **************************************************************************************************** */ __s32 dsk_send_rmmod_usbh_cmd(void) { ES_FILE *usbm_dev_hadle = NULL; __s32 ret = 0; __msg("%s %d :send_rmmod_usbh_cmd \n", __FUNCTION__, __LINE__); /* 打开 hwsc 设备 */ usbm_dev_hadle = eLIBs_fopen("b:\\HWSC\\hwsc", "r"); if(usbm_dev_hadle == NULL){ __wrn("ERR: send_rmmod_usbh_cmd: eLIBs_fopen failed\n"); return EPDK_FAIL; } /* 发送加载host命令 */ ret = eLIBs_fioctrl(usbm_dev_hadle, DEV_IOC_USR_HWSC_APP_RMMOD_USBH, 0, NULL); if(ret == EPDK_FAIL){ __msg("ERR: send_rmmod_usbh_cmd: execute DEV_IOC_USR_HWSC_APP_RMMOD_USBH failed\n"); eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; return EPDK_FAIL; } /* 关闭 hwsc 设备 */ eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; /* delay 1s 确保usb_monitor有足够的时间卸载 */ esKRNL_TimeDly(400); return EPDK_OK; }
/* **************************************************************************************************** *Name : dsk_send_insmod_usbh_cmd *Prototype : __s32 dsk_send_insmod_usbh_cmd(void) *Arguments : void *Return : EPDK_OK 发送成功 * EPDK_FAIL 发送失败 *Description : 向usbh_monitor发送加载host驱动命令 *Other : 命令发送完毕后,delay 2s 确保加载成功 **************************************************************************************************** */ __s32 dsk_send_insmod_usbh_cmd(void) { ES_FILE *usbm_dev_hadle = NULL; __s32 ret = 0; __msg("%s %d :send_insmod_usbh_cmd \n", __FUNCTION__, __LINE__); /* 打开 hwsc 设备 */ usbm_dev_hadle = eLIBs_fopen("b:\\HWSC\\hwsc", "r"); if(usbm_dev_hadle == NULL){ __wrn("ERR: send_insmod_usbh_cmd: eLIBs_fopen failed\n"); return EPDK_FAIL; } /* 发送加载host命令 */ ret = eLIBs_fioctrl(usbm_dev_hadle, DEV_IOC_USR_HWSC_APP_INSMOD_USBH, 0, NULL); if(ret == EPDK_FAIL){ __msg("ERR: send_insmod_usbh_cmd: execute DEV_IOC_USR_HWSC_APP_INSMOD_USBH failed\n"); eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; return EPDK_FAIL; } /* 关闭 hwsc 设备 */ eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; /*wait to install host driver less than 2 second*/ esKRNL_TimeDly(400); return EPDK_OK; }
//详细调用方法参见SDK的app_root_scene.c和record_view_doc.c __s32 dsk_audio_echo_close(void) { __s32 aux; if(NULL == g_fp_rec) { __wrn("rec hdl not open...\n"); return EPDK_FAIL; } aux = 0; eLIBs_fioctrl(g_fp_rec, AUDIO_DEV_CMD_ENABLE_ECHO, aux, 0); aux = 0; eLIBs_fioctrl(g_fp_rec, AUDIO_DEV_CMD_SET_ECHO_BUF_MODE, aux, 0); eLIBs_fioctrl(g_fp_rec, AUDIO_DEV_CMD_ENABLE_REC_LOW_PASS, 0, 0); eLIBs_fioctrl(g_fp_rec, AUDIO_DEV_CMD_STOP, 0, 0); if(g_fp_rec) { eLIBs_fclose(g_fp_rec); g_fp_rec = NULL; } dsk_audio_direct_output_off(); return EPDK_OK; }
static void shbar_palette_adjust(void) { ES_FILE *p_disp; __u32 *palette_buf; HTHEME htheme; htheme = dsk_theme_open(0); palette_buf = dsk_theme_hdl2buf(htheme); /*define palette's selfdefine area*/ *(palette_buf+0xC0) = 0x00000000; *(palette_buf+0xC1) = 0xC0323232; p_disp = eLIBs_fopen("b:\\DISP\\DISPLAY", "r+"); if(!p_disp) { __wrn("open display fail\n"); return ; } /* get palette */ { __u32 arg[3]; arg[0] = (__u32)palette_buf; arg[1] = 0; arg[2] = ROBIN_PALETTE_COLOR_COUNT * 4; eLIBs_fioctrl( p_disp, DISP_CMD_SET_PALETTE_TBL, 0, (void *)arg ); } eLIBs_fclose(p_disp); dsk_theme_close(htheme); }
char *__sdlx_getenvr(void) { __u8 err; __krnl_tcb_t *tcb; #if 0 ES_FILE * edebug; #endif // 由于EPDK本身的krnl.h久未更新,因此申请内存不能按照sizeof(__krnl_tcb_t)来 // 进行,否则会导致堆栈溢出。 tcb = (__krnl_tcb_t *)malloc(max(sizeof(__krnl_tcb_t), 0x1000)); err = esKRNL_TaskQuery(OS_PRIO_SELF, tcb); if(err == OS_NO_ERR) { // OS_NO_ERR if (tcb->xcb != NULL) { strcpy(xfile, tcb->xcb->xfile); xdirp = strlen(xfile); while(xdirp>=0 && xfile[xdirp] != '\\' && xfile[xdirp] != '/') --xdirp; #if 0 edebug = eLIBs_fopen("e:\\tcb_xcb.txt", "w+"); eLIBs_fseek(edebug, 0, 2); fprintf((FILE *)edebug, "%s\n%d\n", xfile, xdirp); eLIBs_fclose(edebug); #endif } } free(tcb); return xfile; }
void _fcrt_name(char *ptbuf, const char *name) { // epos 将所有的斜杠变换为反斜杠 int i,j; #if 0 ES_FILE * edebug; #endif i = j = 0; // 如果请求的是当前目录,就进行一次文件名转换 if (name[0] == '.') { if (name[1] == '/' || name[1] == '\\') { while(j < xdirp) { ptbuf[j] = xfile[j]; ++j; } i = 1; // BUG Fix 2010.5.8 esxgx } } while(name[i]) { if (name[i] == '/') ptbuf[j] = '\\'; else ptbuf[j] = name[i]; ++i; ++j; } ptbuf[j] = '\0'; // 杯具,我的程序有BUG! = = #if 0 edebug = eLIBs_fopen("e:\\fcrt_name.txt", "w+"); eLIBs_fputs(ptbuf, edebug); eLIBs_fputc('\n', edebug); eLIBs_fclose(edebug); #endif }
__s32 DRV_hdmi_get_HPD_status(void) { ES_FILE * p_hdmi; __s32 ret; p_hdmi = eLIBs_fopen("b:\\BUS\\HDMI", "r+"); if(!p_hdmi) { __err("open hdmi device fail!\n"); } ret = eLIBs_fioctrl(p_hdmi, HDMI_CMD_GET_HPD_STATUS, 0, 0); if(ret != EPDK_OK) { __wrn("set hdmi mode fail!\n"); eLIBs_fclose(p_hdmi); return EPDK_FAIL; } eLIBs_fclose(p_hdmi); return EPDK_OK; }
__s32 DRV_hdmi_mode_support(__u8 mode) { ES_FILE * p_hdmi; __s32 ret; p_hdmi = eLIBs_fopen("b:\\BUS\\HDMI", "r+"); if(!p_hdmi) { __err("open hdmi device fail!\n"); } ret = eLIBs_fioctrl(p_hdmi, HDMI_CMD_MOD_SUPPORT, mode, 0); if(ret != EPDK_OK) { __wrn("set hdmi mode fail!\n"); eLIBs_fclose(p_hdmi); return EPDK_FAIL; } eLIBs_fclose(p_hdmi); return EPDK_OK; }
__s32 DRV_hdmi_set_mode(__disp_tv_mode_t mode) { ES_FILE * p_hdmi; __s32 ret; p_hdmi = eLIBs_fopen("b:\\BUS\\HDMI", "r+"); if(!p_hdmi) { __err("open hdmi device fail!\n"); } ret = eLIBs_fioctrl(p_hdmi, HDMI_CMD_SET_VIDEO_MOD, mode, 0); if(ret != EPDK_OK) { __wrn("set hdmi mode fail!\n"); eLIBs_fclose(p_hdmi); return EPDK_FAIL; } eLIBs_fclose(p_hdmi); return EPDK_OK; }
size_t fread(void *ptr,size_t size, size_t nmemb, FILE *fp) { #if 0 ES_FILE * edebug; edebug = eLIBs_fopen("e:\\fp_fread_output.txt", "w+"); eLIBs_fseek(edebug, 0, 2); fprintf(fp, "%x, %x, %x, %x, %x, %x, %x", ptr, size, nmemb, fp, &__stdin, &__stdout, &__stderr); eLIBs_fclose(edebug); #endif if (fp == (FILE *)&__stdin || fp == (FILE *)&__stdout || fp == (FILE *)&__stderr) return size; // 待实现 return eLIBs_fread(ptr,size,nmemb, (ES_FILE *)fp); }
FILE *fopen(const char *name, const char *mode) { char ptbuf[FSYS_DIRNAME_MAX]; #if 0 ES_FILE * edebug; edebug = eLIBs_fopen("e:\\fp_output.txt", "w+"); eLIBs_fseek(edebug, 0, 2); eLIBs_fputs(name, edebug); eLIBs_fputc('\n', edebug); eLIBs_fclose(edebug); #endif _fcrt_name(ptbuf, name); return (FILE *)eLIBs_fopen(ptbuf, mode); }
static void __exec_poweroff(void) { //do some thing here { ES_FILE * fp; fp = eLIBs_fopen("b:\\HID\\POWER", "w"); if(!fp) { __inf("power control connot be openned!\n"); } //eLIBs_fioctrl(fp, //eLIBs_fioctrl(fp, DRV_POWER_OFF, 0, 0); eLIBs_fclose(fp); } //esKSRV_PowerOff(); __inf("Sorry 'PowerOff' system not realized\n"); }
/* **************************************************************************************************** *Name : dsk_usbh_is_working *Prototype : __bool dsk_usbh_is_working(void) *Arguments : void *Return : EPDK_TRUE usb host is working * EPDK_FAIL usb host is NOT working *Description : check whether the usb host is working or not. *Other : **************************************************************************************************** */ __bool dsk_usbh_is_working(void) { ES_FILE *usbm_dev_hadle = NULL; __s32 ret = 0; /* 打开 hwsc 设备 */ usbm_dev_hadle = eLIBs_fopen("b:\\HWSC\\hwsc", "r"); if(usbm_dev_hadle == NULL){ __wrn("ERR: AppUsb_IsNeedAppInsmodUsbh: eLIBs_fopen failed\n"); return EPDK_FALSE; } /* 获取usb host的工作状态 */ ret = eLIBs_fioctrl(usbm_dev_hadle, DEV_IOC_USR_HWSC_GET_USBH_WORK_STATUS, 0, NULL); /* 关闭 hwsc 设备 */ eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; return ret; }
void DRV_lcd_power_off(__u32 sel) { ES_FILE * hd = NULL; __s32 ret = 0; hd = eLIBs_fopen("b:\\HID\\POWER", "w"); if(hd == NULL){ __wrn("open power driver fail\n"); return; } ret = eLIBs_fioctrl(hd, DRV_POWER_CMD_VSTS_SET, POWER_VOL_SW1,(void *)POWER_VOL_OFF); if(ret != EPDK_OK){ __wrn("eLIBs_fioctrl DRV_POWER_CMD_VSTS_SET failed\n"); } eLIBs_fclose(hd); hd = NULL; return; }
static void __close_lcd(void) { ES_FILE *disp; __u32 outputtype; __u32 arg[3]; disp = eLIBs_fopen("b:\\DISP\\DISPLAY", "r+"); if(!disp) { __wrn("open display fail\n"); return ; } outputtype = eLIBs_fioctrl(disp,DISP_CMD_GET_OUTPUT_TYPE,0,(void *)arg); if(outputtype == DISP_OUTPUT_TYPE_LCD) { arg[0] = 0; arg[1] = 0; arg[2] = 0; eLIBs_fioctrl(disp,DISP_CMD_LCD_OFF,0,(void *)arg); } eLIBs_fclose(disp); }
static H_LYR StandyWndCreate(const char *file_path) { H_LYR hLyr; int rotation; FB frameBuf; ES_FILE *file = NULL; void *file_data = NULL; bmp_file_head_t *f_head= NULL; __layerwincreate_para_t layerWinCreate; __disp_layer_para_t lyrPara; __u32 lenth; file = eLIBs_fopen(file_path,"rb"); if(file == NULL){ __msg("file open fail\n"); //return NULL; goto end; } f_head = eLIBs_malloc(sizeof(bmp_file_head_t)); if(f_head==NULL){ __msg("file malloc fail\n"); goto end; } eLIBs_fread(f_head,1,sizeof(bmp_file_head_t),file); if(f_head->bfType[0]!='B'||f_head->bfType[1]!='M'){ __msg("file isnot bmp\n"); goto end; } file_data = eLIBs_malloc(f_head->bfSize); eLIBs_fseek(file,0,SEEK_SET); lenth = eLIBs_fread(file_data,1,f_head->bfSize,file); __msg("lenth==%d\n",lenth); rotation = GUI_GetScnDir(); MwLayerParaInit(&layerWinCreate, &frameBuf, &lyrPara, "Layer", rotation, 1, 320, 240); MwFillSize(&frameBuf.size, 320 , 240); MwFillRect(&lyrPara.src_win, 0, 0, 320, 240); hLyr = GUI_LyrWinCreate(&layerWinCreate); if (NULL == hLyr) { __msg("Create layer (%s) failed", layerWinCreate.name); goto end; } GUI_LyrWinSel(hLyr); GUI_BMP_Draw(file_data, 0, 0); GUI_LyrWinSetSta(hLyr,GUI_LYRWIN_STA_ON); eLIBs_fclose(file); eLIBs_free(f_head); eLIBs_free(file_data); return hLyr; end: if(file){ eLIBs_fclose(file); } if(f_head){ eLIBs_free(f_head); } if(file_data){ eLIBs_free(file_data); } return NULL; }
int fclose(FILE *fp) { if (fp == (FILE *)&__stdin || fp == (FILE *)&__stdout || fp == (FILE *)&__stderr) return 0; return eLIBs_fclose((ES_FILE *)fp); }
int dode(struct op *t, const char **args) { ES_FILE * dispfile; __s32 ret = 0; __u32 pbuffer[3] = {0}; esDEV_Plugin("\\drv\\display.drv", 0, 0, 1); dispfile = eLIBs_fopen("b:\\DISP\\DISPLAY", "r+"); if(!dispfile) { Esh_printf("open display device fail!\n"); return DOFAILED; } if(Esh_strcmp(args[1], "info") == 0 || Esh_strcmp(args[1], "INFO") == 0) { __disp_layer_info_t layer_para; __s32 i = 0; char * wm[6] = {"NORMAL","PALETTE","INTER_BUF","GAMMA","SCALER","reserved"}; char * format[17] = {"1-bpp","2-bpp","4-bpp","8-bpp","rgb655","rgb565","rgb556", "argb1555","rgba5551","rgb888","argb8888", "YUV444","YUV422","YUV420","YUV411","CSI RGB","reserved"}; char * yuv_mode[6] = {"non-macro block planar","interleaved","non-macro block UV combined", "macro block planar","macro block UV combined","reserved"}; Esh_printf(".Layers Information Begin.................................................................................................\n"); for(i=0; i<4; i++) { __s32 pixel_fmt = 0; __s32 pixel_mode = 0; __s32 pixel_seq = 0; pbuffer[0] = i+100; pbuffer[1] = (__u32)&layer_para; ret = eLIBs_fioctrl(dispfile, DISP_CMD_LAYER_GET_PARA, 0, (void*)pbuffer); if(ret != EPDK_OK) { Esh_printf(".\tLayer %d:close\n",i); continue; } Esh_printf(".\tLayer %d:open\n",i); Esh_printf(".\t\twork mode:%s\n",((__s32)layer_para.mode>=0 && layer_para.mode<5)?wm[layer_para.mode]:wm[5]); Esh_printf(".\t\tpriority:%d\n",layer_para.prio); pixel_fmt = layer_para.fb.format; pixel_mode = layer_para.fb.mode; pixel_seq = layer_para.fb.seq; Esh_printf(".\t\tformat:%s,",(pixel_fmt>=0 && pixel_fmt<16)?format[pixel_fmt]:format[16]); Esh_printf("\tmode:%s,",(pixel_mode>=0 && pixel_mode<5)?yuv_mode[pixel_mode]:yuv_mode[5]); if(pixel_fmt == DISP_FORMAT_ARGB8888 && pixel_mode == DISP_MOD_INTERLEAVED) { Esh_printf("\tpixels sequence:%s,",(pixel_seq==DISP_SEQ_ARGB)?"ARGB":"BGRA"); } else if(pixel_fmt == DISP_FORMAT_YUV422 && pixel_mode == DISP_MOD_INTERLEAVED) { if(pixel_seq==DISP_SEQ_UYVY) Esh_printf("\tpixels sequence:UYVY,"); else if(pixel_seq==DISP_SEQ_YUYV) Esh_printf("\tpixels sequence:YUYV,"); else if(pixel_seq==DISP_SEQ_VYUY) Esh_printf("\tpixels sequence:VYUY,"); else if(pixel_seq==DISP_SEQ_YVYU) Esh_printf("\tpixels sequence:YVYU,"); } else if(pixel_fmt == DISP_FORMAT_YUV444 && pixel_mode == DISP_MOD_INTERLEAVED) { if(pixel_seq==DISP_SEQ_AYUV) Esh_printf("\tpixels sequence:AYUV,"); else if(pixel_seq==DISP_SEQ_VUYA) Esh_printf("\tpixels sequence:VUYA,"); } else if(pixel_fmt == DISP_FORMAT_YUV420 && (pixel_mode == DISP_MOD_NON_MB_UV_COMBINED || pixel_mode == DISP_MOD_MB_UV_COMBINED)) { if(pixel_seq==DISP_SEQ_UVUV) Esh_printf("\tpixels sequence:UVUV,"); else if(pixel_seq==DISP_SEQ_VUVU) Esh_printf("\tpixels sequence:VUVU,"); } else { Esh_printf("\tpixels sequence:%d,",pixel_seq); } Esh_printf("\tB R channel swap:%s\n",layer_para.fb.br_swap==0?"RGB":"BGR"); if(pixel_mode == DISP_MOD_INTERLEAVED) { Esh_printf(".\t\tframe buffer address 0:%x\n",layer_para.fb.addr[0]); } else if(pixel_mode == DISP_MOD_NON_MB_UV_COMBINED || pixel_mode == DISP_MOD_MB_UV_COMBINED) { Esh_printf(".\t\tframe buffer address 0:%x,\taddress 1:%x\n",layer_para.fb.addr[0],layer_para.fb.addr[1]); } else { Esh_printf(".\t\tframe buffer address 0:%x,\taddress 1:%x,\tddress 2:%x\n",layer_para.fb.addr[0],layer_para.fb.addr[1],layer_para.fb.addr[2]); } Esh_printf(".\t\tsource window(x:%d,\ty:%d,\twidth:%d,\theight:%d)\n",layer_para.src_win.x,layer_para.src_win.y,layer_para.src_win.width,layer_para.src_win.height); Esh_printf(".\t\tscreen window(x:%d,\ty:%d,\twidth:%d,\theight:%d)\n",layer_para.scn_win.x,layer_para.scn_win.y,layer_para.scn_win.width,layer_para.scn_win.height); Esh_printf(".\t\tcolor key:%s\n",layer_para.ck_enable==0?"disable":"enable"); Esh_printf(".\t\talpha:%s,\talpha value:%x\n",layer_para.alpha_en==0?"disable":"enable",layer_para.alpha_val); Esh_printf(".\t\tpipe:%d\n",layer_para.pipe); } Esh_printf(".Layers Information End.................................................................................................\n"); } else if(Esh_strcmp(args[1], "ol") == 0 || Esh_strcmp(args[1], "OL") == 0 || Esh_strcmp(args[1], "cl") == 0 || Esh_strcmp(args[1], "CL") == 0) { const char *err = NULL; __s32 layer_num = 0; layer_num = eLIBs_strtol(args[2], &err, 0 ); if(layer_num>=0 && layer_num<=3) { pbuffer[0] = layer_num+100; if(Esh_strcmp(args[1], "ol") == 0 || Esh_strcmp(args[1], "OL") == 0) { ret = eLIBs_fioctrl(dispfile, DISP_CMD_LAYER_OPEN, 0, (void*)pbuffer); } else { ret = eLIBs_fioctrl(dispfile, DISP_CMD_LAYER_CLOSE,0, (void*)pbuffer); } if(ret != EPDK_OK) { Esh_printf("open/close layer fail!\n"); } } else { Esh_printf("para error!\n"); } } eLIBs_fclose(dispfile); return DOSUCCEED; }