00001 //------------------------------------------------------------------------------ 00002 // Lamp : Open source game middleware 00003 // Copyright (C) 2004 Junpei Ohtani ( Email : junpee@users.sourceforge.jp ) 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 //------------------------------------------------------------------------------ 00019 00020 /** @file 00021 * サウンドリストヘッダ 00022 * @author Junpee 00023 */ 00024 00025 #ifndef SOUND_LIST_H_ 00026 #define SOUND_LIST_H_ 00027 00028 namespace Lamp{ 00029 00030 class SoundCache; 00031 class TextReader; 00032 00033 //------------------------------------------------------------------------------ 00034 /** 00035 * サウンドリスト 00036 * 00037 * テキストファイルからサウンドリストをサウンドキャッシュに読み込む。 00038 * 具体的にはサウンドファイルが置いてあるディレクトリに以下に示すフォーマットの 00039 * テキストファイルを配置する。その後、サウンドキャッシュのloadSoundList() 00040 * を使用してサウンドリストをロードします。 00041 * このファイルはエクセル等のツールで編集すると楽でしょう。<br> 00042 * <br> 00043 * <hr> 00044 * // 行頭の「//」コメントに対応している。 各要素はタブで区切る。<br> 00045 * //ファイル名 Stereo,3D Once,Loop Priority MaxMixingCount Min3DDistance 00046 * Max3DDistance<br> 00047 * muda Stereo Once -1 0<br> 00048 * mudamuda 3D Loop 100 16 5.73 76.5<br> 00049 * <hr> 00050 * ファイル名<br> 00051 * 相対ファイル名を指定します。拡張子はサウンドキャッシュで指定すると 00052 * いいでしょう。<br> 00053 * <br> 00054 * Stereo,3D<br> 00055 * ステレオサウンドか3Dサウンドかを指定します。3Dサウンドはモノラルである必要が 00056 * あります。<br> 00057 * <br> 00058 * Once,Loop<br> 00059 * 一回の再生かループ再生かを指定します。<br> 00060 * <br> 00061 * Priority<br> 00062 * 優先度を32767〜-32768の範囲で指定します。どうしても鳴ってほしい音の優先度を 00063 * 上げましょう。<br> 00064 * <br> 00065 * MaxMixingCount<br> 00066 * 最大同音同時発音数を指定します。0を指定するとサウンドキャッシュのデフォルト値を 00067 * 使用します<br> 00068 * <br> 00069 * Min3DDistance<br> 00070 * 3Dサウンドの最小距離を指定します。<br> 00071 * <br> 00072 * Max3DDistance<br> 00073 * 3Dサウンドの最大距離を指定します。<br> 00074 */ 00075 class SoundList{ 00076 public: 00077 /** 00078 * ロード 00079 * @param soundCache サウンドキャッシュ 00080 * @param filePath ファイルパス 00081 * @return 成功すればtrue 00082 */ 00083 static bool load(SoundCache* soundCache, const String& filePath); 00084 00085 /** 00086 * ロード 00087 * @param soundCache サウンドキャッシュ 00088 * @param textReader テキストリーダ 00089 * @return 成功すればtrue 00090 */ 00091 static bool load(SoundCache* soundCache, TextReader* textReader); 00092 00093 /** 00094 * サウンドのロード 00095 * @param soundCache サウンドキャッシュ 00096 * @param line ロード文字列 00097 * @return 成功すればtrue 00098 */ 00099 static bool loadSound(SoundCache* soundCache, const String& line); 00100 00101 00102 private: 00103 // コンストラクタの隠蔽 00104 SoundList(); 00105 00106 }; 00107 00108 //------------------------------------------------------------------------------ 00109 } // End of namespace Lamp 00110 #endif // End of SOUND_LIST_H_ 00111 //------------------------------------------------------------------------------ 00112