Ardour  9.0-pre0-582-g084a23a80d
polarity_processor.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Robin Gareus <robin@gareus.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef _ardour_polarity_processor_h__
20 #define _ardour_polarity_processor_h__
21 
22 #include "ardour/processor.h"
23 #include "ardour/types.h"
24 
25 namespace ARDOUR {
26 
27 class PhaseControl;
28 
30 {
31 public:
32  PolarityProcessor (Session&, std::shared_ptr<PhaseControl>);
33 
34  bool display_to_user() const { return false; }
35  void run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool result_required);
38 
39  std::shared_ptr<PhaseControl> phase_control() {
40  return _control;
41  }
42 
43 protected:
44  XMLNode& state () const;
45 
46 private:
47  std::shared_ptr<PhaseControl> _control;
48  std::vector<gain_t> _current_gain;
49 };
50 
51 }
52 
53 #endif
XMLNode & state() const
std::shared_ptr< PhaseControl > phase_control()
std::shared_ptr< PhaseControl > _control
PolarityProcessor(Session &, std::shared_ptr< PhaseControl >)
std::vector< gain_t > _current_gain
bool can_support_io_configuration(const ChanCount &in, ChanCount &out)
bool configure_io(ChanCount in, ChanCount out)
void run(BufferSet &bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool result_required)
Definition: xml++.h:114
#define LIBARDOUR_API
uint32_t pframes_t
Temporal::samplepos_t samplepos_t