Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

Lamp::SoundCache Class Reference

サウンドキャッシュ More...

#include <SoundCache.h>

List of all members.

Public Member Functions

 SoundCache (const String &basePath="", const String &extension="", Sound::Focus focus=Sound::focusNormal, int defaultMaxMixingCount=16)
 コンストラクタ

virtual ~SoundCache ()
 デストラクタ

virtual bool loadStaticSound (const String &name, bool loop=false, int priority=Sound::priorityDefault, int maxMixingCount=0)
 静的サウンドのロード

virtual bool loadStaticSound3D (const String &name, bool loop=false, int priority=Sound::priorityDefault, float minimumDistance=DS3D_DEFAULTMINDISTANCE, float maximumDistance=DS3D_DEFAULTMAXDISTANCE, int maxMixingCount=0)
 静的3Dサウンドのロード

virtual bool unloadSound (const String &name)
 サウンドのアンロード

virtual void unloadAll ()
 全サウンドのアンロード

virtual bool loadSoundList (const String &filePath)
 サウンドリストのロード

virtual bool loadSoundList (TextReader *textReader)
 サウンドリストのロード

virtual SoundplaySound (const String &name, float volume=1.f, int frequency=0)
 サウンドの再生

virtual StereoSoundplayStereoSound (const String &name, float volume=1.f, int frequency=0, float pan=0.f)
 ステレオサウンドの再生

virtual Sound3DplaySound3D (const String &name, float volume=1.f, int frequency=0, const Vector3 &position=Vector3::zero)
 3Dサウンドの再生

virtual SoundgetSound (const String &name, Sound::Reset resetFlag=Sound::resetRuntime)
 サウンドの取得

virtual StereoSoundgetStereoSound (const String &name, Sound::Reset resetFlag=Sound::resetRuntime)
 ステレオサウンドの取得

virtual Sound3DgetSound3D (const String &name, Sound::Reset resetFlag=Sound::resetRuntime)
 3Dサウンドの取得

virtual void releaseSound (Sound *sound)
 サウンドの解放

virtual void suspendAll ()
 全サウンドの再生を一時停止する

virtual void resumeAll ()
 全サウンドの再生を再開する

virtual String toString () const
 文字列への変換


Protected Member Functions

virtual void createCache (const String &name, Sound *sound, int maxMixingCount)
 キャッシュ作成


Protected Attributes

HashMap< String, SoundArray * > cache_
 キャッシュ

ArrayList< SoundArray * > list_
 リスト

String basePath_
 ベースパス

String extension_
 拡張子

Sound::Focus focus_
 フォーカス

int defaultMaxMixingCount_
 デフォルト最大ミキシング数


Detailed Description

サウンドキャッシュ

静的サウンドをキャッシングするためのクラス。ストリームは恩恵が無いので 現在非対応。ストリームに対するclone()が上手くいくようになれば対応を考える。 SoundCache.cppのrev1.5あたりにストリームキャッシュの実装有り。

Definition at line 44 of file SoundCache.h.


Constructor & Destructor Documentation

Lamp::SoundCache::SoundCache const String basePath = "",
const String extension = "",
Sound::Focus  focus = Sound::focusNormal,
int  defaultMaxMixingCount = 16
 

コンストラクタ

Parameters:
basePath ベースパス
extension 「.」付き拡張子(例 : ".wav" ".ogg")
focus フォーカス
defaultMaxMixingCount デフォルト最大ミキシング数

Definition at line 39 of file SoundCache.cpp.

References Assert, and defaultMaxMixingCount_.


Member Function Documentation

void Lamp::SoundCache::createCache const String name,
Sound sound,
int  maxMixingCount
[protected, virtual]
 

キャッシュ作成

Parameters:
name 名前
sound キャッシュを作成するサウンド
maxMixingCount 最大ミキシング数

Definition at line 91 of file SoundCache.cpp.

References Lamp::ArrayList< SoundArray * >::add(), cache_, list_, and Lamp::HashMap< String, SoundArray * >::put().

Referenced by loadStaticSound(), and loadStaticSound3D().

Sound * Lamp::SoundCache::getSound const String name,
Sound::Reset  resetFlag = Sound::resetRuntime
[virtual]
 

サウンドの取得

サウンドの所有権を得る。所有権を得ている間、サウンドは再利用されない。 使用後はreleaseSound()で返却する必要がある。

Parameters:
name 名前
resetFlag リセットフラグ
Returns:
取得したサウンド、失敗ならNULL。

