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 Sound * | playSound (const String &name, float volume=1.f, int frequency=0)
| サウンドの再生
virtual StereoSound * | playStereoSound (const String &name, float volume=1.f, int frequency=0, float pan=0.f)
| ステレオサウンドの再生
virtual Sound3D * | playSound3D (const String &name, float volume=1.f, int frequency=0, const Vector3 &position=Vector3::zero)
| 3Dサウンドの再生
virtual Sound * | getSound (const String &name, Sound::Reset resetFlag=Sound::resetRuntime)
| サウンドの取得
virtual StereoSound * | getStereoSound (const String &name, Sound::Reset resetFlag=Sound::resetRuntime)
| ステレオサウンドの取得
virtual Sound3D * | getSound3D (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:

- SoundCache.h
- SoundCache.cpp