inline void init_resample_with_latency()

in pedalboard/plugin_templates/Resample.h [802:874]


inline void init_resample_with_latency(py::module &m) {
  py::class_<Resample<AddLatency, float>, Plugin,
             std::shared_ptr<Resample<AddLatency, float>>>(
      m, "ResampleWithLatency")
      .def(py::init([](float targetSampleRate, int internalLatency,
                       ResamplingQuality quality) {
             auto plugin = std::make_unique<Resample<AddLatency, float>>();
             plugin->setTargetSampleRate(targetSampleRate);
             plugin->getNestedPlugin().getDSP().setMaximumDelayInSamples(
                 internalLatency);
             plugin->getNestedPlugin().getDSP().setDelay(internalLatency);
             plugin->setQuality(quality);
             return plugin;
           }),
           py::arg("target_sample_rate") = 8000.0,
           py::arg("internal_latency") = 1024,
           py::arg("quality") = ResamplingQuality::WindowedSinc32)
      .def("__repr__",
           [](Resample<AddLatency, float> &plugin) {
             std::ostringstream ss;
             ss << "<pedalboard.ResampleWithLatency";
             ss << " target_sample_rate=" << plugin.getTargetSampleRate();
             ss << " internal_latency="
                << plugin.getNestedPlugin().getDSP().getDelay();
             ss << " quality=";
             switch (plugin.getQuality()) {
             case ResamplingQuality::ZeroOrderHold:
               ss << "ZeroOrderHold";
               break;
             case ResamplingQuality::Linear:
               ss << "Linear";
               break;
             case ResamplingQuality::CatmullRom:
               ss << "CatmullRom";
               break;
             case ResamplingQuality::Lagrange:
               ss << "Lagrange";
               break;
             case ResamplingQuality::WindowedSinc:
               ss << "WindowedSinc";
               break;
             case ResamplingQuality::WindowedSinc256:
               ss << "WindowedSinc256";
               break;
             case ResamplingQuality::WindowedSinc128:
               ss << "WindowedSinc128";
               break;
             case ResamplingQuality::WindowedSinc64:
               ss << "WindowedSinc64";
               break;
             case ResamplingQuality::WindowedSinc32:
               ss << "WindowedSinc32";
               break;
             case ResamplingQuality::WindowedSinc16:
               ss << "WindowedSinc16";
               break;
             case ResamplingQuality::WindowedSinc8:
               ss << "WindowedSinc8";
               break;
             default:
               ss << "unknown";
               break;
             }
             ss << " at " << &plugin;
             ss << ">";
             return ss.str();
           })
      .def_property("target_sample_rate",
                    &Resample<AddLatency, float>::getTargetSampleRate,
                    &Resample<AddLatency, float>::setTargetSampleRate)
      .def_property("quality", &Resample<AddLatency, float>::getQuality,
                    &Resample<AddLatency, float>::setQuality);
}