Definition at line 185 of file SoundCache.cpp.

References Assert, cache_, Lamp::HashMap< String, SoundArray * >::get(), Lamp::SoundCache::SoundArray::getFreeSound(), Lamp::Sound::hasOwnership(), NULL, Lamp::Sound::reset(), and Lamp::Sound::setOwnership().

Referenced by getSound3D(), and getStereoSound().

Sound3D * Lamp::SoundCache::getSound3D const String name,
Sound::Reset  resetFlag = Sound::resetRuntime
[virtual]
 

3Dサウンドの取得

サウンドの所有権を得る。所有権を得ている間、サウンドは再利用されない。 使用後はreleaseSound()で返却する必要がある。

Parameters:
name 名前
resetFlag リセットフラグ
Returns:
取得したサウンド、失敗ならNULL。

Definition at line 212 of file SoundCache.cpp.

References Lamp::Sound::castSound3D(), getSound(), NULL, and releaseSound().

StereoSound * Lamp::SoundCache::getStereoSound const String name,
Sound::Reset  resetFlag = Sound::resetRuntime
[virtual]
 

ステレオサウンドの取得

サウンドの所有権を得る。所有権を得ている間、サウンドは再利用されない。 使用後はreleaseSound()で返却する必要がある。

Parameters:
name 名前
resetFlag リセットフラグ
Returns:
取得したサウンド、失敗ならNULL。

Definition at line 199 of file SoundCache.cpp.

References Lamp::Sound::castStereoSound(), getSound(), NULL, and releaseSound().

bool Lamp::SoundCache::loadSoundList TextReader textReader  )  [virtual]
 

サウンドリストのロード

Parameters:
textReader テキストリーダ
Returns:
成功すればtrue

Definition at line 123 of file SoundCache.cpp.

bool Lamp::SoundCache::loadSoundList const String filePath  )  [virtual]
 

サウンドリストのロード

Parameters:
filePath ベースパスからの相対ファイルパス
Returns:
成功すればtrue

Definition at line 118 of file SoundCache.cpp.

References basePath_.

bool Lamp::SoundCache::loadStaticSound const String name,
bool  loop = false,
int  priority = Sound::priorityDefault,
int  maxMixingCount = 0
[virtual]
 

静的サウンドのロード

Parameters:
name サウンド名
loop ループするならtrue
priority 優先度を32767〜-32768の間で指定
maxMixingCount 最大ミキシング数、0ならデフォルトを使用する
Returns:
成功すればtrueを返す

Definition at line 54 of file SoundCache.cpp.

References Assert, basePath_, cache_, createCache(), defaultMaxMixingCount_, extension_, focus_, Lamp::HashMap< String, SoundArray * >::get(), NULL, Lamp::SoundBuffer::setLoop(), and Lamp::SoundBuffer::setPriority().

Referenced by Lamp::SoundList::loadSound().

bool Lamp::SoundCache::loadStaticSound3D const String name,
bool  loop = false,
int  priority = Sound::priorityDefault,
float  minimumDistance = DS3D_DEFAULTMINDISTANCE,
float  maximumDistance = DS3D_DEFAULTMAXDISTANCE,
int  maxMixingCount = 0
[virtual]
 

静的3Dサウンドのロード

Parameters:
name サウンド名
minimumDistance 最小距離
maximumDistance 最大距離
loop ループするならtrue
priority 優先度を32767〜-32768の間で指定
maxMixingCount 最大ミキシング数、0ならデフォルトを使用する
Returns:
成功すればtrueを返す

Definition at line 72 of file SoundCache.cpp.

References Assert, basePath_, cache_, createCache(), defaultMaxMixingCount_, extension_, focus_, Lamp::HashMap< String, SoundArray * >::get(), NULL, Lamp::Sound3D::setDistance(), Lamp::SoundBuffer::setLoop(), and Lamp::SoundBuffer::setPriority().

Referenced by Lamp::SoundList::loadSound().

Sound * Lamp::SoundCache::playSound const String name,
float  volume = 1.f,
int  frequency = 0
[virtual]
 

サウンドの再生

ループサウンドの場合は返り値のポインタを保存して自前でstop()を呼んでください。 ループサウンドで無い場合は返り値のポインタへのアクセスは、呼び出した時点で のみ行い、その後は使用しないで下さい。もし、ループしていないサウンドに対して 再生終了までのアクセスが必要なのであれば、getSound(),releaseSound()を 使用してください。

