00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00010 00011 #ifndef _AK_SOUNDFRAME_SF_H 00012 #define _AK_SOUNDFRAME_SF_H 00013 00014 #include <wtypes.h> 00015 00016 #include "SFObjects.h" 00017 #include <AK/SoundEngine/Common/AkTypes.h> 00018 #include <AK/SoundEngine/Common/AkSoundEngine.h> 00019 00020 struct IDataObject; // OLE data object interface 00021 00025 #define MAX_MONITORING_MSG_SIZE 256 00026 00027 namespace AK 00028 { 00030 namespace SoundFrame 00031 { 00036 class ISoundFrame : public ISFRefCount 00037 { 00038 public: 00045 virtual bool Connect( 00046 DWORD in_dwProcessID = 0 00047 ) = 0; 00048 00051 virtual bool IsConnected() const = 0; 00052 00055 00056 00057 00066 virtual const WCHAR * GetCurrentProjectName() const = 0; 00067 00076 virtual GUID GetCurrentProjectID() const = 0; 00077 00086 virtual const WCHAR * GetCurrentProjectOriginalRoot() const = 0; 00087 00089 00092 00093 00107 virtual bool PlayEvents( 00108 const AkUniqueID * in_pEvents, 00109 long in_cEvents, 00110 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00111 ) = 0; 00112 00126 virtual bool PlayEvents( 00127 LPCWSTR * in_pszEvents, 00128 long in_cEvents, 00129 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00130 ) = 0; 00131 00137 virtual bool ExecuteActionOnEvent( 00138 AkUniqueID in_eventID, 00139 AK::SoundEngine::AkActionOnEventType in_ActionType, 00140 AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT, 00141 AkTimeMs in_uTransitionDuration = 0, 00142 AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear 00143 ) = 0; 00144 00149 virtual bool SeekOnEvent( 00150 AkUniqueID in_eventID, 00151 AkGameObjectID in_gameObjectID, 00152 AkTimeMs in_iPosition, 00153 bool in_bSeekToNearestMarker = false, 00154 AkPlayingID in_PlayingID = AK_INVALID_PLAYING_ID 00155 ) = 0; 00156 00161 virtual bool SeekOnEvent( 00162 AkUniqueID in_eventID, 00163 AkGameObjectID in_gameObjectID, 00164 AkReal32 in_fPercent, 00165 bool in_bSeekToNearestMarker = false, 00166 AkPlayingID in_PlayingID = AK_INVALID_PLAYING_ID 00167 ) = 0; 00168 00179 virtual bool SetPlayBackMode( 00180 bool in_bPlayback 00181 ) const = 0; 00182 00185 virtual bool GetCurrentState( 00186 AkStateGroupID in_stateGroupID, 00187 IState** out_ppCurrentState 00188 ) const = 0; 00189 00192 virtual bool GetCurrentState( 00193 LPCWSTR in_szStateGroupName, 00194 IState** out_ppCurrentState 00195 ) const = 0; 00196 00202 virtual bool SetCurrentState( 00203 AkStateGroupID in_stateGroupID, 00204 AkStateID in_currentStateID 00205 ) = 0; 00206 00212 virtual bool SetCurrentState( 00213 LPCWSTR in_szStateGroupName, 00214 LPCWSTR in_szCurrentStateName 00215 ) = 0; 00216 00219 virtual bool GetCurrentSwitch( 00220 AkSwitchGroupID in_switchGroupID, 00221 ISwitch** out_ppCurrentSwitch, 00222 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00223 ) const = 0; 00224 00227 virtual bool GetCurrentSwitch( 00228 LPCWSTR in_szSwitchGroupName, 00229 ISwitch** out_ppCurrentSwitch, 00230 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00231 ) const = 0; 00232 00238 virtual bool SetCurrentSwitch( 00239 AkSwitchGroupID in_switchGroupID, 00240 AkSwitchStateID in_currentSwitchID, 00241 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00242 ) = 0; 00243 00249 virtual bool SetCurrentSwitch( 00250 LPCWSTR in_szSwitchGroupName, 00251 LPCWSTR in_szCurrentSwitchName, 00252 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00253 ) = 0; 00254 00263 virtual bool RegisterGameObject( 00264 AkGameObjectID in_gameObjectID, 00265 LPCWSTR in_szGameObjectName = L"" 00266 ) = 0; 00267 00276 virtual bool UnregisterGameObject( 00277 AkGameObjectID in_gameObjectID 00278 ) = 0; 00279 00285 virtual bool SetRTPCValue( 00286 AkRtpcID in_gameParameterID, 00287 AkRtpcValue in_value, 00288 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00289 ) = 0; 00290 00297 virtual bool SetRTPCValue( 00298 LPCWSTR in_szGameParameterName, 00299 AkRtpcValue in_value, 00300 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00301 ) = 0; 00302 00309 virtual bool ResetRTPCValue( 00310 AkRtpcID in_gameParameterID, 00311 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00312 ) = 0; 00313 00320 virtual bool ResetRTPCValue( 00321 LPCWSTR in_szGameParameterName, 00322 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00323 ) = 0; 00324 00330 virtual bool PostTrigger( 00331 AkTriggerID in_triggerID, 00332 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00333 ) = 0; 00334 00340 virtual bool PostTrigger( 00341 LPCWSTR in_szTriggerName, 00342 AkGameObjectID in_gameObjectID = IGameObject::s_WwiseGameObject 00343 ) = 0; 00344 00350 virtual bool SetActiveListeners( 00351 AkGameObjectID in_gameObjectID, 00352 AkUInt32 in_uiListenerMask 00353 ) = 0; 00354 00361 virtual bool SetAttenuationScalingFactor( 00362 AkGameObjectID in_GameObjectID, 00363 AkReal32 in_fAttenuationScalingFactor 00364 ) = 0; 00365 00371 virtual bool SetPosition( 00372 AkGameObjectID in_gameObjectID, 00373 const AkSoundPosition& in_rPosition 00374 ) = 0; 00375 00381 virtual bool SetListenerPosition( 00382 const AkListenerPosition& in_rPosition, 00383 AkUInt32 in_uiIndex = 0 00384 ) = 0; 00385 00392 virtual bool SetMultiplePositions( 00393 AkGameObjectID in_GameObjectID, 00394 const AkSoundPosition * in_pPositions, 00395 AkUInt16 in_NumPositions, 00396 AK::SoundEngine::MultiPositionType in_eMultiPositionType = AK::SoundEngine::MultiPositionType_MultiDirections 00397 ) = 0; 00398 00404 virtual bool SetListenerScalingFactor( 00405 AkUInt32 in_uiIndex, 00406 AkReal32 in_fAttenuationScalingFactor 00407 ) = 0; 00408 00415 virtual bool SetListenerSpatialization( 00416 AkUInt32 in_uiIndex, 00417 bool in_bSpatialized, 00418 AkChannelConfig in_channelConfig, 00419 AkReal32 * in_pVolumeOffsets = NULL 00420 ) = 0; 00421 00429 virtual bool SetGameObjectAuxSendValues( 00430 AkGameObjectID in_gameObjectID, 00431 AkAuxSendValue* in_aAuxSendValues, 00432 00433 00434 AkUInt32 in_uNumSendValues 00435 00436 ) = 0; 00437 00445 virtual bool SetGameObjectOutputBusVolume( 00446 AkGameObjectID in_gameObjectID, 00447 AkReal32 in_fControlValue 00448 00449 ) = 0; 00450 00457 virtual bool SetObjectObstructionAndOcclusion( 00458 AkGameObjectID in_ObjectID, 00459 AkUInt32 in_uListener, 00460 AkReal32 in_fObstructionLevel, 00461 AkReal32 in_fOcclusionLevel 00462 ) = 0; 00463 00470 virtual bool PostMsgMonitor( 00471 LPCWSTR in_pszMessage 00472 00473 ) = 0; 00474 00477 virtual bool StopAll( 00478 AkGameObjectID in_GameObjID = AK_INVALID_GAME_OBJECT 00479 ) = 0; 00480 00484 virtual bool StopPlayingID( 00485 AkPlayingID in_playingID, 00486 AkTimeMs in_uTransitionDuration = 0, 00487 AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear 00488 ) = 0; 00489 00491 00494 00495 00498 00499 00502 virtual bool GetEventList( 00503 IEventList ** out_ppEventList 00504 ) const = 0; 00505 00508 virtual bool GetEvent( 00509 AkUniqueID in_eventID, 00510 IEvent ** out_ppEvent 00511 ) const = 0; 00512 00515 virtual bool GetEvent( 00516 LPCWSTR in_pszEvent, 00517 IEvent ** out_ppEvent 00518 ) const = 0; 00519 00522 virtual bool GetEvents( 00523 const AkUniqueID * in_pEvents, 00524 long in_cEvents, 00525 IEventList ** out_ppEventList 00526 ) const = 0; 00527 00530 virtual bool GetEvents( 00531 LPCWSTR * in_pszEvents, 00532 long in_cEvents, 00533 IEventList ** out_ppEventList 00534 ) const = 0; 00535 00537 00540 00541 00544 virtual bool GetDialogueEventList( 00545 IDialogueEventList ** out_ppDialogueEventList 00546 ) const = 0; 00547 00550 virtual bool GetDialogueEvent( 00551 AkUniqueID in_dialogueEventID, 00552 IDialogueEvent ** out_ppDialogueEvent 00553 ) const = 0; 00554 00557 virtual bool GetDialogueEvent( 00558 LPCWSTR in_pszDialogueEvent, 00559 IDialogueEvent ** out_ppDialogueEvent 00560 ) const = 0; 00561 00564 virtual bool GetDialogueEvents( 00565 const AkUniqueID * in_pDialogueEvents, 00566 long in_cDialogueEvents, 00567 IDialogueEventList ** out_ppDialogueEventList 00568 ) const = 0; 00569 00572 virtual bool GetDialogueEvents( 00573 LPCWSTR * in_pszDialogueEvents, 00574 long in_cDialogueEvents, 00575 IDialogueEventList ** out_ppDialogueEventList 00576 ) const = 0; 00577 00579 00582 00583 00586 virtual bool GetSoundObject( 00587 AkUniqueID in_soundObjectID, 00588 ISoundObject ** out_ppSoundObject 00589 ) const = 0; 00590 00593 virtual bool GetSoundObjects( 00594 const AkUniqueID * in_pSoundObjects, 00595 long in_cSoundObjects, 00596 ISoundObjectList ** out_ppSoundObjectList 00597 ) const = 0; 00598 00600 00603 00604 00607 virtual bool GetStateGroupList( 00608 IStateGroupList ** out_ppStateGroupList 00609 ) const = 0; 00610 00613 virtual bool GetStateGroup( 00614 AkUniqueID in_stateGroupID, 00615 IStateGroup ** out_ppStateGroup 00616 ) const = 0; 00617 00620 virtual bool GetStateGroup( 00621 LPCWSTR in_pszStateGroup, 00622 IStateGroup ** out_ppStateGroup 00623 ) const = 0; 00624 00627 virtual bool GetStateGroups( 00628 const AkUniqueID * in_pStateGroups, 00629 long in_cStateGroups, 00630 IStateGroupList ** out_ppStateGroupList 00631 ) const = 0; 00632 00635 virtual bool GetStateGroups( 00636 LPCWSTR * in_pszStateGroups, 00637 long in_cStateGroups, 00638 IStateGroupList ** out_ppStateGroupList 00639 ) const = 0; 00640 00642 00645 00646 00649 virtual bool GetSwitchGroupList( 00650 ISwitchGroupList ** out_ppSwitchGroupList 00651 ) const = 0; 00652 00655 virtual bool GetSwitchGroup( 00656 AkUniqueID in_switchGroupID, 00657 ISwitchGroup ** out_ppSwitchGroup 00658 ) const = 0; 00659 00662 virtual bool GetSwitchGroup( 00663 LPCWSTR in_pszSwitchGroup, 00664 ISwitchGroup ** out_ppSwitchGroup 00665 ) const = 0; 00666 00669 virtual bool GetSwitchGroups( 00670 const AkUniqueID * in_pSwitchGroups, 00671 long in_cSwitchGroups, 00672 ISwitchGroupList ** out_ppSwitchGroupList 00673 ) const = 0; 00674 00677 virtual bool GetSwitchGroups( 00678 LPCWSTR * in_pszSwitchGroups, 00679 long in_cSwitchGroups, 00680 ISwitchGroupList ** out_ppSwitchGroupList 00681 ) const = 0; 00682 00684 00691 00692 00695 virtual bool GetGameParameterList( 00696 IGameParameterList ** out_ppGameParameterList 00697 ) const = 0; 00698 00701 virtual bool GetGameParameter( 00702 AkUniqueID in_gameParameterID, 00703 IGameParameter ** out_ppGameParameter 00704 ) const = 0; 00705 00708 virtual bool GetGameParameter( 00709 LPCWSTR in_pszGameParameter, 00710 IGameParameter ** out_ppGameParameter 00711 ) const = 0; 00712 00715 virtual bool GetGameParameters( 00716 const AkUniqueID * in_pGameParameters, 00717 long in_cGameParameters, 00718 IGameParameterList ** out_ppGameParameterList 00719 ) const = 0; 00720 00723 virtual bool GetGameParameters( 00724 LPCWSTR * in_pszGameParameters, 00725 long in_cGameParameters, 00726 IGameParameterList ** out_ppGameParameterList 00727 ) const = 0; 00728 00730 00733 virtual bool GetConversionSettingsList( 00734 IConversionSettingsList ** out_ppConversionSettingsList 00735 ) const = 0; 00736 00739 00740 00743 virtual bool GetTriggerList( 00744 ITriggerList ** out_ppTriggerList 00745 ) const = 0; 00746 00749 virtual bool GetTrigger( 00750 AkUniqueID in_triggerID, 00751 ITrigger ** out_ppTrigger 00752 ) const = 0; 00753 00756 virtual bool GetTrigger( 00757 LPCWSTR in_pszTrigger, 00758 ITrigger ** out_ppTrigger 00759 ) const = 0; 00760 00763 virtual bool GetTriggers( 00764 const AkUniqueID * in_pTriggers, 00765 long in_cTriggers, 00766 ITriggerList ** out_ppTriggerList 00767 ) const = 0; 00768 00771 virtual bool GetTriggers( 00772 LPCWSTR * in_pszTriggers, 00773 long in_cTriggers, 00774 ITriggerList ** out_ppTriggerList 00775 ) const = 0; 00776 00778 00787 00788 00791 virtual bool GetArgument( 00792 AkUniqueID in_ArgumentID, 00793 IArgument ** out_ppArgument 00794 ) const = 0; 00795 00798 virtual bool GetArguments( 00799 const AkUniqueID * in_pArguments, 00800 long in_cArguments, 00801 IArgumentList ** out_ppArgumentList 00802 ) const = 0; 00803 00805 00808 00809 00812 virtual bool GetAuxBusList( 00813 IAuxBusList ** out_ppAuxBusList 00814 ) const = 0; 00815 00818 virtual bool GetAuxBus( 00819 AkUniqueID in_AuxBusID, 00820 IAuxBus ** out_ppAuxBus 00821 ) const = 0; 00822 00825 virtual bool GetAuxBus( 00826 LPCWSTR in_pszAuxBus, 00827 IAuxBus ** out_ppAuxBus 00828 ) const = 0; 00829 00832 virtual bool GetAuxBus( 00833 const AkUniqueID * in_pAuxBus, 00834 long in_cAuxBus, 00835 IAuxBusList ** out_ppAuxBusList 00836 ) const = 0; 00837 00840 virtual bool GetAuxBus( 00841 LPCWSTR * in_pszAuxBus, 00842 long in_cAuxBus, 00843 IAuxBusList ** out_ppAuxBusList 00844 ) const = 0; 00845 00847 00850 00851 00854 virtual bool GetSoundBank( 00855 AkUniqueID in_SoundBankID, 00856 ISoundBank ** out_ppArgument 00857 ) const = 0; 00858 00861 virtual bool GetSoundBankList( 00862 ISoundBankList ** out_ppSoundBankList 00863 ) const = 0; 00864 00866 00869 00870 00881 virtual bool GetGameObjectList( 00882 IGameObjectList ** out_ppGameObjectList 00883 ) const = 0; 00884 00886 00889 00890 00893 virtual bool GetEventOriginalFileList( 00894 LPCWSTR in_pszEvent, 00895 IOriginalFileList ** out_ppOriginalFileList 00896 ) const = 0; 00897 00900 virtual bool GetDialogueEventOriginalFileList( 00901 LPCWSTR in_pszDialogueEvent, 00902 IOriginalFileList ** out_ppOriginalFileList 00903 ) const = 0; 00904 00906 00909 00910 00914 virtual bool EventHasVoiceContent( 00915 LPCWSTR in_pszEvent 00916 ) const = 0; 00917 00921 virtual bool DialogueEventHasVoiceContent( 00922 LPCWSTR in_pszDialogueEvent 00923 ) const = 0; 00924 00926 00928 00931 00932 00936 virtual bool ListenAttenuation( 00937 const AkUniqueID * in_pSoundObjects, 00938 long in_cSoundObjects 00939 ) = 0; 00940 00942 00945 00946 00948 enum DnDType 00949 { 00950 TypeUnknown = 0, 00951 TypeEvent = 1, 00952 TypeStates = 2, 00953 TypeSwitches = 3, 00954 TypeGameParameters = 4, 00955 TypeTriggers = 5, 00956 TypeAuxBus = 6, 00957 TypeDialogueEvent = 7, 00958 TypeSoundBank = 8 00959 }; 00960 00963 virtual DnDType GetDnDType( 00964 IDataObject * in_pDataObject 00965 ) = 0; 00966 00969 virtual bool ProcessEventDnD( 00970 IDataObject * in_pDataObject, 00971 IEventList ** out_ppEventList 00972 ) = 0; 00973 00976 virtual bool ProcessStateGroupDnD( 00977 IDataObject * in_pDataObject, 00978 IStateGroupList ** out_ppStateGroupList 00979 ) = 0; 00980 00983 virtual bool ProcessSwitchGroupDnD( 00984 IDataObject * in_pDataObject, 00985 ISwitchGroupList ** out_ppSwitchGroupList 00986 ) = 0; 00987 00990 virtual bool ProcessGameParameterDnD( 00991 IDataObject * in_pDataObject, 00992 IGameParameterList ** out_ppGameParameterList 00993 ) = 0; 00994 00997 virtual bool ProcessTriggerDnD( 00998 IDataObject * in_pDataObject, 00999 ITriggerList ** out_ppTriggerList 01000 ) = 0; 01001 01004 virtual bool ProcessAuxBusDnD( 01005 IDataObject * in_pDataObject, 01006 IAuxBusList ** out_ppAuxBusList 01007 ) = 0; 01008 01011 virtual bool ProcessDialogueEventDnD( 01012 IDataObject * in_pDataObject, 01013 IDialogueEventList ** out_ppDialogueEventList 01014 ) = 0; 01015 01018 virtual bool ProcessSoundBankDnD( 01019 IDataObject * in_pDataObject, 01020 ISoundBankList ** out_ppSoundBankList 01021 ) = 0; 01022 01024 01027 01028 01033 virtual bool ProcessDefinitionFiles( 01034 LPCWSTR * in_pszPaths, 01035 long in_cFiles 01036 ) = 0; 01037 01042 virtual bool GenerateSoundBanks( 01043 LPCWSTR * in_pszBanks, 01044 long in_cBanks, 01045 LPCWSTR * in_pszPlatforms, 01046 long in_cPlatforms, 01047 LPCWSTR * in_pszLanguages, 01048 long in_cLanguages 01049 ) = 0; 01050 01052 01057 virtual bool ConvertExternalSources( 01058 LPCWSTR * in_pszPlatforms, 01059 long in_cPlatforms, 01060 LPCWSTR * in_pszFileSourcesInput, 01061 long in_cFileSourcesInput, 01062 LPCWSTR * in_pszFileSourcesOutput, 01063 long in_cFileSourcesOutput 01064 ) = 0; 01065 01067 enum ShowLocation 01068 { 01069 ShowLocation_Editor = 1, 01070 ShowLocation_MultiEditor, 01071 ShowLocation_ListView, 01072 ShowLocation_ReferenceView, 01073 ShowLocation_SchematicView, 01074 ShowLocation_ProjectExplorer0, 01075 ShowLocation_ProjectExplorer1, 01076 ShowLocation_ProjectExplorer2, 01077 ShowLocation_ProjectExplorer3, 01078 ShowLocation_ProjectExplorer4, 01079 ShowLocation_Transport 01080 }; 01081 01084 virtual bool ShowWwiseObject( 01085 const GUID* in_pGuids, 01086 long in_cGuids, 01087 ShowLocation in_eLocation 01088 ) = 0; 01089 01091 01094 01095 01101 virtual bool GetAkUniqueID( 01102 const GUID& in_guid, 01103 AkUniqueID& out_uniqueID 01104 ) const = 0; 01105 01108 virtual bool GetWwiseObjectPath( 01109 const AK::SoundFrame::ISFObject* in_pObject, 01110 const AK::SoundFrame::ISFObject* in_pParent, 01111 LPWSTR out_szBuffer, 01112 long in_lLength 01113 ) const = 0; 01114 01116 }; 01117 01121 class IClient 01122 { 01123 public: 01125 enum Notif 01126 { 01127 Notif_Added, 01128 Notif_Removed, 01129 Notif_Changed, 01130 Notif_Reset, 01131 Notif_Push 01132 }; 01133 01135 virtual void OnConnect( 01136 bool in_bConnect 01137 ) = 0; 01138 01140 virtual void OnEventNotif( 01141 Notif in_eNotif, 01142 AkUniqueID in_eventID 01143 ) = 0; 01144 01149 virtual void OnDialogueEventNotif( 01150 Notif in_eNotif, 01151 AkUniqueID in_dialogueEventID 01152 ) = 0; 01153 01155 virtual void OnSoundObjectNotif( 01156 Notif in_eNotif, 01157 AkUniqueID in_soundObjectID 01158 ) = 0; 01159 01165 virtual void OnStatesNotif( 01166 Notif in_eNotif, 01167 AkUniqueID in_stateGroupID 01168 ) = 0; 01169 01178 virtual void OnSwitchesNotif( 01179 Notif in_eNotif, 01180 AkUniqueID in_switchGroupID 01181 ) = 0; 01182 01184 virtual void OnGameParametersNotif( 01185 Notif in_eNotif, 01186 AkUniqueID in_gameParameterID 01187 ) = 0; 01188 01190 virtual void OnTriggersNotif( 01191 Notif in_eNotif, 01192 AkUniqueID in_triggerID 01193 ) = 0; 01194 01200 virtual void OnArgumentsNotif( 01201 Notif in_eNotif, 01202 AkUniqueID in_argumentID 01203 ) = 0; 01204 01206 virtual void OnAuxBusNotif( 01207 Notif in_eNotif, 01208 AkUniqueID in_AuxBusID 01209 ) = 0; 01210 01212 virtual void OnSoundBankNotif( 01213 Notif in_eNotif, 01214 AkUniqueID in_AuxBusID 01215 ) = 0; 01216 01225 virtual void OnGameObjectsNotif( 01226 Notif in_eNotif, 01227 AkGameObjectID in_gameObjectID 01228 ) = 0; 01229 }; 01230 01233 bool Create( 01234 IClient * in_pClient, 01235 ISoundFrame ** out_ppSoundFrame 01236 ); 01237 } 01238 } 01239 01240 #endif // _AK_SOUNDFRAME_SF_H
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요