void init() { fb = malloc(sizeof(Tframebuffer)); fb = init_frame_buffer(fb, FB_PATH); img_list = malloc(sizeof(Com_box)); img_list = img_search(JPG_PATH, img_list); mp3_list = malloc(sizeof(Mp3_box)); mp3_list = mp3_search(MP3_PATH, mp3_list); init_font(); weather_getinfo(weather_info, 10); }
/* * initialize mainstatus */ int maindeal_mainstatus_init(struct mainstatus *status) { #if _DEBUG_ char *debug_p; int debug_i; #endif FILE *config_fp; /* pointer to config file */ char *value; /* value of config file */ status->mode = DB_VIEW_MODE; //FILE *config_open(char *filename); if((config_fp = config_open("digitbox.conf", "r")) == NULL){ fprintf(stderr, "can't open digitbox.conf: %s\n", strerror(errno)); exit(1); } #if _DEBUG_ //char *config_getvalue_byname(FILE *fp, char *name); debug_p = config_getvalue_byname(config_fp, "fb_dev"); fprintf(stdout, "fb_dev: %s\n", debug_p); debug_p = config_getvalue_byname(config_fp, "input_dev"); fprintf(stdout, "input_dev: %s\n", debug_p); #endif /* initialize framebuffer */ value = config_getvalue_byname(config_fp, "fb_dev"); //int fb_open(char *fbname, FB *fbp); if(fb_open(value, &status->fb) < 0){ fprintf(stderr, "init framebuffer failed\n"); exit(1); } /* initialize screen */ //int fb_screen_init(FB_SCREEN *screenp, FB *fbp); fb_screen_init(&status->screen, &status->fb); /* initialize font */ value = config_getvalue_byname(config_fp, "font_path"); //int fb_font_open(char *fontname, FB_FONT *ffp); fb_font_open(value, &status->font); //int fb_font_set_charsize(FB_FONT *ffp, int fontsize); fb_font_set_charsize(&status->font, 150); /* initialize num */ status->img_cur_pos = 0; status->img_mini_cur_pos = 0; status->img_mini_offset = 0; status->mp3_cur_pos = -1; status->mp3_pid = 0; /* initialize weather information */ fprintf(stdout, "get weather information...\n"); //int weather_getinfo(unsigned char *weatherinfo, int second); weather_getinfo(status->weatherinfo, 3); /* * Detect U disk and mount it * Read mp3/image list */ /* Detect U disk anm mount it */ #if _DEBUG_VIR /* should place after actual udisk function */ memset(status->udisk_path, 0, DB_NAME_MAX + 1); value = config_getvalue_byname(config_fp, "usb_path_vir"); //char *strncpy(char *dest, const char *src, size_t n); strncpy(status->udisk_path, value, DB_NAME_MAX); /* udisk_path first be used for device name */ //int udisk_detect_vir(char *devname); udisk_detect_vir(status->udisk_path); //int udisk_mount_vir(char *devname); udisk_mount_vir(status->udisk_path); #endif #ifndef _DEBUG_VIR memset(status->udisk_path, 0, DB_NAME_MAX + 1); value = config_getvalue_byname(config_fp, "mountpath"); strncpy(status->udisk_path, value, DB_NAME_MAX); //int udisk_detect_vir(char *devname); udisk_detect_mount(status->udisk_path); #endif /* Read mp3/image list */ //int resource_common_list(char *usbpath, char list[][DB_NAME_MAX + 1], // char *type); if((status->img_list_len = resource_common_list(status->udisk_path, status->img_list, "jpg")) < 0){ fprintf(stderr, "resource_common_list(jpg) failed\n"); } if((status->mp3_list_len = resource_common_list(status->udisk_path, status->mp3_list, "mp3")) < 0){ fprintf(stderr, "resource_common_list(jpg) failed\n"); } #if _DEBUG_ fprintf(stdout, "--------------------img list--------------------\n"); for(debug_i = 0; debug_i < status->img_list_len; debug_i++){ fprintf(stdout, "%3d: %s\n", debug_i, status->img_list[debug_i]); } fprintf(stdout, "--------------------mp3 list--------------------\n"); for(debug_i = 0; debug_i < status->mp3_list_len; debug_i++){ fprintf(stdout, "%3d: %s\n", debug_i, status->mp3_list[debug_i]); } #endif //int maindeal_img_get_minimg(struct mainstatus *status) if(maindeal_img_get_minimg(status) < 0){ fprintf(stderr, "%s: maindeal_img_get_minimg() failed\n", __func__); return -1; } /* show welcome */ maindeal_img_view_entry(status); status->view_flag = 1; //int config_close(FILE *fp); config_close(config_fp); return 0; }