バージョン
00001 /******************************************************************************* 00002 The content of this file includes portions of the AUDIOKINETIC Wwise Technology 00003 released in source code form as part of the SDK installer package. 00004 00005 Commercial License Usage 00006 00007 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology 00008 may use this file in accordance with the end user license agreement provided 00009 with the software or, alternatively, in accordance with the terms contained in a 00010 written agreement between you and Audiokinetic Inc. 00011 00012 Apache License Usage 00013 00014 Alternatively, this file may be used under the Apache License, Version 2.0 (the 00015 "Apache License"); you may not use this file except in compliance with the 00016 Apache License. You may obtain a copy of the Apache License at 00017 http://www.apache.org/licenses/LICENSE-2.0. 00018 00019 Unless required by applicable law or agreed to in writing, software distributed 00020 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 00021 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for 00022 the specific language governing permissions and limitations under the License. 00023 00024 Version: <VERSION> Build: <BUILDNUMBER> 00025 Copyright (c) <COPYRIGHTYEAR> Audiokinetic Inc. 00026 *******************************************************************************/ 00027 00028 // AkQueryParameters.h 00029 00032 00033 00034 #ifndef _AK_QUERYPARAMS_H_ 00035 #define _AK_QUERYPARAMS_H_ 00036 00037 #include <AK/SoundEngine/Common/AkSoundEngineExport.h> 00038 #include <AK/SoundEngine/Common/AkTypes.h> 00039 #include <AK/SoundEngine/Common/AkCommonDefs.h> 00040 #include <AK/Tools/Common/AkArray.h> 00041 00043 struct AkPositioningInfo 00044 { 00045 AkReal32 fCenterPct; 00046 AkPannerType pannerType; 00047 AkPositionSourceType posSourceType; 00048 bool bUpdateEachFrame; 00049 bool bUseSpatialization; 00050 bool bUseAttenuation; 00051 00052 bool bUseConeAttenuation; 00053 AkReal32 fInnerAngle; 00054 AkReal32 fOuterAngle; 00055 AkReal32 fConeMaxAttenuation; 00056 AkLPFType LPFCone; 00057 AkLPFType HPFCone; 00058 00059 AkReal32 fMaxDistance; 00060 AkReal32 fVolDryAtMaxDist; 00061 AkReal32 fVolAuxGameDefAtMaxDist; 00062 AkReal32 fVolAuxUserDefAtMaxDist; 00063 AkLPFType LPFValueAtMaxDist; 00064 AkLPFType HPFValueAtMaxDist; 00065 }; 00066 00068 struct AkObjectInfo 00069 { 00070 AkUniqueID objID; 00071 AkUniqueID parentID; 00072 AkInt32 iDepth; 00073 }; 00074 00075 // Audiokinetic namespace 00076 namespace AK 00077 { 00078 // Audiokinetic sound engine namespace 00079 namespace SoundEngine 00080 { 00091 00092 namespace Query 00093 { 00096 00097 00102 AK_EXTERNAPIFUNC( AKRESULT, GetPosition )( 00103 AkGameObjectID in_GameObjectID, 00104 AkSoundPosition& out_rPosition 00105 ); 00106 00108 00111 00112 00117 AK_EXTERNAPIFUNC( AKRESULT, GetActiveListeners )( 00118 AkGameObjectID in_GameObjectID, 00119 AkUInt32& out_ruListenerMask 00120 ); 00121 00126 AK_EXTERNAPIFUNC( AKRESULT, GetListenerPosition )( 00127 AkUInt32 in_uIndex, 00128 AkListenerPosition& out_rPosition 00129 ); 00130 00136 AK_EXTERNAPIFUNC( AKRESULT, GetListenerSpatialization )( 00137 AkUInt32 in_uIndex, 00138 bool& out_rbSpatialized, 00139 AK::SpeakerVolumes::VectorPtr & out_pVolumeOffsets, 00140 AkChannelConfig &out_channelConfig 00141 ); 00142 00144 00145 00148 00149 00158 enum RTPCValue_type 00159 { 00160 RTPCValue_Default, 00161 RTPCValue_Global, 00162 RTPCValue_GameObject, 00163 RTPCValue_PlayingID, 00164 RTPCValue_Unavailable 00165 }; 00166 00180 AK_EXTERNAPIFUNC(AKRESULT, GetRTPCValue)( 00181 AkRtpcID in_rtpcID, 00182 AkGameObjectID in_gameObjectID, 00183 AkPlayingID in_playingID, 00184 AkRtpcValue& out_rValue, 00185 RTPCValue_type& io_rValueType 00186 ); 00187 00188 #ifdef AK_SUPPORT_WCHAR 00189 00203 AK_EXTERNAPIFUNC(AKRESULT, GetRTPCValue)( 00204 const wchar_t* in_pszRtpcName, 00205 AkGameObjectID in_gameObjectID, 00206 AkPlayingID in_playingID, 00207 AkRtpcValue& out_rValue, 00208 RTPCValue_type& io_rValueType 00209 ); 00210 00211 #endif //AK_SUPPORT_WCHAR 00212 00226 AK_EXTERNAPIFUNC(AKRESULT, GetRTPCValue)( 00227 const char* in_pszRtpcName, 00228 AkGameObjectID in_gameObjectID, 00229 AkPlayingID in_playingID, 00230 AkRtpcValue& out_rValue, 00231 RTPCValue_type& io_rValueType 00232 ); 00233 00238 AK_EXTERNAPIFUNC( AKRESULT, GetSwitch )( 00239 AkSwitchGroupID in_switchGroup, 00240 AkGameObjectID in_gameObjectID, 00241 AkSwitchStateID& out_rSwitchState 00242 ); 00243 00244 #ifdef AK_SUPPORT_WCHAR 00245 00246 00247 00248 00249 AK_EXTERNAPIFUNC( AKRESULT, GetSwitch )( 00250 const wchar_t* in_pstrSwitchGroupName, 00251 AkGameObjectID in_GameObj, 00252 AkSwitchStateID& out_rSwitchState 00253 ); 00254 #endif //AK_SUPPORT_WCHAR 00255 00260 AK_EXTERNAPIFUNC( AKRESULT, GetSwitch )( 00261 const char* in_pstrSwitchGroupName, 00262 AkGameObjectID in_GameObj, 00263 AkSwitchStateID& out_rSwitchState 00264 ); 00265 00270 AK_EXTERNAPIFUNC( AKRESULT, GetState )( 00271 AkStateGroupID in_stateGroup, 00272 AkStateID& out_rState 00273 ); 00274 00275 #ifdef AK_SUPPORT_WCHAR 00276 00277 00278 00279 00280 AK_EXTERNAPIFUNC( AKRESULT, GetState )( 00281 const wchar_t* in_pstrStateGroupName, 00282 AkStateID& out_rState 00283 ); 00284 #endif //AK_SUPPORT_WCHAR 00285 00290 AK_EXTERNAPIFUNC( AKRESULT, GetState )( 00291 const char* in_pstrStateGroupName, 00292 AkStateID& out_rState 00293 ); 00294 00296 00299 00300 00311 AK_EXTERNAPIFUNC( AKRESULT, GetGameObjectAuxSendValues )( 00312 AkGameObjectID in_gameObjectID, 00313 AkAuxSendValue* out_paAuxSendValues, 00314 00315 00316 AkUInt32& io_ruNumSendValues 00317 00318 ); 00319 00329 AK_EXTERNAPIFUNC( AKRESULT, GetGameObjectDryLevelValue )( 00330 AkGameObjectID in_gameObjectID, 00331 AkReal32& out_rfControlValue 00332 00333 ); 00334 00340 AK_EXTERNAPIFUNC( AKRESULT, GetObjectObstructionAndOcclusion )( 00341 AkGameObjectID in_ObjectID, 00342 AkUInt32 in_uListener, 00343 AkReal32& out_rfObstructionLevel, 00344 AkReal32& out_rfOcclusionLevel 00345 ); 00346 00348 00355 AK_EXTERNAPIFUNC( AKRESULT, QueryAudioObjectIDs )( 00356 AkUniqueID in_eventID, 00357 AkUInt32& io_ruNumItems, 00358 AkObjectInfo* out_aObjectInfos 00359 ); 00360 00361 #ifdef AK_SUPPORT_WCHAR 00362 00363 00364 00365 00366 00367 00368 AK_EXTERNAPIFUNC( AKRESULT, QueryAudioObjectIDs )( 00369 const wchar_t* in_pszEventName, 00370 AkUInt32& io_ruNumItems, 00371 AkObjectInfo* out_aObjectInfos 00372 ); 00373 #endif //AK_SUPPORT_WCHAR 00374 00381 AK_EXTERNAPIFUNC( AKRESULT, QueryAudioObjectIDs )( 00382 const char* in_pszEventName, 00383 AkUInt32& io_ruNumItems, 00384 AkObjectInfo* out_aObjectInfos 00385 ); 00386 00389 AK_EXTERNAPIFUNC( AKRESULT, GetPositioningInfo )( 00390 AkUniqueID in_ObjectID, 00391 AkPositioningInfo& out_rPositioningInfo 00392 ); 00393 00400 typedef AkArray<AkGameObjectID, AkGameObjectID, ArrayPoolDefault, 32> AkGameObjectsList; 00401 00408 AK_EXTERNAPIFUNC( AKRESULT, GetActiveGameObjects )( 00409 AkGameObjectsList& io_GameObjectList 00410 ); 00411 00414 AK_EXTERNAPIFUNC( bool, GetIsGameObjectActive )( 00415 AkGameObjectID in_GameObjId 00416 ); 00417 00421 struct GameObjDst 00422 { 00424 GameObjDst() 00425 : m_gameObjID( AK_INVALID_GAME_OBJECT ) 00426 , m_dst( -1.0f ) 00427 {} 00428 00430 GameObjDst( AkGameObjectID in_gameObjID, AkReal32 in_dst ) 00431 : m_gameObjID( in_gameObjID ) 00432 , m_dst( in_dst ) 00433 {} 00434 00435 AkGameObjectID m_gameObjID; 00436 AkReal32 m_dst; 00437 }; 00438 00442 typedef AkArray<GameObjDst, const GameObjDst&, ArrayPoolDefault, 32> AkRadiusList; 00443 00480 AK_EXTERNAPIFUNC( AKRESULT, GetMaxRadius )( 00481 AkRadiusList & io_RadiusList 00482 ); 00483 00504 AK_EXTERNAPIFUNC( AkReal32, GetMaxRadius )( 00505 AkGameObjectID in_GameObjId 00506 ); 00507 00512 AK_EXTERNAPIFUNC( AkUniqueID, GetEventIDFromPlayingID )( 00513 AkPlayingID in_playingID 00514 ); 00515 00520 AK_EXTERNAPIFUNC( AkGameObjectID, GetGameObjectFromPlayingID )( 00521 AkPlayingID in_playingID 00522 ); 00523 00530 AK_EXTERNAPIFUNC( AKRESULT, GetPlayingIDsFromGameObject )( 00531 AkGameObjectID in_GameObjId, 00532 AkUInt32& io_ruNumIDs, 00533 AkPlayingID* out_aPlayingIDs 00534 ); 00535 00537 AK_EXTERNAPIFUNC( AKRESULT, GetCustomPropertyValue )( 00538 AkUniqueID in_ObjectID, 00539 AkUInt32 in_uPropID, 00540 AkInt32& out_iValue 00541 ); 00542 00544 AK_EXTERNAPIFUNC( AKRESULT, GetCustomPropertyValue )( 00545 AkUniqueID in_ObjectID, 00546 AkUInt32 in_uPropID, 00547 AkReal32& out_fValue 00548 ); 00549 00550 } //namespace Query 00551 } //namespace SoundEngine 00552 } //namespace AK 00553 00554 #endif // _AK_QUERYPARAMS_H_