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; }
int encoder_uninitialize(unsigned long id) { if(!pestreams[id].firstwrite) { sys_file_close(pestreams[id].fhandle); Encoder_Interface_exit(pestreams[id].enstate); pestreams[id].firstwrite = 1; } return 1; }
int plugin_settings_save(const string fname) { t_sys_file_handle fhandle; if(!plugin_settings_mem)return -1; fhandle = sys_file_createforceshare(fname, v_sys_file_forwrite); if(fhandle == v_error_sys_file_create)return -1; sys_file_write(fhandle, plugin_settings_mem, plugin_settings_size); sys_file_close(fhandle); return 0; }
void GamePackFile::closeAllPackFile(){ for (long i=0;i<(long)m_fileHandleList.size();++i){ sys_file_close(m_fileHandleList[i]); delete m_fileLockList[i]; } m_fileHandleList.clear(); m_fileLockList.clear(); m_fileNameList.clear(); for (TFileMap::iterator it=m_dirSet.begin();it!=m_dirSet.end();++it) delete it->second; m_dirSet.clear(); for (TFileMap::iterator it=m_fileMap.begin();it!=m_fileMap.end();++it) delete it->second; m_fileMap.clear(); }
bool GamePackFile::loadPackFile(const char* packFileName,const char* prefix){ //closePackFile(); void* packFileHandle=sys_file_open_read(packFileName,0); if (packFileHandle==csNullFileHandle) return false; VLock* lock=new VLock(); if (!loadPackData(packFileHandle,lock,prefix)){ sys_file_close(packFileHandle); delete lock; return false; }else{ m_fileHandleList.push_back(packFileHandle); m_fileLockList.push_back(lock); m_fileNameList.push_back(packFileName); return true; } }
void GamePackFile::closePackFile(const char* packFileName){ long del_i=-1; for (long i=0;i<(long)m_fileNameList.size();++i){ if (m_fileNameList[i]==packFileName){ del_i=i; break; } } if (del_i<0) return; void* packFileHandle=m_fileHandleList[del_i]; sys_file_close(packFileHandle); delete m_fileLockList[del_i]; m_fileNameList.erase(m_fileNameList.begin()+del_i); m_fileHandleList.erase(m_fileHandleList.begin()+del_i); m_fileLockList.erase(m_fileLockList.begin()+del_i); delFileByHandle(m_fileMap,packFileHandle); delFileByHandle(m_dirSet,packFileHandle); }
int encoder_uninitialize(unsigned long id) { if(!pestreams[id].firstwrite) { faacEncClose(pestreams[id].enchandle); sys_mem_free(pestreams[id].floatbuffer); sys_mem_free(pestreams[id].obuffer); sys_mem_free(pestreams[id].cachebuffer); if(!pestreams[id].ismp4) { sys_file_close(pestreams[id].fhandle); }else{ MP4Close(pestreams[id].mp4file); } pestreams[id].firstwrite = 1; } return 1; }