Mark some source properties volatile

This commit is contained in:
Chris Robinson
2011-09-11 01:18:57 -07:00
parent 89f438df71
commit 1075cce7b3
2 changed files with 53 additions and 47 deletions
+22 -16
View File
@@ -383,23 +383,29 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext)
memcpy(ListenerVel, ALContext->Listener.Velocity, sizeof(ALContext->Listener.Velocity));
//Get source properties
SourceVolume = ALSource->flGain;
MinVolume = ALSource->flMinGain;
MaxVolume = ALSource->flMaxGain;
Pitch = ALSource->flPitch;
Resampler = ALSource->Resampler;
memcpy(Position, ALSource->vPosition, sizeof(ALSource->vPosition));
memcpy(Direction, ALSource->vOrientation, sizeof(ALSource->vOrientation));
memcpy(Velocity, ALSource->vVelocity, sizeof(ALSource->vVelocity));
MinDist = ALSource->flRefDistance;
MaxDist = ALSource->flMaxDistance;
Rolloff = ALSource->flRollOffFactor;
InnerAngle = ALSource->flInnerAngle * ConeScale;
OuterAngle = ALSource->flOuterAngle * ConeScale;
SourceVolume = ALSource->flGain;
MinVolume = ALSource->flMinGain;
MaxVolume = ALSource->flMaxGain;
Pitch = ALSource->flPitch;
Resampler = ALSource->Resampler;
Position[0] = ALSource->vPosition[0];
Position[1] = ALSource->vPosition[1];
Position[2] = ALSource->vPosition[2];
Direction[0] = ALSource->vOrientation[0];
Direction[1] = ALSource->vOrientation[1];
Direction[2] = ALSource->vOrientation[2];
Velocity[0] = ALSource->vVelocity[0];
Velocity[1] = ALSource->vVelocity[1];
Velocity[2] = ALSource->vVelocity[2];
MinDist = ALSource->flRefDistance;
MaxDist = ALSource->flMaxDistance;
Rolloff = ALSource->flRollOffFactor;
InnerAngle = ALSource->flInnerAngle * ConeScale;
OuterAngle = ALSource->flOuterAngle * ConeScale;
AirAbsorptionFactor = ALSource->AirAbsorptionFactor;
DryGainHFAuto = ALSource->DryGainHFAuto;
WetGainAuto = ALSource->WetGainAuto;
WetGainHFAuto = ALSource->WetGainHFAuto;
DryGainHFAuto = ALSource->DryGainHFAuto;
WetGainAuto = ALSource->WetGainAuto;
WetGainHFAuto = ALSource->WetGainHFAuto;
RoomRolloffBase = ALSource->RoomRolloffFactor;
for(i = 0;i < NumSends;i++)
{
+31 -31
View File
@@ -30,30 +30,30 @@ typedef struct ALbufferlistitem
typedef struct ALsource
{
ALfloat flPitch;
ALfloat flGain;
ALfloat flOuterGain;
ALfloat flMinGain;
ALfloat flMaxGain;
ALfloat flInnerAngle;
ALfloat flOuterAngle;
ALfloat flRefDistance;
ALfloat flMaxDistance;
ALfloat flRollOffFactor;
ALfloat vPosition[3];
ALfloat vVelocity[3];
ALfloat vOrientation[3];
ALboolean bHeadRelative;
ALboolean bLooping;
enum DistanceModel DistanceModel;
ALboolean VirtualChannels;
volatile ALfloat flPitch;
volatile ALfloat flGain;
volatile ALfloat flOuterGain;
volatile ALfloat flMinGain;
volatile ALfloat flMaxGain;
volatile ALfloat flInnerAngle;
volatile ALfloat flOuterAngle;
volatile ALfloat flRefDistance;
volatile ALfloat flMaxDistance;
volatile ALfloat flRollOffFactor;
volatile ALfloat vPosition[3];
volatile ALfloat vVelocity[3];
volatile ALfloat vOrientation[3];
volatile ALboolean bHeadRelative;
volatile ALboolean bLooping;
volatile enum DistanceModel DistanceModel;
volatile ALboolean VirtualChannels;
enum Resampler Resampler;
ALenum state;
ALenum new_state;
ALuint position;
ALuint position_fraction;
volatile ALenum state;
ALenum new_state;
ALuint position;
ALuint position_fraction;
ALbufferlistitem *queue; // Linked list of buffers in queue
ALuint BuffersInQueue; // Number of buffers in queue
@@ -68,20 +68,20 @@ typedef struct ALsource
ALfloat WetGainHF;
} Send[MAX_SENDS];
ALboolean DryGainHFAuto;
ALboolean WetGainAuto;
ALboolean WetGainHFAuto;
ALfloat OuterGainHF;
volatile ALboolean DryGainHFAuto;
volatile ALboolean WetGainAuto;
volatile ALboolean WetGainHFAuto;
volatile ALfloat OuterGainHF;
ALfloat AirAbsorptionFactor;
ALfloat RoomRolloffFactor;
ALfloat DopplerFactor;
volatile ALfloat AirAbsorptionFactor;
volatile ALfloat RoomRolloffFactor;
volatile ALfloat DopplerFactor;
ALint lOffset;
ALint lOffsetType;
ALint lOffset;
ALint lOffsetType;
// Source Type (Static, Streaming, or Undetermined)
ALint lSourceType;
volatile ALint lSourceType;
ALuint NumChannels;
ALuint SampleSize;