FineKernelToolKit 4.2.13
|
オーディオ基底クラス [詳解]
#include <FK/Audio.h>
公開メンバ関数 | |
fk_AudioBase (void) | |
コンストラクタ | |
virtual | ~fk_AudioBase () |
デストラクタ | |
再生制御関数 | |
virtual bool | open (const std::string &name)=0 |
オーディオデータ読み込み関数 | |
virtual bool | ready (void)=0 |
再生開始可能状態取得関数 | |
virtual bool | play (void)=0 |
再生関数 | |
virtual double | tell (void)=0 |
再生位置取得関数 | |
virtual void | seek (double time)=0 |
再生位置頭出し関数 | |
virtual void | stop (void)=0 |
停止関数 | |
virtual void | end (void)=0 |
オーディオデータ解放関数 | |
void | pause (void) |
ポーズ関数 | |
音量制御関数 | |
void | setGain (double gain) |
音量設定関数 | |
double | getGain (void) |
音量取得関数 | |
キューバッファ制御関数 | |
void | setQueueSize (int size) |
キューバッファサイズ設定関数 | |
int | getQueueSize (void) |
キューバッファサイズ取得関数 | |
ループ再生制御関数 | |
void | setLoopMode (bool mode) |
ループモード設定関数 | |
bool | getLoopMode (void) |
ループモード取得関数 | |
void | setLoopArea (double start, double end) |
ループエリア設定関数 | |
double | getLoopStartTime (void) |
ループ開始点取得関数 | |
double | getLoopEndTime (void) |
ループ終了点取得関数 | |
サラウンド制御関数 | |
void | setPosition (const fk_Vector &pos) |
サラウンド音源位置設定関数 | |
fk_Vector | getPosition (void) |
サラウンド音源座標取得関数 | |
void | setModel (fk_Model *model) |
サラウンド音源同期モデル設定関数1 | |
void | setModel (fk_Model &model) |
サラウンド音源同期モデル設定関数2 | |
fk_Model * | getModel (void) |
サラウンド音源同期モデル取得関数 | |
void | setReferenceDist (double dist) |
サラウンド音源有効距離設定関数 | |
double | getReferenceDist (void) |
サラウンド音源座有効距離取得関数 | |
void | setSurroundMode (bool mode) |
サラウンド効果状態設定関数 | |
bool | getSurroundMode (void) |
サラウンド効果状態取得関数 | |
静的公開メンバ関数 | |
システム全体初期化・制御関数 | |
static bool | init (void) |
オーディオシステム初期化関数 | |
static bool | getInit (void) |
オーディオシステム初期化状態取得関数 | |
static void | sleep (double time) |
プロセススリープ関数 | |
サラウンドリスナー制御関数 | |
static void | setListenerModel (fk_Model *model) |
サラウンドリスナー同期モデル設定関数1 | |
static void | setListenerModel (fk_Model &model) |
サラウンドリスナー同期モデル設定関数2 | |
static fk_Model * | getListenerModel (void) |
サラウンドリスナーモデル取得関数 | |
オーディオ基底クラス
このクラスは、FKが提供するオーディオクラスの基底クラスとなっています。 オーディオ全般で共通して利用するメンバ関数を実装しています。 FKでは、オーディオシステムとして OpenAL を採用しています。 Windows プラットフォームでこのクラスの派生クラスを利用する場合は、 事前に OpenAL をインストールしておく必要があります。 (Mac は OpenAL が標準で搭載されているため、事前準備は必要ありません。)
このクラスの派生クラスによるインスタンスは、 音声再生を制御するための基本的な機能となる再生、 停止、繰り返し再生、音量調整を制御できます。
加えて、サラウンド(立体音響)を利用することもできます。 サラウンド機能においては、 各音源自体の3次元空間での位置を fk_Model と同期を取ることで実現します。 そのため、FK の 3D プログラムと高い親和性を持ちます。 また、3Dグラフィックスにおける「カメラ」に相当するような、 自分自身を指す言葉を「リスナー」と呼びます。 リスナーも fk_Model と同期を取ることができます。
FK::fk_AudioBase::fk_AudioBase | ( | void | ) |
コンストラクタ
|
virtual |
デストラクタ
|
pure virtual |
オーディオデータ読み込み関数
データを開くための仮想関数です。 具体的な仕様は各派生クラスの open() を参照して下さい。
[in] | name | データ名称。 |
FK::fk_AudioStream, FK::fk_AudioOggBuffer, FK::fk_AudioWavBufferで実装されています。
|
pure virtual |
再生開始可能状態取得関数
データ入力やデバイスの初期化等の処理が終了し、 再生が可能な状態となっているかどうかを取得する関数です。
FK::fk_AudioStream, FK::fk_AudioOggBufferで実装されています。
|
pure virtual |
再生関数
実際に音声の再生を行う関数です。 本関数は、再生を行いたい状況においては1秒に数回以上の割合で、 連続して実行する必要があります。
FK::fk_AudioStream, FK::fk_AudioOggBufferで実装されています。
|
pure virtual |
再生位置取得関数
現在の再生位置を返します。単位は秒です。 この関数が返す値は再生時間ではなく、 音源での始端からの時間となります。
FK::fk_AudioStream, FK::fk_AudioOggBufferで実装されています。
|
pure virtual |
再生位置頭出し関数
現在の再生位置を変更します。単位は秒です。
[in] | time | 再生位置。 |
FK::fk_AudioStream, FK::fk_AudioOggBufferで実装されています。
|
pure virtual |
停止関数
音声の再生を停止し、再生位置も初期化します。 この後に play() を実行した場合、 停止位置ではなく始端(または指定した箇所)から再生されます。 一時停止を行いたい場合は pause() を利用して下さい。
FK::fk_AudioStream, FK::fk_AudioOggBufferで実装されています。
|
pure virtual |
void FK::fk_AudioBase::pause | ( | void | ) |
void FK::fk_AudioBase::setGain | ( | double | gain | ) |
音量設定関数
音量(減衰率)を設定します。
[in] | gain | 音量値。0 で無音、1 で最大音量となります。 0 未満または 1 を超過する値が指定された場合は、 音量の変化を行いません。 |
double FK::fk_AudioBase::getGain | ( | void | ) |
音量取得関数
現在の音量値(減衰率)を取得します。
void FK::fk_AudioBase::setQueueSize | ( | int | size | ) |
キューバッファサイズ設定関数
キューバッファのサイズを設定します。 デフォルトは 64 です。
[in] | size | キューバッファのサイズ。 |
int FK::fk_AudioBase::getQueueSize | ( | void | ) |
キューバッファサイズ取得関数
現在のキューバッファサイズ設定値を取得します。
void FK::fk_AudioBase::setLoopMode | ( | bool | mode | ) |
bool FK::fk_AudioBase::getLoopMode | ( | void | ) |
void FK::fk_AudioBase::setLoopArea | ( | double | start, |
double | end | ||
) |
ループエリア設定関数
ループモードが ON である場合に、繰り返す音源の時間帯を指定します。 デフォルトでは、開始時間は 0、終了時間は -1 に設定されており、 終了時間が開始時間より前に設定されている場合、 ループモードでの終端は音源の終端となります。
[in] | start | ループモードでの再生開始時間 |
[in] | end | ループモードでの再生終了時間 |
double FK::fk_AudioBase::getLoopStartTime | ( | void | ) |
double FK::fk_AudioBase::getLoopEndTime | ( | void | ) |
void FK::fk_AudioBase::setPosition | ( | const fk_Vector & | pos | ) |
サラウンド音源位置設定関数
音源インスタンスの3次元位置を指定します。 setModel(fk_Model *), setModel(fk_Model &) による同期モデルの指定が行われた場合は、 同期モデル位置が優先されます。 デフォルトは原点です。
[in] | pos | 音源位置。 |
fk_Vector FK::fk_AudioBase::getPosition | ( | void | ) |
サラウンド音源座標取得関数
音源インスタンスの3次元位置を取得します。
void FK::fk_AudioBase::setModel | ( | fk_Model * | model | ) |
サラウンド音源同期モデル設定関数1
音源インスタンスの3次元空間中での位置と同期するモデルを指定します。 ここで指定したモデルが移動することにより、 音源もサラウンド効果の中で移動します。
[in] | model | 音源と同期するモデルインスタンスのポインタ。 同期を解除したい場合は nullptr を代入します。 |
void FK::fk_AudioBase::setModel | ( | fk_Model & | model | ) |
サラウンド音源同期モデル設定関数2
音源インスタンスの3次元空間中での位置と同期するモデルを指定します。 ここで指定したモデルが移動することにより、 音源もサラウンド効果の中で移動します。
[in] | model | 音源と同期するモデルインスタンス。 |
fk_Model * FK::fk_AudioBase::getModel | ( | void | ) |
サラウンド音源同期モデル取得関数
現在音源に設定されている位置同期モデルを返します。
void FK::fk_AudioBase::setReferenceDist | ( | double | dist | ) |
サラウンド音源有効距離設定関数
3次元空間中で音源が届く距離を指定します。 サラウンド効果においては、 音源はリスナーから離れるほど出力音量が小さくなり、 ここで指定する距離より大きい場合に聞こえなくなります。
[in] | dist | 有効距離 |
double FK::fk_AudioBase::getReferenceDist | ( | void | ) |
void FK::fk_AudioBase::setSurroundMode | ( | bool | mode | ) |
サラウンド効果状態設定関数
このインスタンスのサラウンド効果を制御します。
[in] | mode | true の場合、サラウンド効果を有効とします。 false の場合は無効とします。 |
bool FK::fk_AudioBase::getSurroundMode | ( | void | ) |
|
static |
|
static |
|
static |
|
static |
サラウンドリスナー同期モデル設定関数1
リスナーの位置を制御するための、 同期モデルインスタンスを指定します。 デフォルトでは、リスナー位置は原点です。
なお、本クラスのリスナーは オーディオ系クラスの全インスタンスで共通となっています。 そのため static 関数となっており、 クラスインスタンスを生成せずに指定することが可能です。
リスナーではなく、音源自身の位置を変更するには setPosition() や setModel() を使用して下さい。
[in] | model | リスナーとなるモデルインスタンスへのポインタ。 |
|
static |
サラウンドリスナー同期モデル設定関数2
リスナーの位置を制御するための、 同期モデルインスタンスを指定します。 デフォルトでは、リスナー位置は原点です。
なお、本クラスのリスナーは オーディオ系クラスの全インスタンスで共通となっています。 そのため static 関数となっており、 クラスインスタンスを生成せずに指定することが可能です。
リスナーではなく、音源自身の位置を変更するには setPosition() や setModel() を使用して下さい。
[in] | model | リスナーとなるモデルインスタンス。 |
|
static |
サラウンドリスナーモデル取得関数
リスナーに指定したモデルインスタンスを取得します。