Parameters:
name 名前
volume ボリュームを1.fから0.fの間で指定する
frequency 周波数を100から100000の間で指定する、0ならオリジナル周波数
Returns:
再生したサウンド、失敗ならNULL。

Definition at line 130 of file SoundCache.cpp.

References cache_, Lamp::HashMap< String, SoundArray * >::get(), Lamp::SoundCache::SoundArray::getFreeSound(), NULL, Lamp::Sound::play(), Lamp::Sound::reset(), Lamp::Sound::setFrequency(), and Lamp::Sound::setVolume().

Sound3D * Lamp::SoundCache::playSound3D const String name,
float  volume = 1.f,
int  frequency = 0,
const Vector3 position = Vector3::zero
[virtual]
 

3Dサウンドの再生

ループサウンドの場合は返り値のポインタを保存して自前でstop()を呼んでください。 ループサウンドで無い場合は返り値のポインタへのアクセスは、呼び出した時点で のみ行い、その後は使用しないで下さい。もし、ループしていないサウンドに対して 再生終了までのアクセスが必要なのであれば、getSound(),releaseSound()を 使用してください。

Parameters:
name 名前
volume ボリュームを1.fから0.fの間で指定する
frequency 周波数を100から100000の間で指定する、0ならオリジナル周波数
position 再生位置を指定する
Returns:
再生したサウンド、失敗ならNULL。

Definition at line 164 of file SoundCache.cpp.

References cache_, Lamp::Sound::castSound3D(), Lamp::HashMap< String, SoundArray * >::get(), Lamp::SoundCache::SoundArray::getFreeSound(), NULL, Lamp::Sound3D::play(), Lamp::Sound3D::reset(), Lamp::SoundBuffer::setFrequency(), Lamp::Sound3D::setPosition(), and Lamp::SoundBuffer::setVolume().

StereoSound * Lamp::SoundCache::playStereoSound const String name,
float  volume = 1.f,
int  frequency = 0,
float  pan = 0.f
[virtual]
 

ステレオサウンドの再生

ループサウンドの場合は返り値のポインタを保存して自前でstop()を呼んでください。 ループサウンドで無い場合は返り値のポインタへのアクセスは、呼び出した時点で のみ行い、その後は使用しないで下さい。もし、ループしていないサウンドに対して 再生終了までのアクセスが必要なのであれば、getSound(),releaseSound()を 使用してください。

Parameters:
name 名前
volume ボリュームを1.fから0.fの間で指定する
frequency 周波数を100から100000の間で指定する、0ならオリジナル周波数
pan パンを-1.f(左)から1.f(右)の間で指定する
Returns:
再生したサウンド、失敗ならNULL。

Definition at line 145 of file SoundCache.cpp.

References cache_, Lamp::Sound::castStereoSound(), Lamp::HashMap< String, SoundArray * >::get(), Lamp::SoundCache::SoundArray::getFreeSound(), NULL, Lamp::SoundBuffer::play(), Lamp::StereoSound::reset(), Lamp::SoundBuffer::setFrequency(), Lamp::StereoSound::setPan(), and Lamp::SoundBuffer::setVolume().

void Lamp::SoundCache::releaseSound Sound sound  )  [virtual]
 

サウンドの解放

getSound()で所有権を得たサウンドを解放する。

Parameters:
sound 解放するサウンド

Definition at line 224 of file SoundCache.cpp.

References Assert, Lamp::Sound::hasOwnership(), NULL, and Lamp::Sound::setOwnership().

Referenced by getSound3D(), and getStereoSound().

String Lamp::SoundCache::toString  )  const [virtual]
 

文字列への変換

Returns:
文字列

Definition at line 258 of file SoundCache.cpp.

References basePath_, extension_, focus_, Lamp::String::format(), Lamp::ArrayList< SoundArray * >::getCount(), and list_.

bool Lamp::SoundCache::unloadSound const String name  )  [virtual]
 

サウンドのアンロード

Parameters:
name サウンド名
Returns:
成功すればtrueを返す

Definition at line 99 of file SoundCache.cpp.

References cache_, list_, NULL, Lamp::HashMap< String, SoundArray * >::remove(), and Lamp::ArrayList< SoundArray * >::removeByValue().


The documentation for this class was generated from the following files:
Generated on Wed Mar 16 10:29:51 2005 for Lamp by doxygen 1.3.2