EFX implemented

--HG--
branch : minor
This commit is contained in:
Raidho
2016-12-08 19:27:47 +03:00
parent 8e2d9c5138
commit e60f3c6cda
20 changed files with 1726 additions and 118 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, Effect::Type, std::vector<float> &)
{
return false;
}
bool Audio::setSceneEffect(int)
{
return false;
}
bool Audio::getSceneEffect(int, Effect::Type &, std::vector<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, Effect::Type type, std::vector<float> &params);
bool setSceneEffect(int slot);
bool getSceneEffect(int slot, Effect::Type &type, std::vector<float> &params);
int getMaxSceneEffects() const;
int getMaxSourceEffects() const;
bool isEFXsupported() const;
private:
float volume;
DistanceModel distanceModel;
+34 -2
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;
@@ -242,6 +254,26 @@ bool Source::getFilter(love::audio::Filter::Type &, std::vector<float> &)
return false;
}
bool Source::setSceneEffect(int, int)
{
return false;
}
bool Source::setSceneEffect(int, int, love::audio::Filter::Type, std::vector<float> &)
{
return false;
}
bool Source::setSceneEffect(int)
{
return false;
}
bool Source::getSceneEffect(int, int &, love::audio::Filter::Type &, std::vector<float> &)
{
return false;
}
} // null
} // audio
} // love
+11 -2
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,6 +75,8 @@ 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;
@@ -84,6 +86,11 @@ public:
virtual bool setFilter();
virtual bool getFilter(love::audio::Filter::Type &type, std::vector<float> &params);
virtual bool setSceneEffect(int slot, int effect);
virtual bool setSceneEffect(int slot, int effect, love::audio::Filter::Type type, std::vector<float> &params);
virtual bool setSceneEffect(int slot);
virtual bool getSceneEffect(int slot, int &effect, love::audio::Filter::Type &type, std::vector<float> &params);
private:
float pitch;
@@ -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