finished audio effects support in audio renderer

Working structure implemented in previous commit into the audio renderer is
complete in this commit.
This commit is contained in:
itsmattkc
2019-12-24 14:02:07 +11:00
parent 7ad2eae7a2
commit f0cd480540
13 changed files with 88 additions and 26 deletions
+10 -4
View File
@@ -39,19 +39,19 @@ QString PanNode::Description() const
return tr("Adjust the stereo panning of an audio source.");
}
bool PanNode::ProcessesSamples() const
NodeInput *PanNode::ProcessesSamplesFrom() const
{
return true;
return samples_input_;
}
void PanNode::ProcessSamples(const NodeValueDatabase &values, const AudioRenderingParams &params, const float *input, float *output, int index) const
void PanNode::ProcessSamples(const NodeValueDatabase *values, const AudioRenderingParams &params, const float *input, float *output, int index) const
{
if (params.channel_count() != 2) {
// This node currently only works for stereo audio
return;
}
float pan_val = values[panning_input_].Get(NodeParam::kFloat).toFloat();
float pan_val = (*values)[panning_input_].Get(NodeParam::kFloat).toFloat();
if (index%2 == 0) {
// Sample is left channel
@@ -65,3 +65,9 @@ void PanNode::ProcessSamples(const NodeValueDatabase &values, const AudioRenderi
}
}
}
void PanNode::Retranslate()
{
samples_input_->set_name(tr("Samples"));
panning_input_->set_name(tr("Pan"));
}
+4 -2
View File
@@ -15,8 +15,10 @@ public:
virtual QString Category() const override;
virtual QString Description() const override;
virtual bool ProcessesSamples() const override;
virtual void ProcessSamples(const NodeValueDatabase& values, const AudioRenderingParams& params, const float* input, float* output, int index) const override;
virtual NodeInput* ProcessesSamplesFrom() const override;
virtual void ProcessSamples(const NodeValueDatabase* values, const AudioRenderingParams& params, const float* input, float* output, int index) const override;
virtual void Retranslate() override;
private:
NodeInput* samples_input_;
+15 -4
View File
@@ -39,14 +39,25 @@ QString VolumeNode::Description() const
return tr("Adjusts the volume of an audio source.");
}
bool VolumeNode::ProcessesSamples() const
NodeInput *VolumeNode::ProcessesSamplesFrom() const
{
return true;
return samples_input_;
}
void VolumeNode::ProcessSamples(const NodeValueDatabase& values, const AudioRenderingParams& params, const float* input, float* output, int index) const
void VolumeNode::ProcessSamples(const NodeValueDatabase *values, const AudioRenderingParams& params, const float* input, float* output, int index) const
{
float volume_val = values[volume_input_].Get(NodeParam::kFloat).toFloat();
float volume_val = (*values)[volume_input_].Get(NodeParam::kFloat).toFloat();
output[index] = input[index] * volume_val;
}
void VolumeNode::Retranslate()
{
samples_input_->set_name(tr("Samples"));
volume_input_->set_name(tr("Volume"));
}
NodeInput *VolumeNode::samples_input() const
{
return samples_input_;
}
+6 -2
View File
@@ -15,8 +15,12 @@ public:
virtual QString Category() const override;
virtual QString Description() const override;
virtual bool ProcessesSamples() const override;
virtual void ProcessSamples(const NodeValueDatabase& values, const AudioRenderingParams& params, const float* input, float* output, int index) const override;
virtual NodeInput* ProcessesSamplesFrom() const override;
virtual void ProcessSamples(const NodeValueDatabase* values, const AudioRenderingParams& params, const float* input, float* output, int index) const override;
virtual void Retranslate() override;
NodeInput* samples_input() const;
private:
NodeInput* samples_input_;