31Â
#ifndef _IAK_STREAM_MGR_H_
32Â
#define _IAK_STREAM_MGR_H_
34Â
#include <AK/SoundEngine/Common/AkMemoryMgr.h>
42Â
#define AK_MONITOR_STREAMNAME_MAXLENGTH (64)
43Â
#define AK_MONITOR_DEVICENAME_MAXLENGTH (16)
53Â AK_StmStatusIdle = 0,
54Â AK_StmStatusCompleted = 1,
55Â AK_StmStatusPending = 2,
56Â AK_StmStatusCancelled = 3,
57Â AK_StmStatusError = 4
75Â AK_OpenModeWrite = 1,
76Â AK_OpenModeWriteOvrwr = 2,
77Â AK_OpenModeReadWrite = 3
86Â
AkFileSystemFlags( AkUInt32 in_uCompanyID, AkUInt32 in_uCodecID, AkUInt32 in_uCustomParamSize,
void * in_pCustomParam,
bool in_bIsLanguageSpecific, AkFileID in_uCacheID )
305Â AkUInt32 in_uStreamIndex
341Â AkUInt32 in_uDeviceIndex
381Â
const AkOSChar * in_pszStreamName
404Â AkUInt32 in_uReqSize,
406Â AkPriority in_priority,
407Â AkReal32 in_fDeadline,
408Â AkUInt32 & out_uSize
419Â AkUInt32 in_uReqSize,
421Â AkPriority in_priority,
422Â AkReal32 in_fDeadline,
423Â AkUInt32 & out_uSize
432Â
bool * out_pbEndOfStream
442Â AkInt64 in_iMoveOffset,
443Â AkMoveMethod in_eMoveMethod,
444Â AkInt64 * out_piRealOffset
464Â AkUInt32 & out_uSize
529Â AkUInt32 in_uMinBufferSize
541Â AkUInt32 in_uMinTargetBufferSize
548Â
const AkOSChar * in_pszStreamName
570Â AkUInt32 & out_uNumBytesAvailable
605Â
bool * out_pbEndOfStream
616Â AkInt64 in_iMoveOffset,
617Â AkMoveMethod in_eMoveMethod,
618Â AkInt64 * out_piRealOffset
641Â
void *& out_pBuffer,
642Â AkUInt32 & out_uSize,
702Â
const AkOSChar* in_pszFileName,
704Â AkOpenMode in_eOpenMode,
717Â AkOpenMode in_eOpenMode,
732Â
const AkOSChar* in_pszFileName,
769Â AkPriority in_uPriority
783Â AkPriority in_uPriority
796Â AkPriority in_uPriority,
797Â AkPriority in_uOldPriority
805Â AkReal32& out_fPercentBuffered,
806Â
bool& out_bCacheFull
819Â
#endif //_IAK_STREAM_MGR_H_
AkUInt32 uNumBytesPrefetch
bool bIsOpen
True when the file is open (implementations may defer file opening)
AkUInt32 uCachePinnedBytes
Number of bytes that can be pinned into cache.
AkUInt32 uLoopStart
Set to the start of loop (byte offset from the beginning of the stream) for streams that loop,...
static IAkStreamMgr * Get()
AkUInt32 uBufferedSize
Size of available data (specific to IAkAutoStream)
virtual void * GetData(AkUInt32 &out_uSize)=0
virtual IAkStreamMgrProfile * GetStreamMgrProfile()=0
AkDeviceID deviceID
Device ID.
AkUInt64 uFileSize
File size.
virtual AKRESULT SetMinimalBufferSize(AkUInt32 in_uMinBufferSize)=0
virtual AkUInt64 GetPosition(bool *out_pbEndOfStream)=0
bool bCanRead
Specifies whether or not the device is readable.
Automatic streams buffer settings/constraints.
AkUInt32 uPriority
Stream priority.
virtual void * GetFileDescriptor()=0
virtual IAkDeviceProfile * GetDeviceProfile(AkUInt32 in_uDeviceIndex)=0
AkUInt32 uVirtualBufferingSize
Size of available data including requested data (specific to IAkAutoStream)
virtual AKRESULT ReleaseBuffer()=0
AkUInt32 uLoopEnd
Set to the end of loop (byte offset from the beginning of the stream) for streams that loop,...
AkUInt32 uPeakRefdMemUsed
Memory peak since monitoring started.
virtual ~IAkStreamMgr()
Virtual destructor on interface to avoid warnings.
virtual void GetInfo(AkStreamInfo &out_info)=0
virtual AkUInt32 GetBlockSize()=0
virtual AKRESULT SetPosition(AkInt64 in_iMoveOffset, AkMoveMethod in_eMoveMethod, AkInt64 *out_piRealOffset)=0
virtual AkUInt32 GetNumStreams()=0
AkUInt32 uNumBytesTransferedLowLevel
Transfered amount (from low-level IO only) since last query (Accumulate/Reset)
virtual void GetStreamData(AkStreamData &out_streamData)=0
AkUInt32 uBlockSize
Hard user constraint: When non-zero, buffer size will be a multiple of that number,...
virtual AKRESULT Stop()=0
bool bIsAutoStream
True for auto streams.
AkUInt32 uLowLevelBytesTransferred
Number of bytes transferred exclusively via low-level.
virtual void OnProfileEnd()=0
Notify device when monitor sampling ends.
virtual AKRESULT SetMinTargetBufferSize(AkUInt32 in_uMinTargetBufferSize)=0
virtual AkUInt32 GetNominalBuffering()=0
virtual AkUInt32 GetBlockSize()=0
virtual AkStmStatus GetStatus()=0
virtual AKRESULT Read(void *in_pBuffer, AkUInt32 in_uReqSize, bool in_bWait, AkPriority in_priority, AkReal32 in_fDeadline, AkUInt32 &out_uSize)=0
virtual AKRESULT CreateAuto(AkFileID in_fileID, AkFileSystemFlags *in_pFSFlags, const AkAutoStmHeuristics &in_heuristics, AkAutoStmBufSettings *in_pBufferSettings, IAkAutoStream *&out_pStream, bool in_bSyncOpen)=0
AkUInt32 uStreamID
Unique stream identifier.
virtual void OnProfileStart()=0
Notify device when monitor sampling starts.
AkUInt32 uCompanyID
Company ID (Wwise uses AKCOMPANYID_AUDIOKINETIC, defined in AkTypes.h, for soundbanks and standard st...
AkUInt32 uStringSize
Device name string's size (number of characters)
virtual AKRESULT SetStreamName(const AkOSChar *in_pszStreamName)=0
virtual void GetData(AkDeviceData &out_deviceData)=0
virtual void ClearNew()=0
virtual ~IAkStreamMgrProfile()
Virtual destructor on interface to avoid warnings.
virtual void StopMonitoring()=0
virtual AKRESULT SetHeuristics(const AkAutoStmHeuristics &in_heuristics)=0
AkUInt32 uTargetBufferingSize
Total stream buffer size (specific to IAkAutoStream)
AkReal32 fThroughput
Average throughput in bytes/ms.
virtual AKRESULT SetPosition(AkInt64 in_iMoveOffset, AkMoveMethod in_eMoveMethod, AkInt64 *out_piRealOffset)=0
virtual AKRESULT SetStreamName(const AkOSChar *in_pszStreamName)=0
AkUInt32 uGranularity
IO memory pool block size.
AkUInt32 uFrees
Cumulative number of deallocations.
AkUInt32 uNumLowLevelRequestsCancelled
Number of low-level transfers that were cancelled in the previous monitoring frame.
bool bIsLanguageSpecific
True when the file location depends on language.
virtual AKRESULT CreateAuto(const AkOSChar *in_pszFileName, AkFileSystemFlags *in_pFSFlags, const AkAutoStmHeuristics &in_heuristics, AkAutoStmBufSettings *in_pBufferSettings, IAkAutoStream *&out_pStream, bool in_bSyncOpen)=0
AkUInt32 uCustomParamSize
File descriptor's uCustomParamSize.
bool bActive
True if this stream has been active (that is, was ready for I/O or had at least one pending I/O trans...
AkUInt32 uMemUsed
IO memory pool used.
AkUInt32 uStreamID
Unique stream identifier.
virtual ~IAkDeviceProfile()
Virtual destructor on interface to avoid warnings.
Stream general information.
virtual AKRESULT StartMonitoring()=0
AkDeviceID deviceID
Device ID.
AkUInt32 uNumActiveStreams
Number of streams that have been active in the previous frame.
AkUInt32 uCustomParam
File descriptor's pCustomParam (on 32 bits)
virtual AKRESULT QueryBufferingStatus(AkUInt32 &out_uNumBytesAvailable)=0
const AkOSChar * pszName
User-defined stream name (specified through AK::IAkStdStream::SetStreamName() or AK::IAkAutoStream::S...
AkUInt32 uCustomParam
Custom number queried from low-level IO.
virtual ~IAkStdStream()
Virtual destructor on interface to avoid warnings.
AkUInt32 uTotalBytesTransferred
Number of bytes transferred, including cached transfers.
virtual void GetInfo(AkStreamInfo &out_info)=0
virtual AKRESULT PinFileInCache(AkFileID in_fileID, AkFileSystemFlags *in_pFSFlags, AkPriority in_uPriority)=0
AkUInt32 uUnreferencedCachedBytes
IO memory that is cached but is not currently used for active streams.
virtual AKRESULT CreateStd(const AkOSChar *in_pszFileName, AkFileSystemFlags *in_pFSFlags, AkOpenMode in_eOpenMode, IAkStdStream *&out_pStream, bool in_bSyncOpen)=0
AkFileSystemFlags(AkUInt32 in_uCompanyID, AkUInt32 in_uCodecID, AkUInt32 in_uCustomParamSize, void *in_pCustomParam, bool in_bIsLanguageSpecific, AkFileID in_uCacheID)
AkDeviceID deviceID
Device ID.
virtual IAkStreamProfile * GetStreamProfile(AkUInt32 in_uStreamIndex)=0
virtual AKRESULT GetBuffer(void *&out_pBuffer, AkUInt32 &out_uSize, bool in_bWait)=0
AkReal32 fEstimatedThroughput
Estimated throughput heuristic.
virtual void GetHeuristics(AkAutoStmHeuristics &out_heuristics)=0
AkUInt32 uAllocs
Cumulative number of allocations.
virtual AKRESULT CreateStd(AkFileID in_fileID, AkFileSystemFlags *in_pFSFlags, AkOpenMode in_eOpenMode, IAkStdStream *&out_pStream, bool in_bSyncOpen)=0
File system flags for file descriptors mapping.
AkUInt32 uMemSize
IO memory pool size.
AkUInt32 uNumLowLevelRequestsPending
Number of low-level transfers that are currently pending.
AkUInt32 uNumBytesTransfered
Transfered amount since last query (Accumulate/Reset)
virtual void GetDesc(AkDeviceDesc &out_deviceDesc)=0
bool bCanWrite
Specifies whether or not the device is writable.
AkUInt32 uNumLowLevelRequestsCompleted
Number of low-level transfers that have completed in the previous monitoring frame.
AkUInt64 uSize
Total stream/file size in bytes.
virtual ~IAkAutoStream()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT Start()=0
AkReal32 fAvgCacheEfficiency
Total bytes from cache as a percentage of total bytes.
AkDeviceID deviceID
Device ID.
virtual ~IAkStreamProfile()
Virtual destructor on interface to avoid warnings.
AkUtf16 szStreamName[AK_MONITOR_STREAMNAME_MAXLENGTH]
Stream name.
AkUInt32 uStringSize
Stream name string's size (number of characters)
virtual AkUInt32 GetNumDevices()=0
AkUInt32 uCustomParamSize
Size of the custom parameter.
AkPriority priority
The stream priority. it should be between AK_MIN_PRIORITY and AK_MAX_PRIORITY (included).
AkUInt32 uMemoryReferenced
Amount of streaming memory referenced by this stream.
virtual AKRESULT Write(void *in_pBuffer, AkUInt32 in_uReqSize, bool in_bWait, AkPriority in_priority, AkReal32 in_fDeadline, AkUInt32 &out_uSize)=0
Automatic streams heuristics.
virtual AKRESULT UnpinFileInCache(AkFileID in_fileID, AkPriority in_uPriority)=0
bool bIsCachingStream
True for caching streams.
static IAkStreamMgr * m_pStreamMgr
virtual void GetStreamRecord(AkStreamRecord &out_streamRecord)=0
AkUtf16 szDeviceName[AK_MONITOR_DEVICENAME_MAXLENGTH]
Device name.
virtual AKRESULT GetBufferStatusForPinnedFile(AkFileID in_fileID, AkReal32 &out_fPercentBuffered, bool &out_bCacheFull)=0
virtual AKRESULT UpdateCachingPriority(AkFileID in_fileID, AkPriority in_uPriority, AkPriority in_uOldPriority)=0
virtual void * GetFileDescriptor()=0
AkUInt64 uFilePosition
Current position.
virtual AkUInt64 GetPosition(bool *out_pbEndOfStream)=0
virtual void ClearNew()=0
AkUInt32 uCodecID
File/codec type ID (defined in AkTypes.h)
void * pCustomParam
Custom parameter.
Tell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise