#![no_std]
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
pub use root::{soundtouch::*, TDStretch, uint};
#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
pub mod root {
#[doc = r" If Bindgen could only determine the size and alignment of a"]
#[doc = r" type, it is represented like this."]
#[derive(PartialEq, Copy, Clone, Debug, Hash)]
#[repr(C)]
pub struct __BindgenOpaqueArray<T: Copy, const N: usize>(pub [T; N]);
impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray<T, N> {
fn default() -> Self {
Self([<T as Default>::default(); N])
}
}
#[allow(unused_imports)]
use self::super::root;
pub mod std {
#[allow(unused_imports)]
use self::super::super::root;
pub mod __detail {
#[allow(unused_imports)]
use self::super::super::super::root;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct allocator {
pub _address: u8,
}
pub type allocator_value_type = u8;
pub type allocator_size_type = u64;
pub type allocator_difference_type = u64;
pub type allocator_pointer = u8;
pub type allocator_const_pointer = u8;
pub type allocator_reference = u8;
pub type allocator_const_reference = u8;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct allocator_rebind {
pub _address: u8,
}
pub type allocator_rebind_other = u8;
pub type allocator_propagate_on_container_move_assignment = u8;
pub type allocator_is_always_equal = u8;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vector {
pub _address: u8,
}
pub type vector__Base = u8;
pub type vector__Tp_alloc_type = u8;
pub type vector__Alloc_traits = u8;
pub type vector_value_type = u8;
pub type vector_pointer = u8;
pub type vector_const_pointer = u8;
pub type vector_reference = u8;
pub type vector_const_reference = u8;
pub type vector_iterator = u8;
pub type vector_const_iterator = u8;
pub type vector_const_reverse_iterator = u8;
pub type vector_reverse_iterator = u8;
pub type vector_size_type = u64;
pub type vector_difference_type = u64;
pub type vector_allocator_type = u8;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vector__Guard_alloc {
pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vector__Temporary_value {
pub _address: u8,
}
#[repr(C)]
#[repr(align(1))]
#[derive(Copy, Clone)]
pub union vector__Temporary_value__Storage {
pub _bindgen_opaque_blob: u8,
}
}
pub mod __gnu_cxx {
#[allow(unused_imports)]
use self::super::super::root;
}
pub type uint = libc::c_uint;
pub mod soundtouch {
#[allow(unused_imports)]
use self::super::super::root;
pub type SAMPLETYPE = f32;
pub type LONG_SAMPLETYPE = f32;
#[repr(C)]
pub struct FIFOSamplePipe__bindgen_vtable(libc::c_void);
#[repr(C)]
#[derive(Debug)]
pub struct FIFOSamplePipe {
pub vtable_: *const FIFOSamplePipe__bindgen_vtable,
}
#[repr(C)]
#[derive(Debug)]
pub struct FIFOProcessor {
pub _base: root::soundtouch::FIFOSamplePipe,
pub output: *mut root::soundtouch::FIFOSamplePipe,
}
#[repr(C)]
#[derive(Debug)]
pub struct SoundTouch {
pub _base: root::soundtouch::FIFOProcessor,
pub pRateTransposer: *mut root::RateTransposer,
pub pTDStretch: *mut root::TDStretch,
pub virtualRate: f64,
pub virtualTempo: f64,
pub virtualPitch: f64,
pub bSrateSet: bool,
pub samplesExpectedOut: f64,
pub samplesOutput: libc::c_long,
pub channels: root::uint,
pub rate: f64,
pub tempo: f64,
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch16getVersionStringEv"]
pub fn SoundTouch_getVersionString() -> *const libc::c_char;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch12getVersionIdEv"]
pub fn SoundTouch_getVersionId() -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch7setRateEd"]
pub fn SoundTouch_setRate(this: *mut root::soundtouch::SoundTouch, newRate: f64);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch8setTempoEd"]
pub fn SoundTouch_setTempo(this: *mut root::soundtouch::SoundTouch, newTempo: f64);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch13setRateChangeEd"]
pub fn SoundTouch_setRateChange(this: *mut root::soundtouch::SoundTouch, newRate: f64);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch14setTempoChangeEd"]
pub fn SoundTouch_setTempoChange(
this: *mut root::soundtouch::SoundTouch,
newTempo: f64,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch8setPitchEd"]
pub fn SoundTouch_setPitch(this: *mut root::soundtouch::SoundTouch, newPitch: f64);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch15setPitchOctavesEd"]
pub fn SoundTouch_setPitchOctaves(
this: *mut root::soundtouch::SoundTouch,
newPitch: f64,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch17setPitchSemiTonesEi"]
pub fn SoundTouch_setPitchSemiTones(
this: *mut root::soundtouch::SoundTouch,
newPitch: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch17setPitchSemiTonesEd"]
pub fn SoundTouch_setPitchSemiTones1(
this: *mut root::soundtouch::SoundTouch,
newPitch: f64,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch11setChannelsEj"]
pub fn SoundTouch_setChannels(
this: *mut root::soundtouch::SoundTouch,
numChannels: root::uint,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch13setSampleRateEj"]
pub fn SoundTouch_setSampleRate(
this: *mut root::soundtouch::SoundTouch,
srate: root::uint,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch25getInputOutputSampleRatioEv"]
pub fn SoundTouch_getInputOutputSampleRatio(
this: *mut root::soundtouch::SoundTouch,
) -> f64;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch5flushEv"]
pub fn SoundTouch_flush(this: *mut root::soundtouch::SoundTouch);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch10setSettingEii"]
pub fn SoundTouch_setSetting(
this: *mut root::soundtouch::SoundTouch,
settingId: libc::c_int,
value: libc::c_int,
) -> bool;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZNK10soundtouch10SoundTouch10getSettingEi"]
pub fn SoundTouch_getSetting(
this: *const root::soundtouch::SoundTouch,
settingId: libc::c_int,
) -> libc::c_int;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouchC1Ev"]
pub fn SoundTouch_SoundTouch(this: *mut root::soundtouch::SoundTouch);
}
impl SoundTouch {
#[inline]
pub unsafe fn getVersionString() -> *const libc::c_char {
SoundTouch_getVersionString()
}
#[inline]
pub unsafe fn getVersionId() -> root::uint {
SoundTouch_getVersionId()
}
#[inline]
pub unsafe fn setRate(&mut self, newRate: f64) {
SoundTouch_setRate(self, newRate)
}
#[inline]
pub unsafe fn setTempo(&mut self, newTempo: f64) {
SoundTouch_setTempo(self, newTempo)
}
#[inline]
pub unsafe fn setRateChange(&mut self, newRate: f64) {
SoundTouch_setRateChange(self, newRate)
}
#[inline]
pub unsafe fn setTempoChange(&mut self, newTempo: f64) {
SoundTouch_setTempoChange(self, newTempo)
}
#[inline]
pub unsafe fn setPitch(&mut self, newPitch: f64) {
SoundTouch_setPitch(self, newPitch)
}
#[inline]
pub unsafe fn setPitchOctaves(&mut self, newPitch: f64) {
SoundTouch_setPitchOctaves(self, newPitch)
}
#[inline]
pub unsafe fn setPitchSemiTones(&mut self, newPitch: libc::c_int) {
SoundTouch_setPitchSemiTones(self, newPitch)
}
#[inline]
pub unsafe fn setPitchSemiTones1(&mut self, newPitch: f64) {
SoundTouch_setPitchSemiTones1(self, newPitch)
}
#[inline]
pub unsafe fn setChannels(&mut self, numChannels: root::uint) {
SoundTouch_setChannels(self, numChannels)
}
#[inline]
pub unsafe fn setSampleRate(&mut self, srate: root::uint) {
SoundTouch_setSampleRate(self, srate)
}
#[inline]
pub unsafe fn getInputOutputSampleRatio(&mut self) -> f64 {
SoundTouch_getInputOutputSampleRatio(self)
}
#[inline]
pub unsafe fn flush(&mut self) {
SoundTouch_flush(self)
}
#[inline]
pub unsafe fn setSetting(
&mut self,
settingId: libc::c_int,
value: libc::c_int,
) -> bool {
SoundTouch_setSetting(self, settingId, value)
}
#[inline]
pub unsafe fn getSetting(&self, settingId: libc::c_int) -> libc::c_int {
SoundTouch_getSetting(self, settingId)
}
#[inline]
pub unsafe fn new() -> Self {
let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
SoundTouch_SoundTouch(__bindgen_tmp.as_mut_ptr());
__bindgen_tmp.assume_init()
}
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouchD1Ev"]
pub fn SoundTouch_SoundTouch_destructor(this: *mut root::soundtouch::SoundTouch);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch10putSamplesEPKfj"]
pub fn SoundTouch_putSamples(
this: *mut libc::c_void,
samples: *const root::soundtouch::SAMPLETYPE,
numSamples: root::uint,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch14receiveSamplesEPfj"]
pub fn SoundTouch_receiveSamples(
this: *mut libc::c_void,
output: *mut root::soundtouch::SAMPLETYPE,
maxSamples: root::uint,
) -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch14receiveSamplesEj"]
pub fn SoundTouch_receiveSamples1(
this: *mut libc::c_void,
maxSamples: root::uint,
) -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch10SoundTouch5clearEv"]
pub fn SoundTouch_clear(this: *mut libc::c_void);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZNK10soundtouch10SoundTouch21numUnprocessedSamplesEv"]
pub fn SoundTouch_numUnprocessedSamples(this: *mut libc::c_void) -> root::uint;
}
#[repr(C)]
#[derive(Debug)]
pub struct FIFOSampleBuffer {
pub _base: root::soundtouch::FIFOSamplePipe,
pub buffer: *mut root::soundtouch::SAMPLETYPE,
pub bufferUnaligned: *mut root::soundtouch::SAMPLETYPE,
pub sizeInBytes: root::uint,
pub samplesInBuffer: root::uint,
pub channels: root::uint,
pub bufferPos: root::uint,
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer6ptrEndEj"]
pub fn FIFOSampleBuffer_ptrEnd(
this: *mut root::soundtouch::FIFOSampleBuffer,
slackCapacity: root::uint,
) -> *mut root::soundtouch::SAMPLETYPE;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer11setChannelsEi"]
pub fn FIFOSampleBuffer_setChannels(
this: *mut root::soundtouch::FIFOSampleBuffer,
numChannels: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer9addSilentEj"]
pub fn FIFOSampleBuffer_addSilent(
this: *mut root::soundtouch::FIFOSampleBuffer,
nSamples: root::uint,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBufferC1Ei"]
pub fn FIFOSampleBuffer_FIFOSampleBuffer(
this: *mut root::soundtouch::FIFOSampleBuffer,
numChannels: libc::c_int,
);
}
impl FIFOSampleBuffer {
#[inline]
pub unsafe fn ptrEnd(
&mut self,
slackCapacity: root::uint,
) -> *mut root::soundtouch::SAMPLETYPE {
FIFOSampleBuffer_ptrEnd(self, slackCapacity)
}
#[inline]
pub unsafe fn setChannels(&mut self, numChannels: libc::c_int) {
FIFOSampleBuffer_setChannels(self, numChannels)
}
#[inline]
pub unsafe fn addSilent(&mut self, nSamples: root::uint) {
FIFOSampleBuffer_addSilent(self, nSamples)
}
#[inline]
pub unsafe fn new(numChannels: libc::c_int) -> Self {
let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
FIFOSampleBuffer_FIFOSampleBuffer(__bindgen_tmp.as_mut_ptr(), numChannels);
__bindgen_tmp.assume_init()
}
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBufferD1Ev"]
pub fn FIFOSampleBuffer_FIFOSampleBuffer_destructor(
this: *mut root::soundtouch::FIFOSampleBuffer,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer8ptrBeginEv"]
pub fn FIFOSampleBuffer_ptrBegin(
this: *mut libc::c_void,
) -> *mut root::soundtouch::SAMPLETYPE;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer10putSamplesEPKfj"]
pub fn FIFOSampleBuffer_putSamples(
this: *mut libc::c_void,
samples: *const root::soundtouch::SAMPLETYPE,
numSamples: root::uint,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer10putSamplesEj"]
pub fn FIFOSampleBuffer_putSamples1(this: *mut libc::c_void, numSamples: root::uint);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer14receiveSamplesEPfj"]
pub fn FIFOSampleBuffer_receiveSamples(
this: *mut libc::c_void,
output: *mut root::soundtouch::SAMPLETYPE,
maxSamples: root::uint,
) -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer14receiveSamplesEj"]
pub fn FIFOSampleBuffer_receiveSamples1(
this: *mut libc::c_void,
maxSamples: root::uint,
) -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZNK10soundtouch16FIFOSampleBuffer10numSamplesEv"]
pub fn FIFOSampleBuffer_numSamples(this: *mut libc::c_void) -> root::uint;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZNK10soundtouch16FIFOSampleBuffer7isEmptyEv"]
pub fn FIFOSampleBuffer_isEmpty(this: *mut libc::c_void) -> libc::c_int;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer5clearEv"]
pub fn FIFOSampleBuffer_clear(this: *mut libc::c_void);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch16FIFOSampleBuffer21adjustAmountOfSamplesEj"]
pub fn FIFOSampleBuffer_adjustAmountOfSamples(
this: *mut libc::c_void,
numSamples: root::uint,
) -> root::uint;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BEAT {
pub pos: f32,
pub strength: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IIR2_filter {
pub coeffs: [f64; 5usize],
pub prev: [f64; 5usize],
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch11IIR2_filter6updateEf"]
pub fn IIR2_filter_update(this: *mut root::soundtouch::IIR2_filter, x: f32) -> f32;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch11IIR2_filterC1EPKd"]
pub fn IIR2_filter_IIR2_filter(
this: *mut root::soundtouch::IIR2_filter,
lpf_coeffs: *const f64,
);
}
impl IIR2_filter {
#[inline]
pub unsafe fn update(&mut self, x: f32) -> f32 {
IIR2_filter_update(self, x)
}
#[inline]
pub unsafe fn new(lpf_coeffs: *const f64) -> Self {
let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
IIR2_filter_IIR2_filter(__bindgen_tmp.as_mut_ptr(), lpf_coeffs);
__bindgen_tmp.assume_init()
}
}
#[repr(C)]
pub struct BPMDetect__bindgen_vtable(libc::c_void);
#[repr(C)]
#[derive(Debug)]
pub struct BPMDetect {
pub vtable_: *const BPMDetect__bindgen_vtable,
pub xcorr: *mut f32,
pub decimateCount: libc::c_int,
pub decimateSum: root::soundtouch::LONG_SAMPLETYPE,
pub decimateBy: libc::c_int,
pub windowLen: libc::c_int,
pub channels: libc::c_int,
pub sampleRate: libc::c_int,
pub windowStart: libc::c_int,
pub hamw: *mut f32,
pub hamw2: *mut f32,
pub pos: libc::c_int,
pub peakPos: libc::c_int,
pub beatcorr_ringbuffpos: libc::c_int,
pub init_scaler: libc::c_int,
pub peakVal: f32,
pub beatcorr_ringbuff: *mut f32,
pub buffer: *mut root::soundtouch::FIFOSampleBuffer,
pub beats: root::__BindgenOpaqueArray<u64, 3usize>,
pub beat_lpf: root::soundtouch::IIR2_filter,
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect11updateXCorrEi"]
pub fn BPMDetect_updateXCorr(
this: *mut root::soundtouch::BPMDetect,
process_samples: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect8decimateEPfPKfi"]
pub fn BPMDetect_decimate(
this: *mut root::soundtouch::BPMDetect,
dest: *mut root::soundtouch::SAMPLETYPE,
src: *const root::soundtouch::SAMPLETYPE,
numsamples: libc::c_int,
) -> libc::c_int;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect12calcEnvelopeEPfi"]
pub fn BPMDetect_calcEnvelope(
this: *mut root::soundtouch::BPMDetect,
samples: *mut root::soundtouch::SAMPLETYPE,
numsamples: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect10removeBiasEv"]
pub fn BPMDetect_removeBias(this: *mut root::soundtouch::BPMDetect);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect13updateBeatPosEi"]
pub fn BPMDetect_updateBeatPos(
this: *mut root::soundtouch::BPMDetect,
process_samples: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect12inputSamplesEPKfi"]
pub fn BPMDetect_inputSamples(
this: *mut root::soundtouch::BPMDetect,
samples: *const root::soundtouch::SAMPLETYPE,
numSamples: libc::c_int,
);
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect6getBpmEv"]
pub fn BPMDetect_getBpm(this: *mut root::soundtouch::BPMDetect) -> f32;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetect8getBeatsEPfS1_i"]
pub fn BPMDetect_getBeats(
this: *mut root::soundtouch::BPMDetect,
pos: *mut f32,
strength: *mut f32,
max_num: libc::c_int,
) -> libc::c_int;
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetectC1Eii"]
pub fn BPMDetect_BPMDetect(
this: *mut root::soundtouch::BPMDetect,
numChannels: libc::c_int,
sampleRate: libc::c_int,
);
}
impl BPMDetect {
#[inline]
pub unsafe fn updateXCorr(&mut self, process_samples: libc::c_int) {
BPMDetect_updateXCorr(self, process_samples)
}
#[inline]
pub unsafe fn decimate(
&mut self,
dest: *mut root::soundtouch::SAMPLETYPE,
src: *const root::soundtouch::SAMPLETYPE,
numsamples: libc::c_int,
) -> libc::c_int {
BPMDetect_decimate(self, dest, src, numsamples)
}
#[inline]
pub unsafe fn calcEnvelope(
&mut self,
samples: *mut root::soundtouch::SAMPLETYPE,
numsamples: libc::c_int,
) {
BPMDetect_calcEnvelope(self, samples, numsamples)
}
#[inline]
pub unsafe fn removeBias(&mut self) {
BPMDetect_removeBias(self)
}
#[inline]
pub unsafe fn updateBeatPos(&mut self, process_samples: libc::c_int) {
BPMDetect_updateBeatPos(self, process_samples)
}
#[inline]
pub unsafe fn inputSamples(
&mut self,
samples: *const root::soundtouch::SAMPLETYPE,
numSamples: libc::c_int,
) {
BPMDetect_inputSamples(self, samples, numSamples)
}
#[inline]
pub unsafe fn getBpm(&mut self) -> f32 {
BPMDetect_getBpm(self)
}
#[inline]
pub unsafe fn getBeats(
&mut self,
pos: *mut f32,
strength: *mut f32,
max_num: libc::c_int,
) -> libc::c_int {
BPMDetect_getBeats(self, pos, strength, max_num)
}
#[inline]
pub unsafe fn new(numChannels: libc::c_int, sampleRate: libc::c_int) -> Self {
let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
BPMDetect_BPMDetect(__bindgen_tmp.as_mut_ptr(), numChannels, sampleRate);
__bindgen_tmp.assume_init()
}
}
unsafe extern "C" {
#[link_name = "\u{1}_ZN10soundtouch9BPMDetectD1Ev"]
pub fn BPMDetect_BPMDetect_destructor(this: *mut root::soundtouch::BPMDetect);
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RateTransposer {
pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TDStretch {
pub _address: u8,
}
}