rsndfile 0.0.2

libsndfile bindings for Rust (αlpha)
/* automatically generated by rust-bindgen */
#![allow(dead_code, non_camel_case_types)]
extern crate libc;
use libc::*;
pub const SF_FORMAT_ENDMASK: FileFormat = FileFormat::SF_ENDIAN_CPU;
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub enum FileFormat {
    SF_FORMAT_WAV = 65536,
    SF_FORMAT_AIFF = 131072,
    SF_FORMAT_AU = 196608,
    SF_FORMAT_RAW = 262144,
    SF_FORMAT_PAF = 327680,
    SF_FORMAT_SVX = 393216,
    SF_FORMAT_NIST = 458752,
    SF_FORMAT_VOC = 524288,
    SF_FORMAT_IRCAM = 655360,
    SF_FORMAT_W64 = 720896,
    SF_FORMAT_MAT4 = 786432,
    SF_FORMAT_MAT5 = 851968,
    SF_FORMAT_PVF = 917504,
    SF_FORMAT_XI = 983040,
    SF_FORMAT_HTK = 1048576,
    SF_FORMAT_SDS = 1114112,
    SF_FORMAT_AVR = 1179648,
    SF_FORMAT_WAVEX = 1245184,
    SF_FORMAT_SD2 = 1441792,
    SF_FORMAT_FLAC = 1507328,
    SF_FORMAT_CAF = 1572864,
    SF_FORMAT_WVE = 1638400,
    SF_FORMAT_OGG = 2097152,
    SF_FORMAT_MPC2K = 2162688,
    SF_FORMAT_RF64 = 2228224,
    SF_FORMAT_PCM_S8 = 1,
    SF_FORMAT_PCM_16 = 2,
    SF_FORMAT_PCM_24 = 3,
    SF_FORMAT_PCM_32 = 4,
    SF_FORMAT_PCM_U8 = 5,
    SF_FORMAT_FLOAT = 6,
    SF_FORMAT_DOUBLE = 7,
    SF_FORMAT_ULAW = 16,
    SF_FORMAT_ALAW = 17,
    SF_FORMAT_IMA_ADPCM = 18,
    SF_FORMAT_MS_ADPCM = 19,
    SF_FORMAT_GSM610 = 32,
    SF_FORMAT_VOX_ADPCM = 33,
    SF_FORMAT_G721_32 = 48,
    SF_FORMAT_G723_24 = 49,
    SF_FORMAT_G723_40 = 50,
    SF_FORMAT_DWVW_12 = 64,
    SF_FORMAT_DWVW_16 = 65,
    SF_FORMAT_DWVW_24 = 66,
    SF_FORMAT_DWVW_N = 67,
    SF_FORMAT_DPCM_8 = 80,
    SF_FORMAT_DPCM_16 = 81,
    SF_FORMAT_VORBIS = 96,
    SF_FORMAT_ALAC_16 = 112,
    SF_FORMAT_ALAC_20 = 113,
    SF_FORMAT_ALAC_24 = 114,
    SF_FORMAT_ALAC_32 = 115,
    SF_ENDIAN_FILE = 0,
    SF_ENDIAN_LITTLE = 268435456,
    SF_ENDIAN_BIG = 536870912,
    SF_ENDIAN_CPU = 805306368,
    SF_FORMAT_SUBMASK = 65535,
    SF_FORMAT_TYPEMASK = 268369920,
}

