123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- #ifndef _AK_SOUNDENGINE_AKDYNAMICSEQUENCE_H
- #define _AK_SOUNDENGINE_AKDYNAMICSEQUENCE_H
- #include <AK/SoundEngine/Common/AkSoundEngine.h>
- #include <AK/Tools/Common/AkArray.h>
- class AkExternalSourceArray;
- namespace AK
- {
- namespace SoundEngine
- {
-
-
- namespace DynamicSequence
- {
-
-
-
-
-
- class PlaylistItem
- {
- public:
- PlaylistItem();
- PlaylistItem(const PlaylistItem& in_rCopy);
- ~PlaylistItem();
- PlaylistItem& operator=(const PlaylistItem& in_rCopy);
- bool operator==(const PlaylistItem& in_rCopy)
- {
- AKASSERT(pExternalSrcs == NULL);
- return audioNodeID == in_rCopy.audioNodeID &&
- msDelay == in_rCopy.msDelay &&
- pCustomInfo == in_rCopy.pCustomInfo;
- };
-
-
-
- AKRESULT SetExternalSources(AkUInt32 in_nExternalSrc, AkExternalSourceInfo* in_pExternalSrc);
-
- AkExternalSourceArray* GetExternalSources(){return pExternalSrcs;}
- AkUniqueID audioNodeID;
- AkTimeMs msDelay;
- void * pCustomInfo;
- private:
- AkExternalSourceArray *pExternalSrcs;
- };
-
-
-
-
- class Playlist
- : public AkArray<PlaylistItem, const PlaylistItem&>
- {
- public:
-
-
- AkForceInline AKRESULT Enqueue(
- AkUniqueID in_audioNodeID,
- AkTimeMs in_msDelay = 0,
- void * in_pCustomInfo = NULL,
- AkUInt32 in_cExternals = 0,
- AkExternalSourceInfo *in_pExternalSources = NULL
- )
- {
- PlaylistItem * pItem = AddLast();
- if ( !pItem )
- return AK_InsufficientMemory;
- pItem->audioNodeID = in_audioNodeID;
- pItem->msDelay = in_msDelay;
- pItem->pCustomInfo = in_pCustomInfo;
- return pItem->SetExternalSources(in_cExternals, in_pExternalSources);
- }
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- enum DynamicSequenceType
- {
- DynamicSequenceType_SampleAccurate,
- DynamicSequenceType_NormalTransition
- };
-
-
-
-
-
- AK_EXTERNAPIFUNC( AkPlayingID, Open )(
- AkGameObjectID in_gameObjectID,
- AkUInt32 in_uFlags = 0,
- AkCallbackFunc in_pfnCallback = NULL,
- void* in_pCookie = NULL,
- DynamicSequenceType in_eDynamicSequenceType = DynamicSequenceType_SampleAccurate
- );
-
-
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Close )(
- AkPlayingID in_playingID
- );
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Play )(
- AkPlayingID in_playingID,
- AkTimeMs in_uTransitionDuration = 0,
- AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear
- );
-
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Pause )(
- AkPlayingID in_playingID,
- AkTimeMs in_uTransitionDuration = 0,
- AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear
- );
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Resume )(
- AkPlayingID in_playingID,
- AkTimeMs in_uTransitionDuration = 0,
- AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear
- );
-
-
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Stop )(
- AkPlayingID in_playingID,
- AkTimeMs in_uTransitionDuration = 0,
- AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear
- );
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Break )(
- AkPlayingID in_playingID
- );
-
-
-
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, Seek )(
- AkPlayingID in_playingID,
- AkTimeMs in_iPosition,
- bool in_bSeekToNearestMarker
- );
-
-
-
-
-
-
-
- AK_EXTERNAPIFUNC(AKRESULT, Seek)(
- AkPlayingID in_playingID,
- AkReal32 in_fPercent,
- bool in_bSeekToNearestMarker
- );
-
-
-
-
- AK_EXTERNAPIFUNC(AKRESULT, GetPauseTimes)(
- AkPlayingID in_playingID,
- AkUInt32 &out_uTime,
- AkUInt32 &out_uDuration
- );
-
-
-
-
-
- AK_EXTERNAPIFUNC(AKRESULT, GetPlayingItem)(
- AkPlayingID in_playingID,
- AkUniqueID & out_audioNodeID,
- void *& out_pCustomInfo
- );
-
-
-
-
- AK_EXTERNAPIFUNC( Playlist *, LockPlaylist )(
- AkPlayingID in_playingID
- );
-
-
-
-
-
-
- AK_EXTERNAPIFUNC( AKRESULT, UnlockPlaylist )(
- AkPlayingID in_playingID
- );
- }
- }
- }
- #endif
|