int plugin_settings_load(const string fname) { t_sys_file_handle fhandle; if(plugin_settings_init)return 1; /* warning: already initialized */ fhandle = sys_file_openshare(fname, v_sys_file_forread); if(fhandle == v_error_sys_file_open) { point_load_anyway: plugin_settings_mem = (char*) sys_mem_alloc(256); strcpy(plugin_settings_mem, "fennec player 1.0 (fennec 7.1) plug-in settings file\r\n"); plugin_settings_size = (unsigned int)strlen(plugin_settings_mem); plugin_settings_save(fname); plugin_settings_init = 1; return 1; } plugin_settings_size = sys_file_getsize(fhandle); if(!plugin_settings_size) { sys_file_close(fhandle); goto point_load_anyway; } plugin_settings_mem = (char*) sys_mem_alloc(plugin_settings_size + 1); sys_file_read(fhandle, plugin_settings_mem, plugin_settings_size); plugin_settings_mem[plugin_settings_size] = 0; sys_file_close(fhandle); plugin_settings_init = 1; return 0; }
must_inline static bool readFile(void* packFileHandle,void* dst,long readSize){ long readed=sys_file_read(packFileHandle,(UInt8*)dst,readSize); return (readed==readSize); }