#[derive(Clone, Copy)]
#[repr(C)]
pub enum Enum_Unnamed2 {
    SFC_GET_LIB_VERSION = 4096,
    SFC_GET_LOG_INFO = 4097,
    SFC_GET_CURRENT_SF_INFO = 4098,
    SFC_GET_NORM_DOUBLE = 4112,
    SFC_GET_NORM_FLOAT = 4113,
    SFC_SET_NORM_DOUBLE = 4114,
    SFC_SET_NORM_FLOAT = 4115,
    SFC_SET_SCALE_FLOAT_INT_READ = 4116,
    SFC_SET_SCALE_INT_FLOAT_WRITE = 4117,
    SFC_GET_SIMPLE_FORMAT_COUNT = 4128,
    SFC_GET_SIMPLE_FORMAT = 4129,
    SFC_GET_FORMAT_INFO = 4136,
    SFC_GET_FORMAT_MAJOR_COUNT = 4144,
    SFC_GET_FORMAT_MAJOR = 4145,
    SFC_GET_FORMAT_SUBTYPE_COUNT = 4146,
    SFC_GET_FORMAT_SUBTYPE = 4147,
    SFC_CALC_SIGNAL_MAX = 4160,
    SFC_CALC_NORM_SIGNAL_MAX = 4161,
    SFC_CALC_MAX_ALL_CHANNELS = 4162,
    SFC_CALC_NORM_MAX_ALL_CHANNELS = 4163,
    SFC_GET_SIGNAL_MAX = 4164,
    SFC_GET_MAX_ALL_CHANNELS = 4165,
    SFC_SET_ADD_PEAK_CHUNK = 4176,
    SFC_SET_ADD_HEADER_PAD_CHUNK = 4177,
    SFC_UPDATE_HEADER_NOW = 4192,
    SFC_SET_UPDATE_HEADER_AUTO = 4193,
    SFC_FILE_TRUNCATE = 4224,
    SFC_SET_RAW_START_OFFSET = 4240,
    SFC_SET_DITHER_ON_WRITE = 4256,
    SFC_SET_DITHER_ON_READ = 4257,
    SFC_GET_DITHER_INFO_COUNT = 4258,
    SFC_GET_DITHER_INFO = 4259,
    SFC_GET_EMBED_FILE_INFO = 4272,
    SFC_SET_CLIPPING = 4288,
    SFC_GET_CLIPPING = 4289,
    SFC_GET_INSTRUMENT = 4304,
    SFC_SET_INSTRUMENT = 4305,
    SFC_GET_LOOP_INFO = 4320,
    SFC_GET_BROADCAST_INFO = 4336,
    SFC_SET_BROADCAST_INFO = 4337,
    SFC_GET_CHANNEL_MAP_INFO = 4352,
    SFC_SET_CHANNEL_MAP_INFO = 4353,
    SFC_RAW_DATA_NEEDS_ENDSWAP = 4368,
    SFC_WAVEX_SET_AMBISONIC = 4608,
    SFC_WAVEX_GET_AMBISONIC = 4609,
    SFC_RF64_AUTO_DOWNGRADE = 4624,
    SFC_SET_VBR_ENCODING_QUALITY = 4864,
    SFC_SET_COMPRESSION_LEVEL = 4865,
    SFC_SET_CART_INFO = 5120,
    SFC_GET_CART_INFO = 5121,
    SFC_TEST_IEEE_FLOAT_REPLACE = 24577,
    SFC_SET_ADD_DITHER_ON_WRITE = 4208,
    SFC_SET_ADD_DITHER_ON_READ = 4209,
}
#[derive(Clone, Copy)]
#[repr(C)]
pub enum Enum_Unnamed3 {
    SF_STR_TITLE = 1,
    SF_STR_COPYRIGHT = 2,
    SF_STR_SOFTWARE = 3,
    SF_STR_ARTIST = 4,
    SF_STR_COMMENT = 5,
    SF_STR_DATE = 6,
    SF_STR_ALBUM = 7,
    SF_STR_LICENSE = 8,
    SF_STR_TRACKNUMBER = 9,
    SF_STR_GENRE = 16,
}
#[derive(Clone, Copy)]
#[repr(C)]
pub enum OpenMode {
    SF_FALSE = 0,
    SF_TRUE = 1,
    SFM_READ = 16,
    SFM_WRITE = 32,
    SFM_RDWR = 48,
    SF_AMBISONIC_NONE = 64,
    SF_AMBISONIC_B_FORMAT = 65,
}
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub enum SfError {
    SF_ERR_NO_ERROR = 0,
    SF_ERR_UNRECOGNISED_FORMAT = 1,
    SF_ERR_SYSTEM = 2,
    SF_ERR_MALFORMED_FILE = 3,
    SF_ERR_UNSUPPORTED_ENCODING = 4,
    SF_ERR_UNLISTED = 5
}
#[derive(Clone, Copy)]
#[repr(C)]
pub enum Enum_Unnamed6 {
    SF_CHANNEL_MAP_INVALID = 0,
    SF_CHANNEL_MAP_MONO = 1,
    SF_CHANNEL_MAP_LEFT = 2,
    SF_CHANNEL_MAP_RIGHT = 3,
    SF_CHANNEL_MAP_CENTER = 4,
    SF_CHANNEL_MAP_FRONT_LEFT = 5,
    SF_CHANNEL_MAP_FRONT_RIGHT = 6,
    SF_CHANNEL_MAP_FRONT_CENTER = 7,
    SF_CHANNEL_MAP_REAR_CENTER = 8,
    SF_CHANNEL_MAP_REAR_LEFT = 9,
    SF_CHANNEL_MAP_REAR_RIGHT = 10,
    SF_CHANNEL_MAP_LFE = 11,
    SF_CHANNEL_MAP_FRONT_LEFT_OF_CENTER = 12,
    SF_CHANNEL_MAP_FRONT_RIGHT_OF_CENTER = 13,
    SF_CHANNEL_MAP_SIDE_LEFT = 14,
    SF_CHANNEL_MAP_SIDE_RIGHT = 15,
    SF_CHANNEL_MAP_TOP_CENTER = 16,
    SF_CHANNEL_MAP_TOP_FRONT_LEFT = 17,
    SF_CHANNEL_MAP_TOP_FRONT_RIGHT = 18,
    SF_CHANNEL_MAP_TOP_FRONT_CENTER = 19,
    SF_CHANNEL_MAP_TOP_REAR_LEFT = 20,
    SF_CHANNEL_MAP_TOP_REAR_RIGHT = 21,
    SF_CHANNEL_MAP_TOP_REAR_CENTER = 22,
    SF_CHANNEL_MAP_AMBISONIC_B_W = 23,
    SF_CHANNEL_MAP_AMBISONIC_B_X = 24,
    SF_CHANNEL_MAP_AMBISONIC_B_Y = 25,
    SF_CHANNEL_MAP_AMBISONIC_B_Z = 26,
    SF_CHANNEL_MAP_MAX = 27,
}

