Merged in rcoaxil/love-patches/minor (pull request #75)

EFX implemented

Approved-by: Bart van Strien
Approved-by: Alex Szpakowski

--HG--
branch : minor
This commit is contained in:
Bart van Strien
2017-02-11 19:04:53 +00:00
21 changed files with 2248 additions and 153 deletions
+39
View File
@@ -143,7 +143,16 @@ float Audio::getDopplerScale() const
{
return 1.0f;
}
/*
void setMeter(float)
{
}
float getMeter() const
{
return 1.0f;
}
*/
const std::vector<love::audio::RecordingDevice*> &Audio::getRecordingDevices()
{
return capture;
@@ -159,6 +168,36 @@ void Audio::setDistanceModel(DistanceModel distanceModel)
this->distanceModel = distanceModel;
}
bool Audio::setSceneEffect(int, std::map<Effect::Parameter, float> &)
{
return false;
}
bool Audio::setSceneEffect(int)
{
return false;
}
bool Audio::getSceneEffect(int, std::map<Effect::Parameter, float> &)
{
return false;
}
int Audio::getMaxSceneEffects() const
{
return 0;
}
int Audio::getMaxSourceEffects() const
{
return 0;
}
bool Audio::isEFXsupported() const
{
return false;
}
} // null
} // audio
} // love
+9
View File
@@ -70,12 +70,21 @@ public:
void setDopplerScale(float scale);
float getDopplerScale() const;
//void setMeter(float scale);
//float getMeter() const;
const std::vector<love::audio::RecordingDevice*> &getRecordingDevices();
DistanceModel getDistanceModel() const;
void setDistanceModel(DistanceModel distanceModel);
bool setSceneEffect(int slot, std::map<Effect::Parameter, float> &params);
bool setSceneEffect(int slot);
bool getSceneEffect(int slot, std::map<Effect::Parameter, float> &params);
int getMaxSceneEffects() const;
int getMaxSourceEffects() const;
bool isEFXsupported() const;
private:
float volume;
DistanceModel distanceModel;
+36 -4
View File
@@ -128,18 +128,20 @@ void Source::getDirection(float *) const
{
}
void Source::setCone(float innerAngle, float outerAngle, float outerVolume)
void Source::setCone(float innerAngle, float outerAngle, float outerVolume, float outerHighGain)
{
coneInnerAngle = innerAngle;
coneOuterAngle = outerAngle;
coneOuterVolume = outerVolume;
coneOuterHighGain = outerHighGain;
}
void Source::getCone(float &innerAngle, float &outerAngle, float &outerVolume) const
void Source::getCone(float &innerAngle, float &outerAngle, float &outerVolume, float &outerHighGain) const
{
innerAngle = coneInnerAngle;
outerAngle = coneOuterAngle;
outerVolume = coneOuterVolume;
outerHighGain = coneOuterHighGain;
}
void Source::setRelative(bool enable)
@@ -212,6 +214,16 @@ float Source::getMaxDistance() const
return this->maxDistance;
}
void Source::setAirAbsorptionFactor(float factor)
{
absorptionFactor = factor;
}
float Source::getAirAbsorptionFactor() const
{
return absorptionFactor;
}
int Source::getChannels() const
{
return 2;
@@ -227,7 +239,7 @@ bool Source::queue(void *, size_t, int, int, int)
return false;
}
bool Source::setFilter(love::audio::Filter::Type, std::vector<float> &)
bool Source::setFilter(std::map<Filter::Parameter, float> &)
{
return false;
}
@@ -237,7 +249,27 @@ bool Source::setFilter()
return false;
}
bool Source::getFilter(love::audio::Filter::Type &, std::vector<float> &)
bool Source::getFilter(std::map<Filter::Parameter, float> &)
{
return false;
}
bool Source::setSceneEffect(int, int)
{
return false;
}
bool Source::setSceneEffect(int, int, std::map<Filter::Parameter, float> &)
{
return false;
}
bool Source::setSceneEffect(int)
{
return false;
}
bool Source::getSceneEffect(int, int &, std::map<Filter::Parameter, float> &)
{
return false;
}
+13 -4
View File
@@ -59,8 +59,8 @@ public:
virtual void getVelocity(float *v) const;
virtual void setDirection(float *v);
virtual void getDirection(float *v) const;
virtual void setCone(float innerAngle, float outerAngle, float outerVolume);
virtual void getCone(float &innerAngle, float &outerAngle, float &outerVolume) const;
virtual void setCone(float innerAngle, float outerAngle, float outerVolume, float outerHighGain);
virtual void getCone(float &innerAngle, float &outerAngle, float &outerVolume, float &outerHighGain) const;
virtual void setRelative(bool enable);
virtual bool isRelative() const;
void setLooping(bool looping);
@@ -75,14 +75,21 @@ public:
virtual float getRolloffFactor() const;
virtual void setMaxDistance(float distance);
virtual float getMaxDistance() const;
virtual void setAirAbsorptionFactor(float factor);
virtual float getAirAbsorptionFactor() const;
virtual int getChannels() const;
virtual int getFreeBufferCount() const;
virtual bool queue(void *data, size_t length, int dataSampleRate, int dataBitDepth, int dataChannels);
virtual bool setFilter(love::audio::Filter::Type type, std::vector<float> &params);
virtual bool setFilter(std::map<Filter::Parameter, float> &params);
virtual bool setFilter();
virtual bool getFilter(love::audio::Filter::Type &type, std::vector<float> &params);
virtual bool getFilter(std::map<Filter::Parameter, float> &params);
virtual bool setSceneEffect(int slot, int effect);
virtual bool setSceneEffect(int slot, int effect, std::map<Filter::Parameter, float> &params);
virtual bool setSceneEffect(int slot);
virtual bool getSceneEffect(int slot, int &effect, std::map<Filter::Parameter, float> &params);
private:
@@ -91,6 +98,7 @@ private:
float coneInnerAngle;
float coneOuterAngle;
float coneOuterVolume;
float coneOuterHighGain;
bool relative;
bool looping;
float minVolume;
@@ -98,6 +106,7 @@ private:
float referenceDistance;
float rolloffFactor;
float maxDistance;
float absorptionFactor;
}; // Source