LMMS
Loading...
Searching...
No Matches
ReverbSC.h
Go to the documentation of this file.
1/*
2 * RerverbSC.h - Reverb algorithm by Sean Costello
3 *
4 * Copyright (c) 2017 Paul Batchelor
5 *
6 * This file is part of LMMS - https://lmms.io
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
22 *
23 */
24
25
26#ifndef REVERBSC_H
27#define REVERBSC_H
28
29#include "Effect.h"
30#include "ReverbSCControls.h"
31
32extern "C" {
33 #include "base.h"
34 #include "revsc.h"
35 #include "dcblock.h"
36}
37
38
39namespace lmms
40{
41
42
43class ReverbSCEffect : public Effect
44{
45public:
46 ReverbSCEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key );
47 ~ReverbSCEffect() override;
48
49 ProcessStatus processImpl(SampleFrame* buf, const f_cnt_t frames) override;
50
52 {
53 return &m_reverbSCControls;
54 }
55
56 void changeSampleRate();
57
58private:
63 QMutex mutex;
64 friend class ReverbSCControls;
65} ;
66
67
68} // namespace lmms
69
70#endif
Definition EffectControls.h:44
Effect(const Plugin::Descriptor *_desc, Model *_parent, const Descriptor::SubPluginFeatures::Key *_key)
Definition Effect.cpp:41
ProcessStatus
Definition Effect.h:147
Definition Model.h:37
const Descriptor::SubPluginFeatures::Key & key() const
Definition Plugin.h:266
QMutex mutex
Definition ReverbSC.h:63
sp_data * sp
Definition ReverbSC.h:60
friend class ReverbSCControls
Definition ReverbSC.h:64
EffectControls * controls() override
Definition ReverbSC.h:51
ReverbSCEffect(Model *parent, const Descriptor::SubPluginFeatures::Key *key)
Definition ReverbSC.cpp:51
ReverbSCControls m_reverbSCControls
Definition ReverbSC.h:59
ProcessStatus processImpl(SampleFrame *buf, const f_cnt_t frames) override
Definition ReverbSC.cpp:76
~ReverbSCEffect() override
Definition ReverbSC.cpp:68
sp_dcblock * dcblk[2]
Definition ReverbSC.h:62
sp_revsc * revsc
Definition ReverbSC.h:61
void changeSampleRate()
Definition ReverbSC.cpp:119
Definition SampleFrame.h:41
static uintptr_t parent
Definition pugl.h:1644
Definition AudioAlsa.cpp:35
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
Definition base.h:26
Definition dcblock.h:1
Definition revsc.h:14