ma_uint32sampleRate;/* Only used when the type is set to ma_engine_node_type_sound. */
ma_uint32sampleRate;/* Only used when the type is set to ma_engine_node_type_sound. */
ma_uint32volumeSmoothTimeInPCMFrames;/* The number of frames to smooth over volume changes. Defaults to 0 in which case no smoothing is used. */
ma_mono_expansion_modemonoExpansionMode;
ma_mono_expansion_modemonoExpansionMode;
ma_bool8isPitchDisabled;/* Pitching can be explicitly disabled with MA_SOUND_FLAG_NO_PITCH to optimize processing. */
ma_bool8isPitchDisabled;/* Pitching can be explicitly disabled with MA_SOUND_FLAG_NO_PITCH to optimize processing. */
ma_bool8isSpatializationDisabled;/* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */
ma_bool8isSpatializationDisabled;/* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */
...
@@ -7317,11 +7318,14 @@ typedef struct
...
@@ -7317,11 +7318,14 @@ typedef struct
ma_node_basebaseNode;/* Must be the first member for compatiblity with the ma_node API. */
ma_node_basebaseNode;/* Must be the first member for compatiblity with the ma_node API. */
ma_engine*pEngine;/* A pointer to the engine. Set based on the value from the config. */
ma_engine*pEngine;/* A pointer to the engine. Set based on the value from the config. */
ma_uint32sampleRate;/* The sample rate of the input data. For sounds backed by a data source, this will be the data source's sample rate. Otherwise it'll be the engine's sample rate. */
ma_uint32sampleRate;/* The sample rate of the input data. For sounds backed by a data source, this will be the data source's sample rate. Otherwise it'll be the engine's sample rate. */
ma_uint32volumeSmoothTimeInPCMFrames;
ma_mono_expansion_modemonoExpansionMode;
ma_mono_expansion_modemonoExpansionMode;
ma_faderfader;
ma_faderfader;
ma_linear_resamplerresampler;/* For pitch shift. */
ma_linear_resamplerresampler;/* For pitch shift. */
ma_spatializerspatializer;
ma_spatializerspatializer;
ma_pannerpanner;
ma_pannerpanner;
ma_gainervolumeGainer;/* This will only be used if volumeSmoothTimeInPCMFrames is > 0. */
ma_atomic_floatvolume;/* Defaults to 1. */
MA_ATOMIC(4,float)pitch;
MA_ATOMIC(4,float)pitch;
floatoldPitch;/* For determining whether or not the resampler needs to be updated to reflect the new pitch. The resampler will be updated on the mixing thread. */
floatoldPitch;/* For determining whether or not the resampler needs to be updated to reflect the new pitch. The resampler will be updated on the mixing thread. */
floatoldDopplerPitch;/* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */
floatoldDopplerPitch;/* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */
...
@@ -7356,6 +7360,7 @@ typedef struct
...
@@ -7356,6 +7360,7 @@ typedef struct
ma_uint32channelsOut;/* Set this to 0 (default) to use the engine's channel count. Set to MA_SOUND_SOURCE_CHANNEL_COUNT to use the data source's channel count (only used if using a data source as input). */
ma_uint32channelsOut;/* Set this to 0 (default) to use the engine's channel count. Set to MA_SOUND_SOURCE_CHANNEL_COUNT to use the data source's channel count (only used if using a data source as input). */
ma_mono_expansion_modemonoExpansionMode;/* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */
ma_mono_expansion_modemonoExpansionMode;/* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */
ma_uint32flags;/* A combination of MA_SOUND_FLAG_* flags. */
ma_uint32flags;/* A combination of MA_SOUND_FLAG_* flags. */
ma_uint32volumeSmoothTimeInPCMFrames;/* The number of frames to smooth over volume changes. Defaults to 0 in which case no smoothing is used. */
ma_uint64initialSeekPointInPCMFrames;/* Initializes the sound such that it's seeked to this location by default. */
ma_uint64initialSeekPointInPCMFrames;/* Initializes the sound such that it's seeked to this location by default. */
ma_uint64rangeBegInPCMFrames;
ma_uint64rangeBegInPCMFrames;
ma_uint64rangeEndInPCMFrames;
ma_uint64rangeEndInPCMFrames;
...
@@ -7427,6 +7432,7 @@ typedef struct
...
@@ -7427,6 +7432,7 @@ typedef struct
ma_uint32periodSizeInMilliseconds;/* Used if periodSizeInFrames is unset. */
ma_uint32periodSizeInMilliseconds;/* Used if periodSizeInFrames is unset. */
ma_uint32gainSmoothTimeInFrames;/* The number of frames to interpolate the gain of spatialized sounds across. If set to 0, will use gainSmoothTimeInMilliseconds. */
ma_uint32gainSmoothTimeInFrames;/* The number of frames to interpolate the gain of spatialized sounds across. If set to 0, will use gainSmoothTimeInMilliseconds. */
ma_uint32gainSmoothTimeInMilliseconds;/* When set to 0, gainSmoothTimeInFrames will be used. If both are set to 0, a default value will be used. */
ma_uint32gainSmoothTimeInMilliseconds;/* When set to 0, gainSmoothTimeInFrames will be used. If both are set to 0, a default value will be used. */
ma_uint32defaultVolumeSmoothTimeInPCMFrames;/* Defaults to 0. Controls the default amount of smoothing to apply to volume changes to sounds. High values means more smoothing at the expense of high latency (will take longer to reach the new volume). */
ma_allocation_callbacksallocationCallbacks;
ma_allocation_callbacksallocationCallbacks;
ma_bool32noAutoStart;/* When set to true, requires an explicit call to ma_engine_start(). This is false by default, meaning the engine will be started automatically in ma_engine_init(). */
ma_bool32noAutoStart;/* When set to true, requires an explicit call to ma_engine_start(). This is false by default, meaning the engine will be started automatically in ma_engine_init(). */
ma_bool32noDevice;/* When set to true, don't create a default device. ma_engine_read_pcm_frames() can be called manually to read data. */
ma_bool32noDevice;/* When set to true, don't create a default device. ma_engine_read_pcm_frames() can be called manually to read data. */
...
@@ -7457,6 +7463,7 @@ struct ma_engine
...
@@ -7457,6 +7463,7 @@ struct ma_engine
ma_sound_inlined*pInlinedSoundHead;/* The first inlined sound. Inlined sounds are tracked in a linked list. */
ma_sound_inlined*pInlinedSoundHead;/* The first inlined sound. Inlined sounds are tracked in a linked list. */
MA_ATOMIC(4,ma_uint32)inlinedSoundCount;/* The total number of allocated inlined sound objects. Used for debugging. */
MA_ATOMIC(4,ma_uint32)inlinedSoundCount;/* The total number of allocated inlined sound objects. Used for debugging. */
ma_uint32gainSmoothTimeInFrames;/* The number of frames to interpolate the gain of spatialized sounds across. */
ma_uint32gainSmoothTimeInFrames;/* The number of frames to interpolate the gain of spatialized sounds across. */