Browse Subversion Repository
Contents of /trunk/CSoundEffector.h
Parent Directory
| Revision Log
Revision 1 -
( show annotations)
( download)
( as text)
Sun Aug 15 01:53:13 2010 UTC
(13 years, 9 months ago)
by okadu
File MIME type: text/x-chdr
File size: 1311 byte(s)
| 1 |
#ifndef CSOUNDEFFECTOR_H_INCLUDED |
| 2 |
#define CSOUNDEFFECTOR_H_INCLUDED |
| 3 |
|
| 4 |
class CNamedObject; |
| 5 |
class CModelPlugin; |
| 6 |
class CSoundEffector; |
| 7 |
class CScene; |
| 8 |
|
| 9 |
/* |
| 10 |
* サウンドエフェクタ状態 |
| 11 |
*/ |
| 12 |
class CSoundState{ |
| 13 |
friend class CSoundEffector; |
| 14 |
private: |
| 15 |
int m_State; // 状態 |
| 16 |
bool m_ApplyFlag; // 適用フラグ |
| 17 |
CWave m_Wave; // サウンドデータ |
| 18 |
public: |
| 19 |
CSoundState(){ Reset(); } |
| 20 |
~CSoundState(); |
| 21 |
void Reset(){ m_State = 0; } |
| 22 |
void Confirm(CSoundEffector *, bool); |
| 23 |
}; |
| 24 |
|
| 25 |
// 反復子 |
| 26 |
typedef list<CSoundState>::iterator ISoundState; |
| 27 |
typedef set<CSoundState *>::iterator ISPSoundState; |
| 28 |
|
| 29 |
/* |
| 30 |
* サウンドエフェクタ |
| 31 |
*/ |
| 32 |
class CSoundEffector{ |
| 33 |
private: |
| 34 |
static set<CSoundState *> ms_PlayList; // プレイリスト |
| 35 |
string m_WaveFileName; // wave ファイル名 |
| 36 |
CNamedObject *m_Link; // 接続先オブジェクト |
| 37 |
VEC3 m_SourceCoord; // 位置 |
| 38 |
int m_Volume; // 音量 |
| 39 |
bool m_Loop; // ループ |
| 40 |
CSoundState *m_LinkState; // 状態変数 |
| 41 |
public: |
| 42 |
static void InitPlayList(); |
| 43 |
static void DeleteSound(CSoundState *ss){ ms_PlayList.erase(ss); } |
| 44 |
char *Read(char *, CModelPlugin *); |
| 45 |
void LoadData(CSoundState *); |
| 46 |
void SetPos(CSoundState *); |
| 47 |
void PlayWave(CSoundState *); |
| 48 |
void Link(CSoundState *); |
| 49 |
void Register(CScene *); |
| 50 |
}; |
| 51 |
|
| 52 |
// 反復子 |
| 53 |
typedef list<CSoundEffector>::iterator ISoundEffector; |
| 54 |
|
| 55 |
#endif |
|