Add control to the sound attenuation by distance.

This commit is contained in:
Jonathan Giroux
2011-12-14 00:32:18 +01:00
parent 362a7835b4
commit 36a93e46c7
17 changed files with 516 additions and 11 deletions
+11 -1
View File
@@ -26,7 +26,7 @@ namespace audio
{
namespace null
{
Audio::Audio()
Audio::Audio() : distanceModel(DISTANCE_NONE)
{
}
@@ -151,6 +151,16 @@ namespace null
{
return false;
}
Audio::DistanceModel Audio::getDistanceModel() const
{
return this->distanceModel;
}
void Audio::setDistanceModel(DistanceModel distanceModel)
{
this->distanceModel = distanceModel;
}
} // null
} // audio
+4
View File
@@ -36,6 +36,7 @@ namespace null
{
private:
float volume;
DistanceModel distanceModel;
public:
Audio();
@@ -74,6 +75,9 @@ namespace null
love::sound::SoundData * stopRecording(bool returnData);
bool canRecord();
DistanceModel getDistanceModel() const;
void setDistanceModel(DistanceModel distanceModel);
}; // Audio
} // null
+50
View File
@@ -149,6 +149,56 @@ namespace null
{
return (type == TYPE_STATIC);
}
void Source::setMinVolume(float volume)
{
this->minVolume = volume;
}
float Source::getMinVolume() const
{
return this->minVolume;
}
void Source::setMaxVolume(float volume)
{
this->maxVolume = volume;
}
float Source::getMaxVolume() const
{
return this->maxVolume;
}
void Source::setReferenceDistance(float distance)
{
this->referenceDistance = distance;
}
float Source::getReferenceDistance() const
{
return this->referenceDistance;
}
void Source::setRolloffFactor(float factor)
{
this->rolloffFactor = factor;
}
float Source::getRolloffFactor() const
{
return this->rolloffFactor;
}
void Source::setMaxDistance(float distance)
{
this->maxDistance = distance;
}
float Source::getMaxDistance() const
{
return this->maxDistance;
}
} // null
} // audio
+15
View File
@@ -38,6 +38,11 @@ namespace null
float pitch;
float volume;
bool looping;
float minVolume;
float maxVolume;
float referenceDistance;
float rolloffFactor;
float maxDistance;
public:
Source();
@@ -68,6 +73,16 @@ namespace null
void setLooping(bool looping);
bool isLooping() const;
bool isStatic() const;
virtual void setMinVolume(float volume);
virtual float getMinVolume() const;
virtual void setMaxVolume(float volume);
virtual float getMaxVolume() const;
virtual void setReferenceDistance(float distance);
virtual float getReferenceDistance() const;
virtual void setRolloffFactor(float factor);
virtual float getRolloffFactor() const;
virtual void setMaxDistance(float distance);
virtual float getMaxDistance() const;
}; // Source