12#ifndef TT_INCLUDE__AUDIBLESOUNDCLASS_H
13#define TT_INCLUDE__AUDIBLESOUNDCLASS_H
18#include "SoundSceneObjClass.h"
19#include "WWAudioClass.h"
22class AudibleSoundDefinitionClass;
23class SoundHandleClass;
24class SoundBufferClass;
28class AudibleSoundClass :
public SoundSceneObjClass
50 SoundHandleClass* handle;
55 uint32 fadeRemainingTime;
58 SoundBufferClass* buffer;
59 float runtimePriority;
70 Matrix3D listenerTransform;
76 FilteredSoundClass* filteredSound;
77 AudibleSoundDefinitionClass*definition;
78 LogicalSoundClass* logicalSound;
84 virtual ~AudibleSoundClass();
86 virtual const PersistFactoryClass &Get_Factory ()
const;
87 virtual bool Save (ChunkSaveClass& xSave);
88 virtual bool Load (ChunkLoadClass& xLoad);
89 virtual AudibleSoundClass* As_AudibleSoundClass ();
90 virtual bool On_Frame_Update (uint32 timePast);
91 virtual void Set_Position (
const Vector3& position);
92 virtual Vector3 Get_Position ()
const;
93 virtual void Set_Listener_Transform (
const Matrix3D& listenerTransform);
94 virtual void Set_Transform (
const Matrix3D& transform);
95 virtual Matrix3D Get_Transform ()
const;
96 virtual void Cull_Sound (
bool cull);
97 virtual bool Is_Sound_Culled ()
const;
98 virtual void Add_To_Scene (
bool);
99 virtual void Remove_From_Scene ();
100 virtual void Set_DropOff_Radius (
float dropOffRadius);
101 virtual float Get_DropOff_Radius ()
const;
102 virtual unsigned long Get_Class_ID ()
const;
103 virtual AudibleSoundClass::SoundType Get_Type ()
const;
104 virtual void Set_Type (SoundType type);
105 virtual bool Play (
bool addToPlaylist);
106 virtual bool Pause ();
107 virtual bool Resume ();
108 virtual bool Stop (
bool removeFromPlaylist);
109 virtual void Seek (uint32 playPosition);
110 virtual uint32 Get_State ()
const;
111 virtual void Fade_Out (uint32 fadeTime);
112 virtual void Fade_In (uint32 fadeTime);
113 virtual uint32 Get_Timestamp ()
const;
114 virtual uint32 Get_Virtual_Channel ()
const;
115 virtual void Set_Virtual_Channel (uint32 channel);
116 virtual const char* Get_Filename ()
const;
117 virtual bool Is_Playing ()
const;
118 virtual float Get_Pan ()
const;
119 virtual void Set_Pan (
float pan);
120 virtual float Get_Volume ()
const;
121 virtual void Set_Volume (
float volume);
122 virtual void Update_Volume ();
123 virtual uint32 Get_Loop_Count ()
const;
124 virtual uint32 Get_Loops_Left ()
const;
125 virtual void Set_Loop_Count (uint32 loopCount);
126 virtual float Get_Priority ()
const;
127 virtual float Peek_Priority ()
const;
128 virtual void Set_Priority (
float priority);
129 virtual float Get_Runtime_Priority ()
const;
130 virtual void Set_Runtime_Priority (
float runtimePriority);
131 virtual uint32 Get_Playback_Rate ()
const;
132 virtual void Set_Playback_Rate (uint32 rate);
133 virtual float Get_Pitch_Factor ()
const;
134 virtual void Set_Pitch_Factor (
float pitch);
135 virtual uint32 Get_Duration ()
const;
136 virtual uint32 Get_Play_Position ()
const;
137 virtual void Set_Play_Position (
float playPosition);
138 virtual void Set_Play_Position (uint32 playPosition);
139 virtual void Set_Start_Offset (
float startPosition);
140 virtual float Get_Start_Offset ()
const;
141 virtual void Set_Dirty (
bool dirty);
142 virtual bool Is_Dirty ()
const;
143 virtual void Set_Definition (AudibleSoundDefinitionClass* definition);
144 virtual AudibleSoundDefinitionClass *Get_Definition ();
145 virtual void Re_Sync (
const AudibleSoundClass& sound);
146 virtual void Free_Conversion ();
147 virtual void Convert_To_Filtered ();
148 virtual FilteredSoundClass* As_Converted_Format ();
149 virtual float Determine_Real_Volume ()
const;
150 virtual void Internal_Set_Volume (
float volume);
151 virtual void Update_Fade ();
152 virtual SoundHandleClass* Get_Miles_Handle ()
const;
153 virtual void Set_Miles_Handle (HSAMPLE milesHandle);
154 virtual void Free_Miles_Handle ();
155 virtual void Initialize_Miles_Handle ();
156 virtual void Allocate_Miles_Handle ();
157 virtual SoundBufferClass* Get_Buffer ()
const;
158 virtual SoundBufferClass* Peek_Buffer ()
const;
159 virtual void Set_Buffer (SoundBufferClass* buffer);
160 virtual void Restart_Loop ();
161 virtual void Update_Play_Position ();
162 virtual void On_Loop_End ();
164 bool Verify_Playability();
166 AudibleSoundClass& operator = (
const AudibleSoundClass& sound);