#define MA_SOUND_FLAG_NO_PITCH 0x00000020 /* Disable pitch shifting with ma_sound_set_pitch() and ma_sound_group_set_pitch(). This is an optimization. */
ma_uint32channels;/* Only used when the type is set to ma_engine_node_type_sound. */
ma_bool8isPitchDisabled;/* Pitching can be explicitly disable with MA_SOUND_FLAG_NO_PITCH to optimize processing. */
ma_bool8isSpatializationDisabled;/* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */
ma_uint8pinnedListenerIndex;/* The index of the listener this node should always use for spatialization. If set to (ma_uint8)-1 the engine will use the closest listener. */
floatoldDopplerPitch;/* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */
ma_bool8isPitchDisabled;/* When set to true, pitching will be disabled which will allow the resampler to be bypassed to save some computation. */
ma_bool8isSpatializationDisabled;/* Set to false by default. When set to false, will not have spatialisation applied. */
ma_uint8pinnedListenerIndex;/* The index of the listener this node should always use for spatialization. If set to (ma_uint8)-1 the engine will use the closest listener. */
MA_APIma_resultma_engine_node_reset(ma_engine_node*pEngineNode);/* This is used when sounds are recycled from ma_engine_play_sound(). */
structma_sound
...
...
@@ -1693,6 +1697,7 @@ typedef struct
ma_resource_manager*pResourceManager;/* Can be null in which case a resource manager will be created for you. */
ma_context*pContext;
ma_device*pDevice;/* If set, the caller is responsible for calling ma_engine_data_callback() in the device's data callback. */
ma_uint32listenerCount;/* Must be between 1 and MA_ENGINE_MAX_LISTENERS. */
ma_uint32channels;/* The number of channels to use when mixing and spatializing. When set to 0, will use the native channel count of the device. */
ma_uint32sampleRate;/* The sample rate. When set to 0 will use the native channel count of the device. */
ma_uint32periodSizeInFrames;/* If set to something other than 0, updates will always be exactly this size. The underlying device may be a different size, but from the perspective of the mixer that won't matter.*/
...
...
@@ -1711,7 +1716,8 @@ struct ma_engine
ma_node_graphnodeGraph;/* An engine is a node graph. It should be able to be plugged into any ma_node_graph API (with a cast) which means this must be the first member of this struct. */
ma_resource_manager*pResourceManager;
ma_device*pDevice;/* Optionally set via the config, otherwise allocated by the engine in ma_engine_init(). */
ma_spatializer_listenerlistener;/* TODO: Add support for multiple listeners. */