1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#ifndef FLATTEN_HPP__
#define FLATTEN_HPP__
#include <memory>
// Functor by which to flatten (or not, by default) a spectrum; not
// reentrant, but serially reusable.
class Flatten {
public:
// Constructor
explicit Flatten(bool = false);
// Destructor
~Flatten();
// Turn flattening on or off
void operator()(bool value);
// Process (or not) the supplied spectrum data
void operator()(float *data, std::size_t size);
// Return active / inactive flattening status
explicit operator bool() const noexcept { return !!m_impl; }
bool live() const noexcept { return !!m_impl; }
private:
class Impl;
std::unique_ptr<Impl> m_impl;
};
#endif
|