Files
2025-09-18 17:55:52 -04:00

75 lines
1.8 KiB
C

#ifndef _FMODDURANGO_H
#define _FMODDURANGO_H
/*
[ENUM]
[
[DESCRIPTION]
Cores available for mapping threads onto.
[REMARKS]
[SEE_ALSO]
FMOD_DURANGO_THREADAFFINITY
]
*/
typedef enum
{
FMOD_THREAD_DEFAULT = 0, /* Use default thread assignment. */
FMOD_THREAD_CORE0 = 1 << 0,
FMOD_THREAD_CORE1 = 1 << 1,
FMOD_THREAD_CORE2 = 1 << 2, /* Default for all threads. */
FMOD_THREAD_CORE3 = 1 << 3,
FMOD_THREAD_CORE4 = 1 << 4,
FMOD_THREAD_CORE5 = 1 << 5,
FMOD_THREAD_CORE6 = 1 << 6,
} FMOD_THREAD;
/*
[STRUCTURE]
[
[DESCRIPTION]
Mapping of cores to threads.
[REMARKS]
[SEE_ALSO]
FMOD_THREAD
FMOD_Durango_SetThreadAffinity
]
*/
typedef struct FMOD_DURANGO_THREADAFFINITY
{
unsigned int mixer; /* Software mixer thread. */
unsigned int feeder; /* Audio hardware feeder (including mmdevapi.dll) thread. */
unsigned int stream; /* Stream thread. */
unsigned int nonblocking; /* Asynchronous sound loading thread. */
unsigned int file; /* File thread. */
unsigned int geometry; /* Geometry processing thread. */
unsigned int acp; /* ACP update thread. */
unsigned int studioUpdate; /* Studio update thread. */
unsigned int studioLoad; /* Studio loading thread. */
} FMOD_DURANGO_THREADAFFINITY;
/*
[API]
[
[DESCRIPTION]
Control which core particular FMOD threads are created on.
[PARAMETERS]
'affinity' Pointer to a structure that describes the affinity for each thread.
[REMARKS]
Call before System::init or affinity values will not apply.
[SEE_ALSO]
FMOD_DURANGO_THREADAFFINITY
]
*/
extern "C" FMOD_RESULT F_API FMOD_Durango_SetThreadAffinity(FMOD_DURANGO_THREADAFFINITY *affinity);
#endif /* _FMODDURANGO_H */