Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
AudibleSoundClass.h
1/* Renegade Scripts.dll
2 Copyright 2013 Tiberian Technologies
3
4 This file is part of the Renegade scripts.dll
5 The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version. See the file COPYING for more details.
9 In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
10 Only the source code to the module(s) containing the licenced code has to be released.
11*/
12#ifndef TT_INCLUDE__AUDIBLESOUNDCLASS_H
13#define TT_INCLUDE__AUDIBLESOUNDCLASS_H
14
15
16
17#include "Matrix3D.h"
18#include "SoundSceneObjClass.h"
19#include "WWAudioClass.h"
20
21
22class AudibleSoundDefinitionClass;
23class SoundHandleClass;
24class SoundBufferClass;
25
26
27
28class AudibleSoundClass : public SoundSceneObjClass
29{
30
31public:
32
33 enum Fade
34 {
35 NoFade = 0,
36 FadeIn = 1,
37 FadeOut = 2,
38 };
39
40 enum SoundType
41 {
42 TypeMusic = 0,
43 TypeEffect = 1,
44 TypeDialog = 2,
45 TypeCinematic = 3,
46 };
47
48protected:
49
50 SoundHandleClass* handle; // 84 54
51 uint32 time; // 88 58
52 uint32 state; // 92 5C
53 SoundType type; // 96 60
54 Fade fade; // 100 64
55 uint32 fadeRemainingTime; // 104 68
56 uint32 fadeTime; // 108 6C
57 uint32 channel; // 112 70
58 SoundBufferClass* buffer; // 116 74
59 float runtimePriority; // 120 78
60 float priority; // 124 7C
61 float realVolume; // 128 80
62 float volume; // 132 84
63 float pan; // 136 88
64 uint32 loopCount; // 140 8C
65 int32 remainingLoops; // 144 90
66 uint32 duration; // 148 94
67 uint32 playPosition; // 152 98
68 float startPosition; // 156 9C
69 float pitch; // 160 A0
70 Matrix3D listenerTransform; // 164 A4
71 Matrix3D transform; // 212 D4
72 Matrix3D o260; //104
73 bool culled; // 308 134
74 bool dirty; // 309 135
75 float dropOffRadius; // 312 138
76 FilteredSoundClass* filteredSound; // 316 13C
77 AudibleSoundDefinitionClass*definition; // 320 140
78 LogicalSoundClass* logicalSound; // 324 144
79
80
81public:
82
83 AudibleSoundClass();
84 virtual ~AudibleSoundClass();
85
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 ();
163
164 bool Verify_Playability();
165
166 AudibleSoundClass& operator = (const AudibleSoundClass& sound);
167
168}; // 328 148
169
170
171#endif