00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00010 00011 #ifndef _AK_SOUNDFRAME_OBJECT_SF_H 00012 #define _AK_SOUNDFRAME_OBJECT_SF_H 00013 00014 #include <wtypes.h> 00015 00016 #include <AK/SoundEngine/Common/AkTypes.h> 00017 00018 namespace AK 00019 { 00020 class IReadBytes; 00021 class IWriteBytes; 00022 00023 namespace SoundFrame 00024 { 00025 class IActionList; 00026 class IStateList; 00027 class ISwitchList; 00028 class IArgumentList; 00029 class IArgumentValueList; 00030 00032 class ISFRefCount 00033 { 00034 public: 00037 virtual long AddRef() = 0; 00038 00041 virtual long Release() = 0; 00042 }; 00043 00045 class ISFObject : public ISFRefCount 00046 { 00047 public: 00054 virtual const WCHAR * GetName() const = 0; 00055 00058 virtual AkUniqueID GetID() const = 0; 00059 00062 virtual GUID GetGUID() const = 0; 00063 }; 00064 00066 class IObjectList : public ISFRefCount 00067 { 00068 public: 00071 virtual long GetCount() const = 0; 00072 00074 virtual void Reset() = 0; 00075 }; 00076 00078 class IEvent : public ISFObject 00079 { 00080 public: 00083 virtual IActionList * GetActionList() = 0; 00084 00087 static IEvent * From( 00088 IReadBytes * in_pBytes 00089 ); 00090 00093 virtual bool To( 00094 IWriteBytes * io_pBytes 00095 ) = 0; 00096 }; 00097 00099 class IAction : public ISFRefCount 00100 { 00101 public: 00107 virtual const WCHAR * GetName() const = 0; 00108 00111 virtual AkUniqueID GetSoundObjectID() const = 0; 00112 }; 00113 00115 class IDialogueEvent : public ISFObject 00116 { 00117 public: 00120 virtual IArgumentList * GetArgumentList() = 0; 00121 00124 static IDialogueEvent * From( 00125 IReadBytes * in_pBytes 00126 ); 00127 00130 virtual bool To( 00131 IWriteBytes * io_pBytes 00132 ) = 0; 00133 }; 00134 00136 class IArgument : public ISFObject 00137 { 00138 public: 00141 virtual IArgumentValueList * GetArgumentValueList() = 0; 00142 00145 static IArgument * From( 00146 IReadBytes * in_pBytes 00147 ); 00148 00151 virtual bool To( 00152 IWriteBytes * io_pBytes 00153 ) = 0; 00154 }; 00155 00157 class IArgumentValue : public ISFObject 00158 {}; 00159 00161 class ISoundObject : public ISFObject 00162 { 00163 public: 00166 virtual bool HasAttenuation() const = 0; 00167 00170 virtual double AttenuationMaxDistance() const = 0; 00171 00174 static ISoundObject * From( 00175 IReadBytes * in_pBytes 00176 ); 00177 00180 virtual bool To( 00181 IWriteBytes * io_pBytes 00182 ) = 0; 00183 }; 00184 00186 class IStateGroup : public ISFObject 00187 { 00188 public: 00191 virtual IStateList * GetStateList() = 0; 00192 00195 static IStateGroup * From( 00196 IReadBytes * in_pBytes 00197 ); 00198 00201 virtual bool To( 00202 IWriteBytes * io_pBytes 00203 ) = 0; 00204 }; 00205 00207 class IState : public ISFObject 00208 {}; 00209 00211 class ISwitchGroup : public ISFObject 00212 { 00213 public: 00216 virtual ISwitchList * GetSwitchList() = 0; 00217 00220 static ISwitchGroup * From( 00221 IReadBytes * in_pBytes 00222 ); 00223 00226 virtual bool To( 00227 IWriteBytes * io_pBytes 00228 ) = 0; 00229 }; 00230 00232 class ISwitch : public ISFObject 00233 {}; 00234 00240 class IGameParameter : public ISFObject 00241 { 00242 public: 00243 00246 virtual double RangeMin() const = 0; 00247 00250 virtual double RangeMax() const = 0; 00251 00254 virtual double Default() const = 0; 00255 00258 static IGameParameter * From( 00259 IReadBytes * in_pBytes 00260 ); 00261 00264 virtual bool To( 00265 IWriteBytes * io_pBytes 00266 ) = 0; 00267 }; 00268 00270 class IConversionSettings : public ISFObject 00271 { 00272 public: 00275 static IConversionSettings * From( 00276 IReadBytes * in_pBytes 00277 ); 00278 00281 virtual bool To( 00282 IWriteBytes * io_pBytes 00283 ) = 0; 00284 }; 00285 00287 class ITrigger : public ISFObject 00288 { 00289 public: 00292 static ITrigger * From( 00293 IReadBytes * in_pBytes 00294 ); 00295 00298 virtual bool To( 00299 IWriteBytes * io_pBytes 00300 ) = 0; 00301 }; 00302 00304 class IAuxBus : public ISFObject 00305 { 00306 public: 00309 static IAuxBus * From( 00310 IReadBytes * in_pBytes 00311 ); 00312 00315 virtual bool To( 00316 IWriteBytes * io_pBytes 00317 ) = 0; 00318 }; 00319 00321 class ISoundBank : public ISFObject 00322 { 00323 public: 00326 static ISoundBank * From( 00327 IReadBytes * in_pBytes 00328 ); 00329 00332 virtual bool To( 00333 IWriteBytes * io_pBytes 00334 ) = 0; 00335 }; 00336 00338 class IGameObject : public ISFRefCount 00339 { 00340 public: 00343 static const AkGameObjectID s_InvalidGameObject = (unsigned int)(~0); 00344 00346 static const AkGameObjectID s_WwiseGameObject = 0; 00347 00354 virtual const WCHAR * GetName() const = 0; 00355 00358 virtual AkGameObjectID GetID() const = 0; 00359 00362 static IGameObject * From( 00363 IReadBytes * in_pBytes 00364 ); 00365 00368 virtual bool To( 00369 IWriteBytes * io_pBytes 00370 ) = 0; 00371 }; 00372 00374 class IOriginalFile : public ISFObject 00375 { 00376 public: 00379 static IOriginalFile * From( 00380 IReadBytes * in_pBytes 00381 ); 00382 00385 virtual bool To( 00386 IWriteBytes * io_pBytes 00387 ) = 0; 00388 }; 00389 00391 class IEventList : public IObjectList 00392 { 00393 public: 00396 virtual IEvent * Next() = 0; 00397 }; 00398 00400 class IActionList : public IObjectList 00401 { 00402 public: 00405 virtual IAction * Next() = 0; 00406 }; 00407 00409 class IDialogueEventList : public IObjectList 00410 { 00411 public: 00414 virtual IDialogueEvent * Next() = 0; 00415 }; 00416 00418 class ISoundObjectList : public IObjectList 00419 { 00420 public: 00423 virtual ISoundObject * Next() = 0; 00424 }; 00425 00427 class IStateGroupList : public IObjectList 00428 { 00429 public: 00432 virtual IStateGroup * Next() = 0; 00433 }; 00434 00436 class IStateList : public IObjectList 00437 { 00438 public: 00441 virtual IState * Next() = 0; 00442 }; 00443 00445 class ISwitchGroupList : public IObjectList 00446 { 00447 public: 00450 virtual ISwitchGroup * Next() = 0; 00451 }; 00452 00454 class ISwitchList : public IObjectList 00455 { 00456 public: 00459 virtual ISwitch * Next() = 0; 00460 }; 00461 00467 class IGameParameterList : public IObjectList 00468 { 00469 public: 00472 virtual IGameParameter * Next() = 0; 00473 }; 00474 00476 class IConversionSettingsList : public IObjectList 00477 { 00478 public: 00481 virtual IConversionSettings * Next() = 0; 00482 }; 00483 00485 class ITriggerList : public IObjectList 00486 { 00487 public: 00490 virtual ITrigger * Next() = 0; 00491 }; 00492 00494 class IArgumentList : public IObjectList 00495 { 00496 public: 00499 virtual IArgument * Next() = 0; 00500 }; 00501 00503 class IArgumentValueList : public IObjectList 00504 { 00505 public: 00508 virtual IArgumentValue * Next() = 0; 00509 }; 00510 00512 class IAuxBusList : public IObjectList 00513 { 00514 public: 00517 virtual IAuxBus * Next() = 0; 00518 }; 00519 00521 class ISoundBankList : public IObjectList 00522 { 00523 public: 00526 virtual ISoundBank * Next() = 0; 00527 }; 00528 00530 class IGameObjectList : public IObjectList 00531 { 00532 public: 00535 virtual IGameObject * Next() = 0; 00536 }; 00537 00539 class IOriginalFileList : public IObjectList 00540 { 00541 public: 00544 virtual IOriginalFile * Next() = 0; 00545 }; 00546 } 00547 } 00548 00549 #endif // _AK_SOUNDFRAME_OBJECTS_SF_H
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise