void menu_entries_push(file_list_t *list, const char *path, const char *label, unsigned type, size_t directory_ptr, size_t entry_idx) { menu_ctx_list_t list_info; size_t idx; menu_file_list_cbs_t *cbs = NULL; if (!list || !label) return; file_list_append(list, path, label, type, directory_ptr, entry_idx); idx = list->size - 1; list_info.list = list; list_info.path = path; list_info.label = label; list_info.idx = idx; menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info); file_list_free_actiondata(list, idx); cbs = (menu_file_list_cbs_t*) calloc(1, sizeof(menu_file_list_cbs_t)); if (!cbs) return; file_list_set_actiondata(list, idx, cbs); cbs->setting = menu_setting_find(label); menu_cbs_init(list, cbs, path, label, type, idx); }
int readFile(const char *fn,void **data, size_t *cb) { FILE *f; int cbFile, cbRead; f=fopen(fn,"rb"); if (!f) return 0; #if DIYYMA_FILE_LIST>=2 file_list_append(fn); #endif fseek(f,0,SEEK_END); cbFile=ftell(f); fseek(f,0,SEEK_SET); *data=malloc(cbFile+1); cbRead=fread(*data,1,cbFile,f); fclose(f); if (cbRead<cbFile) { free(*data); *data=0; return 0; } ((char*)*data)[cbFile]=0; *cb=cbRead; return 1; }
void menu_entries_append_enum(file_list_t *list, const char *path, const char *label, enum msg_hash_enums enum_idx, unsigned type, size_t directory_ptr, size_t entry_idx) { menu_ctx_list_t list_info; size_t idx; const char *menu_path = NULL; menu_file_list_cbs_t *cbs = NULL; if (!list || !label) return; file_list_append(list, path, label, type, directory_ptr, entry_idx); menu_entries_get_last_stack(&menu_path, NULL, NULL, NULL, NULL); idx = list->size - 1; list_info.fullpath = NULL; if (!string_is_empty(menu_path)) list_info.fullpath = strdup(menu_path); list_info.list = list; list_info.path = path; list_info.label = label; list_info.idx = idx; list_info.entry_type = type; menu_driver_ctl(RARCH_MENU_CTL_LIST_INSERT, &list_info); if (list_info.fullpath) free(list_info.fullpath); file_list_free_actiondata(list, idx); cbs = (menu_file_list_cbs_t*) calloc(1, sizeof(menu_file_list_cbs_t)); if (!cbs) return; file_list_set_actiondata(list, idx, cbs); cbs->enum_idx = enum_idx; if (enum_idx != MENU_ENUM_LABEL_PLAYLIST_ENTRY && enum_idx != MENU_ENUM_LABEL_PLAYLIST_COLLECTION_ENTRY && enum_idx != MENU_ENUM_LABEL_RDB_ENTRY) { cbs->setting = menu_setting_find_enum(enum_idx); } menu_cbs_init(list, cbs, path, label, type, idx); }
GLuint loadTextureFile(const char *fn_in, GLuint tex_in, GLenum target_texture, GLenum target_image, int HDR) { ILuint img=0; GLuint tex=tex_in; char *fn=0; if (!(fn=vfs_locate(fn_in,REPOSITORY_MASK_TEXTURE))) { LOG_WARNING( "WARNING: unable to find texture file '%s'\n", fn_in); goto finalize; } ilEnable(IL_ORIGIN_SET); ilOriginFunc(IL_ORIGIN_LOWER_LEFT); ilGenImages(1,&img); ilBindImage(img); if (ilLoadImage(fn)!=1) { LOG_WARNING( "WARNING: unable to load texture file '%s'\n", fn); goto finalize; } #if DIYYMA_FILE_LIST>=2 file_list_append(fn); #endif ilConvertImage(HDR?IL_RGB:IL_RGBA,HDR?IL_FLOAT:IL_UNSIGNED_BYTE); if (!tex) glGenTextures(1,&tex); glBindTexture(target_texture,tex); glTexImage2D( target_image,0,HDR?GL_R11F_G11F_B10F:GL_RGBA, ilGetInteger(IL_IMAGE_WIDTH),ilGetInteger(IL_IMAGE_HEIGHT), 0,HDR?GL_RGB:GL_RGBA,HDR?GL_FLOAT:GL_UNSIGNED_BYTE, ilGetData()); glTexParameteri(target_texture,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(target_texture,GL_TEXTURE_MAG_FILTER,GL_LINEAR); finalize: if (fn) free((void*)fn); if (img) ilDeleteImages(1,&img); return tex; }
void menu_entries_append(file_list_t *list, const char *path, const char *label, unsigned type, size_t directory_ptr, size_t entry_idx) { menu_ctx_list_t list_info; size_t idx; const char *menu_path = NULL; menu_file_list_cbs_t *cbs = NULL; if (!list || !label) return; file_list_append(list, path, label, type, directory_ptr, entry_idx); menu_entries_get_last_stack(&menu_path, NULL, NULL, NULL, NULL); idx = list->size - 1; list_info.list = list; list_info.path = path; list_info.fullpath = NULL; if (!string_is_empty(menu_path)) list_info.fullpath = strdup(menu_path); list_info.label = label; list_info.idx = idx; list_info.entry_type = type; menu_driver_list_insert(&list_info); if (list_info.fullpath) free(list_info.fullpath); file_list_free_actiondata(list, idx); cbs = (menu_file_list_cbs_t*) calloc(1, sizeof(menu_file_list_cbs_t)); if (!cbs) return; file_list_set_actiondata(list, idx, cbs); cbs->enum_idx = MSG_UNKNOWN; cbs->setting = menu_setting_find(label); menu_cbs_init(list, cbs, path, label, type, idx); }