Home | nevrax.com |
|
async_file_manager_sound.hGo to the documentation of this file.00001 00007 /* Copyright, 2000 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 00026 #include "nel/misc/thread.h" 00027 00028 namespace NLSOUND 00029 { 00030 00031 00040 class CAsyncFileManagerSound 00041 { 00042 public: 00043 static CAsyncFileManagerSound &getInstance(); 00044 void terminate(); 00045 00046 00047 void loadWavFile(IBuffer *pdestBuffer, const std::string &filename); 00048 void cancelLoadWaveFile(const std::string &filename); 00049 00050 // Do not use these methods with the bigfile manager 00051 void loadFile (const std::string &fileName, uint8 **pPtr); 00052 void loadFiles (const std::vector<std::string> &vFileNames, const std::vector<uint8**> &vPtrs); 00053 00054 void signal (bool *pSgn); // Signal a end of loading for a group of "mesh or file" added 00055 void cancelSignal (bool *pSgn); 00056 00057 private: 00059 CAsyncFileManagerSound() {}; 00060 00062 static CAsyncFileManagerSound *_Singleton; 00063 00064 00066 friend class CCancelLoadWavFile; 00067 00068 // Load task. 00069 class CLoadWavFile : public NLMISC::IRunnable 00070 { 00071 IBuffer *_pDestbuffer; 00072 00073 public: 00074 std::string _Filename; 00075 00076 CLoadWavFile (IBuffer *pdestBuffer, const std::string &filename); 00077 void run (void); 00078 }; 00079 00080 }; 00081 00082 } // NLSOUND |