audacia/src/effects/Invert.cpp
Paul Licameli 5e7d41ec07 Each .cpp/.mm file includes corresponding header before any other...
... except Audacity.h

This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
2019-03-17 22:54:52 -04:00

78 lines
1.3 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
Invert.cpp
Mark Phillips
*******************************************************************//**
\class EffectInvert
\brief An Effect that inverts the selected audio.
*//*******************************************************************/
#include "../Audacity.h"
#include "Invert.h"
#include <wx/intl.h>
EffectInvert::EffectInvert()
{
}
EffectInvert::~EffectInvert()
{
}
// ComponentInterface implementation
ComponentInterfaceSymbol EffectInvert::GetSymbol()
{
return INVERT_PLUGIN_SYMBOL;
}
wxString EffectInvert::GetDescription()
{
return _("Flips the audio samples upside-down, reversing their polarity");
}
// EffectDefinitionInterface implementation
EffectType EffectInvert::GetType()
{
return EffectTypeProcess;
}
bool EffectInvert::IsInteractive()
{
return false;
}
// EffectClientInterface implementation
unsigned EffectInvert::GetAudioInCount()
{
return 1;
}
unsigned EffectInvert::GetAudioOutCount()
{
return 1;
}
size_t EffectInvert::ProcessBlock(float **inBlock, float **outBlock, size_t blockLen)
{
float *ibuf = inBlock[0];
float *obuf = outBlock[0];
for (decltype(blockLen) i = 0; i < blockLen; i++)
{
obuf[i] = -ibuf[i];
}
return blockLen;
}