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
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요