Update for Rustc
This commit is contained in:
parent
420a0f0fd4
commit
23e1e0639c
|
@ -1,3 +1,8 @@
|
|||
#![allow(missing_copy_implementations)]
|
||||
#![allow(non_camel_case_types)]
|
||||
#![allow(non_snake_case)]
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
extern crate libc;
|
||||
|
||||
/* automatically generated by rust-bindgen */
|
||||
|
@ -31,7 +36,7 @@ pub type __off64_t = ::libc::c_long;
|
|||
pub type __pid_t = ::libc::c_int;
|
||||
#[repr(C)]
|
||||
pub struct __fsid_t {
|
||||
pub __val: [::libc::c_int, ..2u],
|
||||
pub __val: [::libc::c_int; 2u],
|
||||
}
|
||||
pub type __clock_t = ::libc::c_long;
|
||||
pub type __rlim_t = ::libc::c_ulong;
|
||||
|
@ -376,13 +381,13 @@ pub type FILE = Struct__IO_FILE;
|
|||
pub type __FILE = Struct__IO_FILE;
|
||||
#[repr(C)]
|
||||
pub struct Union_Unnamed4 {
|
||||
pub data: [u32, ..1u],
|
||||
pub data: [u32; 1u],
|
||||
}
|
||||
impl Union_Unnamed4 {
|
||||
pub fn __wch(&mut self) -> *mut ::libc::c_uint {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __wchb(&mut self) -> *mut [::libc::c_char, ..4u] {
|
||||
pub fn __wchb(&mut self) -> *mut [::libc::c_char; 4u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
}
|
||||
|
@ -436,7 +441,7 @@ pub struct Struct__IO_FILE {
|
|||
pub _old_offset: __off_t,
|
||||
pub _cur_column: ::libc::c_ushort,
|
||||
pub _vtable_offset: ::libc::c_char,
|
||||
pub _shortbuf: [::libc::c_char, ..1u],
|
||||
pub _shortbuf: [::libc::c_char; 1u],
|
||||
pub _lock: *mut _IO_lock_t,
|
||||
pub _offset: __off64_t,
|
||||
pub __pad1: *mut ::libc::c_void,
|
||||
|
@ -445,7 +450,7 @@ pub struct Struct__IO_FILE {
|
|||
pub __pad4: *mut ::libc::c_void,
|
||||
pub __pad5: size_t,
|
||||
pub _mode: ::libc::c_int,
|
||||
pub _unused2: [::libc::c_char, ..20u],
|
||||
pub _unused2: [::libc::c_char; 20u],
|
||||
}
|
||||
pub type _IO_FILE = Struct__IO_FILE;
|
||||
pub enum Struct__IO_FILE_plus { }
|
||||
|
@ -458,7 +463,7 @@ pub type fpos_t = _G_fpos_t;
|
|||
pub type wchar_t = ::libc::c_int;
|
||||
#[repr(C)]
|
||||
pub struct Union_wait {
|
||||
pub data: [u32, ..1u],
|
||||
pub data: [u32; 1u],
|
||||
}
|
||||
impl Union_wait {
|
||||
pub fn w_status(&mut self) -> *mut ::libc::c_int {
|
||||
|
@ -486,7 +491,7 @@ pub struct Struct_Unnamed6 {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct __WAIT_STATUS {
|
||||
pub data: [u64, ..1u],
|
||||
pub data: [u64; 1u],
|
||||
}
|
||||
impl __WAIT_STATUS {
|
||||
pub fn __uptr(&mut self) -> *mut *mut Union_wait {
|
||||
|
@ -546,7 +551,7 @@ pub type register_t = ::libc::c_long;
|
|||
pub type __sig_atomic_t = ::libc::c_int;
|
||||
#[repr(C)]
|
||||
pub struct __sigset_t {
|
||||
pub __val: [::libc::c_ulong, ..16u],
|
||||
pub __val: [::libc::c_ulong; 16u],
|
||||
}
|
||||
pub type sigset_t = __sigset_t;
|
||||
#[repr(C)]
|
||||
|
@ -563,7 +568,7 @@ pub type suseconds_t = __suseconds_t;
|
|||
pub type __fd_mask = ::libc::c_long;
|
||||
#[repr(C)]
|
||||
pub struct fd_set {
|
||||
pub __fds_bits: [__fd_mask, ..16u],
|
||||
pub __fds_bits: [__fd_mask; 16u],
|
||||
}
|
||||
pub type fd_mask = __fd_mask;
|
||||
pub type blksize_t = __blksize_t;
|
||||
|
@ -573,10 +578,10 @@ pub type fsfilcnt_t = __fsfilcnt_t;
|
|||
pub type pthread_t = ::libc::c_ulong;
|
||||
#[repr(C)]
|
||||
pub struct Union_pthread_attr_t {
|
||||
pub data: [u64, ..7u],
|
||||
pub data: [u64; 7u],
|
||||
}
|
||||
impl Union_pthread_attr_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..56u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 56u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_long {
|
||||
|
@ -603,13 +608,13 @@ pub struct Struct___pthread_mutex_s {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_mutex_t {
|
||||
pub data: [u64, ..5u],
|
||||
pub data: [u64; 5u],
|
||||
}
|
||||
impl pthread_mutex_t {
|
||||
pub fn __data(&mut self) -> *mut Struct___pthread_mutex_s {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..40u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 40u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_long {
|
||||
|
@ -618,10 +623,10 @@ impl pthread_mutex_t {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_mutexattr_t {
|
||||
pub data: [u32, ..1u],
|
||||
pub data: [u32; 1u],
|
||||
}
|
||||
impl pthread_mutexattr_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 4u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_int {
|
||||
|
@ -641,13 +646,13 @@ pub struct Struct_Unnamed7 {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_cond_t {
|
||||
pub data: [u64, ..6u],
|
||||
pub data: [u64; 6u],
|
||||
}
|
||||
impl pthread_cond_t {
|
||||
pub fn __data(&mut self) -> *mut Struct_Unnamed7 {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..48u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 48u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_longlong {
|
||||
|
@ -656,10 +661,10 @@ impl pthread_cond_t {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_condattr_t {
|
||||
pub data: [u32, ..1u],
|
||||
pub data: [u32; 1u],
|
||||
}
|
||||
impl pthread_condattr_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 4u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_int {
|
||||
|
@ -684,13 +689,13 @@ pub struct Struct_Unnamed8 {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_rwlock_t {
|
||||
pub data: [u64, ..7u],
|
||||
pub data: [u64; 7u],
|
||||
}
|
||||
impl pthread_rwlock_t {
|
||||
pub fn __data(&mut self) -> *mut Struct_Unnamed8 {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..56u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 56u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_long {
|
||||
|
@ -699,10 +704,10 @@ impl pthread_rwlock_t {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_rwlockattr_t {
|
||||
pub data: [u64, ..1u],
|
||||
pub data: [u64; 1u],
|
||||
}
|
||||
impl pthread_rwlockattr_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..8u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 8u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_long {
|
||||
|
@ -712,10 +717,10 @@ impl pthread_rwlockattr_t {
|
|||
pub type pthread_spinlock_t = ::libc::c_int;
|
||||
#[repr(C)]
|
||||
pub struct pthread_barrier_t {
|
||||
pub data: [u64, ..4u],
|
||||
pub data: [u64; 4u],
|
||||
}
|
||||
impl pthread_barrier_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..32u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 32u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_long {
|
||||
|
@ -724,10 +729,10 @@ impl pthread_barrier_t {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct pthread_barrierattr_t {
|
||||
pub data: [u32, ..1u],
|
||||
pub data: [u32; 1u],
|
||||
}
|
||||
impl pthread_barrierattr_t {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
|
||||
pub fn __size(&mut self) -> *mut [::libc::c_char; 4u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn __align(&mut self) -> *mut ::libc::c_int {
|
||||
|
@ -746,8 +751,8 @@ pub struct Struct_random_data {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct Struct_drand48_data {
|
||||
pub __x: [::libc::c_ushort, ..3u],
|
||||
pub __old_x: [::libc::c_ushort, ..3u],
|
||||
pub __x: [::libc::c_ushort; 3u],
|
||||
pub __old_x: [::libc::c_ushort; 3u],
|
||||
pub __c: ::libc::c_ushort,
|
||||
pub __init: ::libc::c_ushort,
|
||||
pub __a: ::libc::c_ulonglong,
|
||||
|
@ -758,11 +763,11 @@ pub type __compar_fn_t =
|
|||
arg2: *const ::libc::c_void) -> ::libc::c_int>;
|
||||
#[repr(C)]
|
||||
pub struct Struct___locale_struct {
|
||||
pub __locales: [*mut Struct___locale_data, ..13u],
|
||||
pub __locales: [*mut Struct___locale_data; 13u],
|
||||
pub __ctype_b: *const ::libc::c_ushort,
|
||||
pub __ctype_tolower: *const ::libc::c_int,
|
||||
pub __ctype_toupper: *const ::libc::c_int,
|
||||
pub __names: [*const ::libc::c_char, ..13u],
|
||||
pub __names: [*const ::libc::c_char; 13u],
|
||||
}
|
||||
pub enum Struct___locale_data { }
|
||||
pub type __locale_t = *mut Struct___locale_struct;
|
||||
|
@ -791,7 +796,7 @@ pub struct Struct_stat {
|
|||
pub st_atim: Struct_timespec,
|
||||
pub st_mtim: Struct_timespec,
|
||||
pub st_ctim: Struct_timespec,
|
||||
pub __glibc_reserved: [__syscall_slong_t, ..3u],
|
||||
pub __glibc_reserved: [__syscall_slong_t; 3u],
|
||||
}
|
||||
pub type nfds_t = ::libc::c_ulong;
|
||||
#[repr(C)]
|
||||
|
@ -1055,16 +1060,16 @@ pub struct Struct__snd_pcm_channel_area {
|
|||
pub type snd_pcm_channel_area_t = Struct__snd_pcm_channel_area;
|
||||
#[repr(C)]
|
||||
pub struct Union__snd_pcm_sync_id {
|
||||
pub data: [u32, ..4u],
|
||||
pub data: [u32; 4u],
|
||||
}
|
||||
impl Union__snd_pcm_sync_id {
|
||||
pub fn id(&mut self) -> *mut [::libc::c_uchar, ..16u] {
|
||||
pub fn id(&mut self) -> *mut [::libc::c_uchar; 16u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn id16(&mut self) -> *mut [::libc::c_ushort, ..8u] {
|
||||
pub fn id16(&mut self) -> *mut [::libc::c_ushort; 8u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn id32(&mut self) -> *mut [::libc::c_uint, ..4u] {
|
||||
pub fn id32(&mut self) -> *mut [::libc::c_uint; 4u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
}
|
||||
|
@ -1119,7 +1124,7 @@ pub static SND_CHMAP_LAST: ::libc::c_uint = 36;
|
|||
#[repr(C)]
|
||||
pub struct Struct_snd_pcm_chmap {
|
||||
pub channels: ::libc::c_uint,
|
||||
pub pos: [::libc::c_uint, ..0u],
|
||||
pub pos: [::libc::c_uint; 0u],
|
||||
}
|
||||
pub type snd_pcm_chmap_t = Struct_snd_pcm_chmap;
|
||||
#[repr(C)]
|
||||
|
@ -1292,10 +1297,10 @@ pub enum Struct__snd_hwdep { }
|
|||
pub type snd_hwdep_t = Struct__snd_hwdep;
|
||||
#[repr(C)]
|
||||
pub struct Struct_snd_aes_iec958 {
|
||||
pub status: [::libc::c_uchar, ..24u],
|
||||
pub subcode: [::libc::c_uchar, ..147u],
|
||||
pub status: [::libc::c_uchar; 24u],
|
||||
pub subcode: [::libc::c_uchar; 147u],
|
||||
pub pad: ::libc::c_uchar,
|
||||
pub dig_subframe: [::libc::c_uchar, ..4u],
|
||||
pub dig_subframe: [::libc::c_uchar; 4u],
|
||||
}
|
||||
pub type snd_aes_iec958_t = Struct_snd_aes_iec958;
|
||||
pub enum Struct__snd_ctl_card_info { }
|
||||
|
@ -1499,7 +1504,7 @@ pub type snd_seq_real_time_t = Struct_snd_seq_real_time;
|
|||
pub type snd_seq_tick_time_t = ::libc::c_uint;
|
||||
#[repr(C)]
|
||||
pub struct Union_snd_seq_timestamp {
|
||||
pub data: [u32, ..2u],
|
||||
pub data: [u32; 2u],
|
||||
}
|
||||
impl Union_snd_seq_timestamp {
|
||||
pub fn tick(&mut self) -> *mut snd_seq_tick_time_t {
|
||||
|
@ -1522,19 +1527,19 @@ pub type snd_seq_ev_note_t = Struct_snd_seq_ev_note;
|
|||
#[repr(C)]
|
||||
pub struct Struct_snd_seq_ev_ctrl {
|
||||
pub channel: ::libc::c_uchar,
|
||||
pub unused: [::libc::c_uchar, ..3u],
|
||||
pub unused: [::libc::c_uchar; 3u],
|
||||
pub param: ::libc::c_uint,
|
||||
pub value: ::libc::c_int,
|
||||
}
|
||||
pub type snd_seq_ev_ctrl_t = Struct_snd_seq_ev_ctrl;
|
||||
#[repr(C)]
|
||||
pub struct Struct_snd_seq_ev_raw8 {
|
||||
pub d: [::libc::c_uchar, ..12u],
|
||||
pub d: [::libc::c_uchar; 12u],
|
||||
}
|
||||
pub type snd_seq_ev_raw8_t = Struct_snd_seq_ev_raw8;
|
||||
#[repr(C)]
|
||||
pub struct Struct_snd_seq_ev_raw32 {
|
||||
pub d: [::libc::c_uint, ..3u],
|
||||
pub d: [::libc::c_uint; 3u],
|
||||
}
|
||||
pub type snd_seq_ev_raw32_t = Struct_snd_seq_ev_raw32;
|
||||
#[repr(C)]
|
||||
|
@ -1558,12 +1563,12 @@ pub type snd_seq_queue_skew_t = Struct_snd_seq_queue_skew;
|
|||
#[repr(C)]
|
||||
pub struct Struct_snd_seq_ev_queue_control {
|
||||
pub queue: ::libc::c_uchar,
|
||||
pub unused: [::libc::c_uchar, ..3u],
|
||||
pub unused: [::libc::c_uchar; 3u],
|
||||
pub param: Union_Unnamed9,
|
||||
}
|
||||
#[repr(C)]
|
||||
pub struct Union_Unnamed9 {
|
||||
pub data: [u32, ..2u],
|
||||
pub data: [u32; 2u],
|
||||
}
|
||||
impl Union_Unnamed9 {
|
||||
pub fn value(&mut self) -> *mut ::libc::c_int {
|
||||
|
@ -1578,10 +1583,10 @@ impl Union_Unnamed9 {
|
|||
pub fn skew(&mut self) -> *mut snd_seq_queue_skew_t {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn d32(&mut self) -> *mut [::libc::c_uint, ..2u] {
|
||||
pub fn d32(&mut self) -> *mut [::libc::c_uint; 2u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
pub fn d8(&mut self) -> *mut [::libc::c_uchar, ..8u] {
|
||||
pub fn d8(&mut self) -> *mut [::libc::c_uchar; 8u] {
|
||||
unsafe { ::std::mem::transmute(self) }
|
||||
}
|
||||
}
|
||||
|
@ -1599,7 +1604,7 @@ pub struct Struct_snd_seq_event {
|
|||
}
|
||||
#[repr(C)]
|
||||
pub struct Union_Unnamed10 {
|
||||
pub data: [u32, ..3u],
|
||||
pub data: [u32; 3u],
|
||||
}
|
||||
impl Union_Unnamed10 {
|
||||
pub fn note(&mut self) -> *mut snd_seq_ev_note_t {
|
||||
|
@ -1715,10 +1720,10 @@ extern "C" {
|
|||
pub static mut stderr: *mut Struct__IO_FILE;
|
||||
pub static mut sys_nerr: ::libc::c_int;
|
||||
pub static mut sys_errlist: *const *const ::libc::c_char;
|
||||
pub static mut __tzname: [*mut ::libc::c_char, ..2u];
|
||||
pub static mut __tzname: [*mut ::libc::c_char; 2u];
|
||||
pub static mut __daylight: ::libc::c_int;
|
||||
pub static mut __timezone: ::libc::c_long;
|
||||
pub static mut tzname: [*mut ::libc::c_char, ..2u];
|
||||
pub static mut tzname: [*mut ::libc::c_char; 2u];
|
||||
pub static mut daylight: ::libc::c_int;
|
||||
pub static mut timezone: ::libc::c_long;
|
||||
pub static mut snd_dlsym_start: *mut Struct_snd_dlsym_link;
|
||||
|
@ -1741,7 +1746,7 @@ extern "C" {
|
|||
__nbytes: size_t, __offset: __off_t) -> ssize_t;
|
||||
pub fn pwrite(__fd: ::libc::c_int, __buf: *const ::libc::c_void,
|
||||
__n: size_t, __offset: __off_t) -> ssize_t;
|
||||
pub fn pipe(__pipedes: [::libc::c_int, ..2u]) -> ::libc::c_int;
|
||||
pub fn pipe(__pipedes: [::libc::c_int; 2u]) -> ::libc::c_int;
|
||||
pub fn alarm(__seconds: ::libc::c_uint) -> ::libc::c_uint;
|
||||
pub fn sleep(__seconds: ::libc::c_uint) -> ::libc::c_uint;
|
||||
pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) ->
|
||||
|
@ -2091,35 +2096,35 @@ extern "C" {
|
|||
pub fn srand(__seed: ::libc::c_uint);
|
||||
pub fn rand_r(__seed: *mut ::libc::c_uint) -> ::libc::c_int;
|
||||
pub fn drand48() -> ::libc::c_double;
|
||||
pub fn erand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_double;
|
||||
pub fn erand48(__xsubi: [::libc::c_ushort; 3u]) -> ::libc::c_double;
|
||||
pub fn lrand48() -> ::libc::c_long;
|
||||
pub fn nrand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_long;
|
||||
pub fn nrand48(__xsubi: [::libc::c_ushort; 3u]) -> ::libc::c_long;
|
||||
pub fn mrand48() -> ::libc::c_long;
|
||||
pub fn jrand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_long;
|
||||
pub fn jrand48(__xsubi: [::libc::c_ushort; 3u]) -> ::libc::c_long;
|
||||
pub fn srand48(__seedval: ::libc::c_long);
|
||||
pub fn seed48(__seed16v: [::libc::c_ushort, ..3u]) ->
|
||||
pub fn seed48(__seed16v: [::libc::c_ushort; 3u]) ->
|
||||
*mut ::libc::c_ushort;
|
||||
pub fn lcong48(__param: [::libc::c_ushort, ..7u]);
|
||||
pub fn lcong48(__param: [::libc::c_ushort; 7u]);
|
||||
pub fn drand48_r(__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_double) -> ::libc::c_int;
|
||||
pub fn erand48_r(__xsubi: [::libc::c_ushort, ..3u],
|
||||
pub fn erand48_r(__xsubi: [::libc::c_ushort; 3u],
|
||||
__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_double) -> ::libc::c_int;
|
||||
pub fn lrand48_r(__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_long) -> ::libc::c_int;
|
||||
pub fn nrand48_r(__xsubi: [::libc::c_ushort, ..3u],
|
||||
pub fn nrand48_r(__xsubi: [::libc::c_ushort; 3u],
|
||||
__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_long) -> ::libc::c_int;
|
||||
pub fn mrand48_r(__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_long) -> ::libc::c_int;
|
||||
pub fn jrand48_r(__xsubi: [::libc::c_ushort, ..3u],
|
||||
pub fn jrand48_r(__xsubi: [::libc::c_ushort; 3u],
|
||||
__buffer: *mut Struct_drand48_data,
|
||||
__result: *mut ::libc::c_long) -> ::libc::c_int;
|
||||
pub fn srand48_r(__seedval: ::libc::c_long,
|
||||
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
|
||||
pub fn seed48_r(__seed16v: [::libc::c_ushort, ..3u],
|
||||
pub fn seed48_r(__seed16v: [::libc::c_ushort; 3u],
|
||||
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
|
||||
pub fn lcong48_r(__param: [::libc::c_ushort, ..7u],
|
||||
pub fn lcong48_r(__param: [::libc::c_ushort; 7u],
|
||||
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
|
||||
pub fn malloc(__size: size_t) -> *mut ::libc::c_void;
|
||||
pub fn calloc(__nmemb: size_t, __size: size_t) -> *mut ::libc::c_void;
|
||||
|
|
|
@ -7,7 +7,7 @@ fn main() {
|
|||
let mut data_source =
|
||||
std::iter::iterate(0.0f32, |f| f + 0.03)
|
||||
.map(|angle| {
|
||||
use std::num::FloatMath;
|
||||
use std::num::Float;
|
||||
use std::num::Int;
|
||||
|
||||
let angle = angle.sin();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
extern crate "alsa-sys" as alsa;
|
||||
extern crate libc;
|
||||
|
||||
use std::{mem, ptr};
|
||||
use std::{ffi, iter, mem};
|
||||
|
||||
pub struct Voice {
|
||||
channel: *mut alsa::snd_pcm_t,
|
||||
|
@ -16,10 +16,10 @@ pub struct Buffer<'a, T> {
|
|||
impl Voice {
|
||||
pub fn new() -> Voice {
|
||||
unsafe {
|
||||
let name = "default".to_c_str();
|
||||
let name = ffi::CString::from_slice(b"default");
|
||||
|
||||
let mut playback_handle = mem::uninitialized();
|
||||
check_errors(alsa::snd_pcm_open(&mut playback_handle, name.as_ptr(), alsa::SND_PCM_STREAM_PLAYBACK, alsa::SND_PCM_NONBLOCK)).unwrap();
|
||||
check_errors(alsa::snd_pcm_open(&mut playback_handle, name.as_slice_with_nul().as_ptr(), alsa::SND_PCM_STREAM_PLAYBACK, alsa::SND_PCM_NONBLOCK)).unwrap();
|
||||
|
||||
let mut hw_params = mem::uninitialized();
|
||||
check_errors(alsa::snd_pcm_hw_params_malloc(&mut hw_params)).unwrap();
|
||||
|
@ -60,7 +60,7 @@ impl Voice {
|
|||
|
||||
Buffer {
|
||||
channel: self,
|
||||
buffer: Vec::from_elem(elements, unsafe { mem::uninitialized() })
|
||||
buffer: iter::repeat(unsafe { mem::uninitialized() }).take(elements).collect(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,12 +106,12 @@ impl<'a, T> Buffer<'a, T> {
|
|||
}
|
||||
|
||||
fn check_errors(err: libc::c_int) -> Result<(), String> {
|
||||
use std::c_str::CString;
|
||||
use std::ffi;
|
||||
|
||||
if err < 0 {
|
||||
unsafe {
|
||||
let s = CString::new(alsa::snd_strerror(err), false);
|
||||
return Err(s.to_string());
|
||||
let s = String::from_utf8(ffi::c_str_to_bytes(&alsa::snd_strerror(err)).to_vec());
|
||||
return Err(s.unwrap());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -47,8 +47,6 @@ a conversion on your data.
|
|||
If you have the possibility, you should try to match the format of the voice.
|
||||
|
||||
*/
|
||||
#![feature(associated_types)]
|
||||
#![feature(macro_rules)]
|
||||
#![feature(unsafe_destructor)]
|
||||
#![unstable]
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
extern crate libc;
|
||||
extern crate winapi;
|
||||
|
||||
use std::{mem, ptr};
|
||||
use std::c_vec::CVec;
|
||||
use std::{slice, mem, ptr};
|
||||
|
||||
// TODO: determine if should be NoSend or not
|
||||
pub struct Voice {
|
||||
|
@ -18,7 +17,8 @@ pub struct Voice {
|
|||
|
||||
pub struct Buffer<'a, T> {
|
||||
render_client: *mut winapi::IAudioRenderClient,
|
||||
buffer: CVec<T>,
|
||||
buffer_data: *mut T,
|
||||
buffer_len: uint,
|
||||
frames: winapi::UINT32,
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ impl Voice {
|
|||
assert!(frames_available != 0);
|
||||
|
||||
// loading buffer
|
||||
let buffer: CVec<T> = {
|
||||
let (buffer_data, buffer_len) = {
|
||||
let mut buffer: *mut winapi::BYTE = mem::uninitialized();
|
||||
let f = self.render_client.as_mut().unwrap().lpVtbl.as_ref().unwrap().GetBuffer;
|
||||
let hresult = f(self.render_client, frames_available,
|
||||
|
@ -75,14 +75,15 @@ impl Voice {
|
|||
check_result(hresult).unwrap();
|
||||
assert!(!buffer.is_null());
|
||||
|
||||
CVec::new(buffer as *mut T,
|
||||
(buffer as *mut T,
|
||||
frames_available as uint * self.bytes_per_frame as uint
|
||||
/ mem::size_of::<T>())
|
||||
};
|
||||
|
||||
let buffer = Buffer {
|
||||
render_client: self.render_client,
|
||||
buffer: buffer,
|
||||
buffer_data: buffer_data,
|
||||
buffer_len: buffer_len,
|
||||
frames: frames_available,
|
||||
};
|
||||
|
||||
|
@ -137,7 +138,9 @@ impl Drop for Voice {
|
|||
|
||||
impl<'a, T> Buffer<'a, T> {
|
||||
pub fn get_buffer<'b>(&'b mut self) -> &'b mut [T] {
|
||||
self.buffer.as_mut_slice()
|
||||
unsafe {
|
||||
slice::from_raw_mut_buf(&self.buffer_data, self.buffer_len)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn finish(self) {
|
||||
|
|
Loading…
Reference in New Issue