This repository has been archived on 2023-10-25. You can view files and clone it, but cannot push or open issues or pull requests.
speex-webrtc-test/src/AudioEffect.h

47 lines
996 B
C++

#ifndef _AUDIO_EFFECT_H_
#define _AUDIO_EFFECT_H_
#include <QAudioBuffer>
#include <QDebug>
#include <QObject>
#include <QVariant>
namespace SpeexWebRTCTest {
class AudioEffect : public QObject
{
Q_OBJECT
public:
AudioEffect(const QAudioFormat& mainFormat, const QAudioFormat& auxFormat);
virtual void processFrame(QAudioBuffer& mainBuffer, const QAudioBuffer& auxBuffer) = 0;
virtual void setParameter(const QString& param, QVariant value) = 0;
unsigned int getFrameSize() const;
const QAudioFormat& getMainFormat() const;
const QAudioFormat& getAuxFormat() const;
protected:
void setVoiceActive(bool active)
{
if (voiceActive_ != active)
emit voiceActivityChanged(active);
voiceActive_ = active;
}
virtual unsigned int requiredFrameSizeMs() const = 0;
signals:
void voiceActivityChanged(bool voice);
private:
const QAudioFormat mainFormat_;
const QAudioFormat auxFormat_;
bool voiceActive_ = false;
};
} // namespace SpeexWebRTCTest
#endif //_AUDIO_EFFECT_H_