pub enum Struct_SNDFILE_tag { }
pub type SNDFILE = Struct_SNDFILE_tag;
pub type sf_count_t = int64_t;
#[repr(C)]
#[derive(Copy, Debug)]
pub struct Struct_SF_INFO {
    pub frames: sf_count_t,
    pub samplerate: c_int,
    pub channels: c_int,
    pub format: c_int,
    pub sections: c_int,
    pub seekable: c_int,
}
impl ::std::clone::Clone for Struct_SF_INFO {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_SF_INFO {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_INFO = Struct_SF_INFO;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed7 {
    pub format: c_int,
    pub name: *const c_char,
    pub extension: *const c_char,
}
impl ::std::clone::Clone for Struct_Unnamed7 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed7 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_FORMAT_INFO = Struct_Unnamed7;
#[derive(Clone, Copy)]
#[repr(C)]
pub enum Enum_Unnamed8 {
    SFD_DEFAULT_LEVEL = 0,
    SFD_CUSTOM_LEVEL = 1073741824,
    SFD_NO_DITHER = 500,
    SFD_WHITE = 501,
    SFD_TRIANGULAR_PDF = 502,
}
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed9 {
    pub _type: c_int,
    pub level: c_double,
    pub name: *const c_char,
}
impl ::std::clone::Clone for Struct_Unnamed9 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed9 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_DITHER_INFO = Struct_Unnamed9;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed10 {
    pub offset: sf_count_t,
    pub length: sf_count_t,
}
impl ::std::clone::Clone for Struct_Unnamed10 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed10 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_EMBED_FILE_INFO = Struct_Unnamed10;
#[derive(Clone, Copy)]
#[repr(C)]
pub enum FileFormat1 {
    SF_LOOP_NONE = 800,
    SF_LOOP_FORWARD = 801,
    SF_LOOP_BACKWARD = 802,
    SF_LOOP_ALTERNATING = 803,
}
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed12 {
    pub gain: c_int,
    pub basenote: c_char,
    pub detune: c_char,
    pub velocity_lo: c_char,
    pub velocity_hi: c_char,
    pub key_lo: c_char,
    pub key_hi: c_char,
    pub loop_count: c_int,
    pub loops: [Struct_Unnamed13; 16usize],
}
impl ::std::clone::Clone for Struct_Unnamed12 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed12 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed13 {
    pub mode: c_int,
    pub start: uint32_t,
    pub end: uint32_t,
    pub count: uint32_t,
}
impl ::std::clone::Clone for Struct_Unnamed13 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed13 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_INSTRUMENT = Struct_Unnamed12;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed14 {
    pub time_sig_num: c_short,
    pub time_sig_den: c_short,
    pub loop_mode: c_int,
    pub num_beats: c_int,
    pub bpm: c_float,
    pub root_key: c_int,
    pub future: [c_int; 6usize],
}
impl ::std::clone::Clone for Struct_Unnamed14 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed14 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_LOOP_INFO = Struct_Unnamed14;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed15 {
    pub description: [c_char; 256usize],
    pub originator: [c_char; 32usize],
    pub originator_reference: [c_char; 32usize],
    pub origination_date: [c_char; 10usize],
    pub origination_time: [c_char; 8usize],
    pub time_reference_low: uint32_t,
    pub time_reference_high: uint32_t,
    pub version: c_short,
    pub umid: [c_char; 64usize],
    pub reserved: [c_char; 190usize],
    pub coding_history_size: uint32_t,
    pub coding_history: [c_char; 256usize],
}
impl ::std::clone::Clone for Struct_Unnamed15 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed15 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_BROADCAST_INFO = Struct_Unnamed15;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_SF_CART_TIMER {
    pub usage: [c_char; 4usize],
    pub value: int32_t,
}
impl ::std::clone::Clone for Struct_SF_CART_TIMER {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_SF_CART_TIMER {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_CART_TIMER = Struct_SF_CART_TIMER;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed16 {
    pub version: [c_char; 4usize],
    pub title: [c_char; 64usize],
    pub artist: [c_char; 64usize],
    pub cut_id: [c_char; 64usize],
    pub client_id: [c_char; 64usize],
    pub category: [c_char; 64usize],
    pub classification: [c_char; 64usize],
    pub out_cue: [c_char; 64usize],
    pub start_date: [c_char; 10usize],
    pub start_time: [c_char; 8usize],
    pub end_date: [c_char; 10usize],
    pub end_time: [c_char; 8usize],
    pub producer_app_id: [c_char; 64usize],
    pub producer_app_version: [c_char; 64usize],
    pub user_def: [c_char; 64usize],
    pub level_reference: int32_t,
    pub post_timers: [SF_CART_TIMER; 8usize],
    pub reserved: [c_char; 276usize],
    pub url: [c_char; 1024usize],
    pub tag_text_size: uint32_t,
    pub tag_text: [c_char; 256usize],
}
impl ::std::clone::Clone for Struct_Unnamed16 {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_Unnamed16 {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_CART_INFO = Struct_Unnamed16;
pub type sf_vio_get_filelen =
    ::std::option::Option<unsafe extern "C" fn(user_data:
                                                   *mut c_void)
                              -> sf_count_t>;
pub type sf_vio_seek =
    ::std::option::Option<unsafe extern "C" fn(offset: sf_count_t,
                                               whence: c_int,
                                               user_data:
                                                   *mut c_void)
                              -> sf_count_t>;
pub type sf_vio_read =
    ::std::option::Option<unsafe extern "C" fn(ptr:
                                                   *mut c_void,
                                               count: sf_count_t,
                                               user_data:
                                                   *mut c_void)
                              -> sf_count_t>;
pub type sf_vio_write =
    ::std::option::Option<unsafe extern "C" fn(ptr:
                                                   *const c_void,
                                               count: sf_count_t,
                                               user_data:
                                                   *mut c_void)
                              -> sf_count_t>;
pub type sf_vio_tell =
    ::std::option::Option<unsafe extern "C" fn(user_data:
                                                   *mut c_void)
                              -> sf_count_t>;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_SF_VIRTUAL_IO {
    pub get_filelen: sf_vio_get_filelen,
    pub seek: sf_vio_seek,
    pub read: sf_vio_read,
    pub write: sf_vio_write,
    pub tell: sf_vio_tell,
}
impl ::std::clone::Clone for Struct_SF_VIRTUAL_IO {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_SF_VIRTUAL_IO {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_VIRTUAL_IO = Struct_SF_VIRTUAL_IO;
#[derive(Clone, Copy)]
#[repr(C)]
pub enum FileFormat7 { SF_SEEK_SET = 0, SF_SEEK_CUR = 1, SF_SEEK_END = 2, }
#[repr(C)]
#[derive(Copy)]
pub struct Struct_SF_CHUNK_INFO {
    pub id: [c_char; 64usize],
    pub id_size: c_uint,
    pub datalen: c_uint,
    pub data: *mut c_void,
}
impl ::std::clone::Clone for Struct_SF_CHUNK_INFO {
    fn clone(&self) -> Self { *self }
}
impl ::std::default::Default for Struct_SF_CHUNK_INFO {
    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
}
pub type SF_CHUNK_INFO = Struct_SF_CHUNK_INFO;
pub enum Struct_SF_CHUNK_ITERATOR { }
pub type SF_CHUNK_ITERATOR = Struct_SF_CHUNK_ITERATOR;
#[link(name = "sndfile")]
extern "C" {
    pub fn sf_open(path: *const c_char,
                   mode: c_int, sfinfo: *mut SF_INFO)
     -> *mut SNDFILE;
    pub fn sf_open_fd(fd: c_int, mode: c_int,
                      sfinfo: *mut SF_INFO, close_desc: c_int)
     -> *mut SNDFILE;
    pub fn sf_open_virtual(sfvirtual: *mut SF_VIRTUAL_IO,
                           mode: c_int, sfinfo: *mut SF_INFO,
                           user_data: *mut c_void)
     -> *mut SNDFILE;
    pub fn sf_error(sndfile: *mut SNDFILE) -> c_int;
    pub fn sf_strerror(sndfile: *mut SNDFILE)
     -> *const c_char;
    pub fn sf_error_number(errnum: c_int)
     -> *const c_char;
    pub fn sf_perror(sndfile: *mut SNDFILE) -> c_int;
    pub fn sf_error_str(sndfile: *mut SNDFILE,
                        str: *mut c_char, len: size_t)
     -> c_int;
    pub fn sf_command(sndfile: *mut SNDFILE, command: c_int,
                      data: *mut c_void,
                      datasize: c_int)
     -> c_int;
    pub fn sf_format_check(info: *const SF_INFO) -> c_int;
    pub fn sf_seek(sndfile: *mut SNDFILE, frames: sf_count_t,
                   whence: c_int) -> sf_count_t;
    pub fn sf_set_string(sndfile: *mut SNDFILE,
                         str_type: c_int,
                         str: *const c_char)
     -> c_int;
    pub fn sf_get_string(sndfile: *mut SNDFILE,
                         str_type: c_int)
     -> *const c_char;
    pub fn sf_version_string() -> *const c_char;
    pub fn sf_current_byterate(sndfile: *mut SNDFILE)
     -> c_int;
    pub fn sf_read_raw(sndfile: *mut SNDFILE,
                       ptr: *mut c_void, bytes: sf_count_t)
     -> sf_count_t;
    pub fn sf_write_raw(sndfile: *mut SNDFILE,
                        ptr: *const c_void, bytes: sf_count_t)
     -> sf_count_t;
    pub fn sf_readf_short(sndfile: *mut SNDFILE,
                          ptr: *mut c_short,
                          frames: sf_count_t) -> sf_count_t;
    pub fn sf_writef_short(sndfile: *mut SNDFILE,
                           ptr: *const c_short,
                           frames: sf_count_t) -> sf_count_t;
    pub fn sf_readf_int(sndfile: *mut SNDFILE,
                        ptr: *mut c_int, frames: sf_count_t)
     -> sf_count_t;
    pub fn sf_writef_int(sndfile: *mut SNDFILE,
                         ptr: *const c_int,
                         frames: sf_count_t) -> sf_count_t;
    pub fn sf_readf_float(sndfile: *mut SNDFILE,
                          ptr: *mut c_float,
                          frames: sf_count_t) -> sf_count_t;
    pub fn sf_writef_float(sndfile: *mut SNDFILE,
                           ptr: *const c_float,
                           frames: sf_count_t) -> sf_count_t;
    pub fn sf_readf_double(sndfile: *mut SNDFILE,
                           ptr: *mut c_double,
                           frames: sf_count_t) -> sf_count_t;
    pub fn sf_writef_double(sndfile: *mut SNDFILE,
                            ptr: *const c_double,
                            frames: sf_count_t) -> sf_count_t;
    pub fn sf_read_short(sndfile: *mut SNDFILE,
                         ptr: *mut c_short, items: sf_count_t)
     -> sf_count_t;
    pub fn sf_write_short(sndfile: *mut SNDFILE,
                          ptr: *const c_short,
                          items: sf_count_t) -> sf_count_t;
    pub fn sf_read_int(sndfile: *mut SNDFILE, ptr: *mut c_int,
                       items: sf_count_t) -> sf_count_t;
    pub fn sf_write_int(sndfile: *mut SNDFILE,
                        ptr: *const c_int, items: sf_count_t)
     -> sf_count_t;
    pub fn sf_read_float(sndfile: *mut SNDFILE,
                         ptr: *mut c_float, items: sf_count_t)
     -> sf_count_t;
    pub fn sf_write_float(sndfile: *mut SNDFILE,
                          ptr: *const c_float,
                          items: sf_count_t) -> sf_count_t;
    pub fn sf_read_double(sndfile: *mut SNDFILE,
                          ptr: *mut c_double,
                          items: sf_count_t) -> sf_count_t;
    pub fn sf_write_double(sndfile: *mut SNDFILE,
                           ptr: *const c_double,
                           items: sf_count_t) -> sf_count_t;
    pub fn sf_close(sndfile: *mut SNDFILE) -> c_int;
    pub fn sf_write_sync(sndfile: *mut SNDFILE);
    pub fn sf_set_chunk(sndfile: *mut SNDFILE,
                        chunk_info: *const SF_CHUNK_INFO)
     -> c_int;
    pub fn sf_get_chunk_iterator(sndfile: *mut SNDFILE,
                                 chunk_info: *const SF_CHUNK_INFO)
     -> *mut SF_CHUNK_ITERATOR;
    pub fn sf_next_chunk_iterator(iterator: *mut SF_CHUNK_ITERATOR)
     -> *mut SF_CHUNK_ITERATOR;
    pub fn sf_get_chunk_size(it: *const SF_CHUNK_ITERATOR,
                             chunk_info: *mut SF_CHUNK_INFO)
     -> c_int;
    pub fn sf_get_chunk_data(it: *const SF_CHUNK_ITERATOR,
                             chunk_info: *mut SF_CHUNK_INFO)
     -> c_int;
}