1
2
3
/* automatically generated by rust-bindgen */

# [ repr ( C ) ] # [ derive ( Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd ) ] pub struct __BindgenBitfieldUnit < Storage , Align > { storage : Storage , align : [ Align ; 0 ] , } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > { # [ inline ] pub const fn new ( storage : Storage ) -> Self { Self { storage , align : [ ] } } } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > where Storage : AsRef < [ u8 ] > + AsMut < [ u8 ] >, { # [ inline ] pub fn get_bit ( & self , index : usize ) -> bool { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = self . storage . as_ref ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [ inline ] pub fn set_bit ( & mut self , index : usize , val : bool ) { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [ inline ] pub fn get ( & self , bit_offset : usize , bit_width : u8 ) -> u64 { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; let mut val = 0 ; for i in 0 .. ( bit_width as usize ) { if self . get_bit ( i + bit_offset ) { let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [ inline ] pub fn set ( & mut self , bit_offset : usize , bit_width : u8 , val : u64 ) { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; for i in 0 .. ( bit_width as usize ) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; self . set_bit ( index + bit_offset , val_bit_is_set ) ; } } } pub const MA_TRUE : u32 = 1 ; pub const MA_FALSE : u32 = 0 ; pub const MA_SIZE_MAX : i32 = -1 ; pub const MA_SIMD_ALIGNMENT : u32 = 64 ; pub const MA_LOG_LEVEL_VERBOSE : u32 = 4 ; pub const MA_LOG_LEVEL_INFO : u32 = 3 ; pub const MA_LOG_LEVEL_WARNING : u32 = 2 ; pub const MA_LOG_LEVEL_ERROR : u32 = 1 ; pub const MA_LOG_LEVEL : u32 = 1 ; pub const MA_CHANNEL_NONE : u32 = 0 ; pub const MA_CHANNEL_MONO : u32 = 1 ; pub const MA_CHANNEL_FRONT_LEFT : u32 = 2 ; pub const MA_CHANNEL_FRONT_RIGHT : u32 = 3 ; pub const MA_CHANNEL_FRONT_CENTER : u32 = 4 ; pub const MA_CHANNEL_LFE : u32 = 5 ; pub const MA_CHANNEL_BACK_LEFT : u32 = 6 ; pub const MA_CHANNEL_BACK_RIGHT : u32 = 7 ; pub const MA_CHANNEL_FRONT_LEFT_CENTER : u32 = 8 ; pub const MA_CHANNEL_FRONT_RIGHT_CENTER : u32 = 9 ; pub const MA_CHANNEL_BACK_CENTER : u32 = 10 ; pub const MA_CHANNEL_SIDE_LEFT : u32 = 11 ; pub const MA_CHANNEL_SIDE_RIGHT : u32 = 12 ; pub const MA_CHANNEL_TOP_CENTER : u32 = 13 ; pub const MA_CHANNEL_TOP_FRONT_LEFT : u32 = 14 ; pub const MA_CHANNEL_TOP_FRONT_CENTER : u32 = 15 ; pub const MA_CHANNEL_TOP_FRONT_RIGHT : u32 = 16 ; pub const MA_CHANNEL_TOP_BACK_LEFT : u32 = 17 ; pub const MA_CHANNEL_TOP_BACK_CENTER : u32 = 18 ; pub const MA_CHANNEL_TOP_BACK_RIGHT : u32 = 19 ; pub const MA_CHANNEL_AUX_0 : u32 = 20 ; pub const MA_CHANNEL_AUX_1 : u32 = 21 ; pub const MA_CHANNEL_AUX_2 : u32 = 22 ; pub const MA_CHANNEL_AUX_3 : u32 = 23 ; pub const MA_CHANNEL_AUX_4 : u32 = 24 ; pub const MA_CHANNEL_AUX_5 : u32 = 25 ; pub const MA_CHANNEL_AUX_6 : u32 = 26 ; pub const MA_CHANNEL_AUX_7 : u32 = 27 ; pub const MA_CHANNEL_AUX_8 : u32 = 28 ; pub const MA_CHANNEL_AUX_9 : u32 = 29 ; pub const MA_CHANNEL_AUX_10 : u32 = 30 ; pub const MA_CHANNEL_AUX_11 : u32 = 31 ; pub const MA_CHANNEL_AUX_12 : u32 = 32 ; pub const MA_CHANNEL_AUX_13 : u32 = 33 ; pub const MA_CHANNEL_AUX_14 : u32 = 34 ; pub const MA_CHANNEL_AUX_15 : u32 = 35 ; pub const MA_CHANNEL_AUX_16 : u32 = 36 ; pub const MA_CHANNEL_AUX_17 : u32 = 37 ; pub const MA_CHANNEL_AUX_18 : u32 = 38 ; pub const MA_CHANNEL_AUX_19 : u32 = 39 ; pub const MA_CHANNEL_AUX_20 : u32 = 40 ; pub const MA_CHANNEL_AUX_21 : u32 = 41 ; pub const MA_CHANNEL_AUX_22 : u32 = 42 ; pub const MA_CHANNEL_AUX_23 : u32 = 43 ; pub const MA_CHANNEL_AUX_24 : u32 = 44 ; pub const MA_CHANNEL_AUX_25 : u32 = 45 ; pub const MA_CHANNEL_AUX_26 : u32 = 46 ; pub const MA_CHANNEL_AUX_27 : u32 = 47 ; pub const MA_CHANNEL_AUX_28 : u32 = 48 ; pub const MA_CHANNEL_AUX_29 : u32 = 49 ; pub const MA_CHANNEL_AUX_30 : u32 = 50 ; pub const MA_CHANNEL_AUX_31 : u32 = 51 ; pub const MA_CHANNEL_LEFT : u32 = 2 ; pub const MA_CHANNEL_RIGHT : u32 = 3 ; pub const MA_CHANNEL_POSITION_COUNT : u32 = 52 ; pub const MA_SUCCESS : u32 = 0 ; pub const MA_ERROR : i32 = -1 ; pub const MA_INVALID_ARGS : i32 = -2 ; pub const MA_INVALID_OPERATION : i32 = -3 ; pub const MA_OUT_OF_MEMORY : i32 = -4 ; pub const MA_ACCESS_DENIED : i32 = -5 ; pub const MA_TOO_LARGE : i32 = -6 ; pub const MA_TIMEOUT : i32 = -7 ; pub const MA_FORMAT_NOT_SUPPORTED : i32 = -100 ; pub const MA_DEVICE_TYPE_NOT_SUPPORTED : i32 = -101 ; pub const MA_SHARE_MODE_NOT_SUPPORTED : i32 = -102 ; pub const MA_NO_BACKEND : i32 = -103 ; pub const MA_NO_DEVICE : i32 = -104 ; pub const MA_API_NOT_FOUND : i32 = -105 ; pub const MA_INVALID_DEVICE_CONFIG : i32 = -106 ; pub const MA_DEVICE_BUSY : i32 = -200 ; pub const MA_DEVICE_NOT_INITIALIZED : i32 = -201 ; pub const MA_DEVICE_NOT_STARTED : i32 = -202 ; pub const MA_DEVICE_UNAVAILABLE : i32 = -203 ; pub const MA_FAILED_TO_MAP_DEVICE_BUFFER : i32 = -300 ; pub const MA_FAILED_TO_UNMAP_DEVICE_BUFFER : i32 = -301 ; pub const MA_FAILED_TO_INIT_BACKEND : i32 = -302 ; pub const MA_FAILED_TO_READ_DATA_FROM_CLIENT : i32 = -303 ; pub const MA_FAILED_TO_READ_DATA_FROM_DEVICE : i32 = -304 ; pub const MA_FAILED_TO_SEND_DATA_TO_CLIENT : i32 = -305 ; pub const MA_FAILED_TO_SEND_DATA_TO_DEVICE : i32 = -306 ; pub const MA_FAILED_TO_OPEN_BACKEND_DEVICE : i32 = -307 ; pub const MA_FAILED_TO_START_BACKEND_DEVICE : i32 = -308 ; pub const MA_FAILED_TO_STOP_BACKEND_DEVICE : i32 = -309 ; pub const MA_FAILED_TO_CONFIGURE_BACKEND_DEVICE : i32 = -310 ; pub const MA_FAILED_TO_CREATE_MUTEX : i32 = -311 ; pub const MA_FAILED_TO_CREATE_EVENT : i32 = -312 ; pub const MA_FAILED_TO_CREATE_SEMAPHORE : i32 = -313 ; pub const MA_FAILED_TO_CREATE_THREAD : i32 = -314 ; pub const MA_SAMPLE_RATE_8000 : u32 = 8000 ; pub const MA_SAMPLE_RATE_11025 : u32 = 11025 ; pub const MA_SAMPLE_RATE_16000 : u32 = 16000 ; pub const MA_SAMPLE_RATE_22050 : u32 = 22050 ; pub const MA_SAMPLE_RATE_24000 : u32 = 24000 ; pub const MA_SAMPLE_RATE_32000 : u32 = 32000 ; pub const MA_SAMPLE_RATE_44100 : u32 = 44100 ; pub const MA_SAMPLE_RATE_48000 : u32 = 48000 ; pub const MA_SAMPLE_RATE_88200 : u32 = 88200 ; pub const MA_SAMPLE_RATE_96000 : u32 = 96000 ; pub const MA_SAMPLE_RATE_176400 : u32 = 176400 ; pub const MA_SAMPLE_RATE_192000 : u32 = 192000 ; pub const MA_SAMPLE_RATE_352800 : u32 = 352800 ; pub const MA_SAMPLE_RATE_384000 : u32 = 384000 ; pub const MA_MIN_PCM_SAMPLE_SIZE_IN_BYTES : u32 = 1 ; pub const MA_MAX_PCM_SAMPLE_SIZE_IN_BYTES : u32 = 8 ; pub const MA_MIN_CHANNELS : u32 = 1 ; pub const MA_MAX_CHANNELS : u32 = 32 ; pub const MA_MIN_SAMPLE_RATE : u32 = 8000 ; pub const MA_MAX_SAMPLE_RATE : u32 = 384000 ; pub const MA_SRC_SINC_MIN_WINDOW_WIDTH : u32 = 2 ; pub const MA_SRC_SINC_MAX_WINDOW_WIDTH : u32 = 32 ; pub const MA_SRC_SINC_DEFAULT_WINDOW_WIDTH : u32 = 32 ; pub const MA_SRC_SINC_LOOKUP_TABLE_RESOLUTION : u32 = 8 ; pub const MA_SRC_INPUT_BUFFER_SIZE_IN_SAMPLES : u32 = 256 ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __int16_t = :: std :: os :: raw :: c_short ; pub type __int32_t = :: std :: os :: raw :: c_int ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __int64_t = :: std :: os :: raw :: c_long ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_internal_list { pub __prev : * mut __pthread_internal_list , pub __next : * mut __pthread_internal_list , } # [ test ] fn bindgen_test_layout___pthread_internal_list ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_internal_list > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_internal_list > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __prev as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __prev ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __next as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __next ) ) ) ; } pub type __pthread_list_t = __pthread_internal_list ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_mutex_s { pub __lock : :: std :: os :: raw :: c_int , pub __count : :: std :: os :: raw :: c_uint , pub __owner : :: std :: os :: raw :: c_int , pub __nusers : :: std :: os :: raw :: c_uint , pub __kind : :: std :: os :: raw :: c_int , pub __spins : :: std :: os :: raw :: c_short , pub __elision : :: std :: os :: raw :: c_short , pub __list : __pthread_list_t , } # [ test ] fn bindgen_test_layout___pthread_mutex_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_mutex_s > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_mutex_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __lock as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __count as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __owner as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __owner ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __nusers as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __nusers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __kind as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __kind ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __spins as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __spins ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __elision as * const _ as usize } , 22usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __elision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __list as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __list ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_cond_s { pub __bindgen_anon_1 : __pthread_cond_s__bindgen_ty_1 , pub __bindgen_anon_2 : __pthread_cond_s__bindgen_ty_2 , pub __g_refs : [ :: std :: os :: raw :: c_uint ; 2usize ] , pub __g_size : [ :: std :: os :: raw :: c_uint ; 2usize ] , pub __g1_orig_size : :: std :: os :: raw :: c_uint , pub __wrefs : :: std :: os :: raw :: c_uint , pub __g_signals : [ :: std :: os :: raw :: c_uint ; 2usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_1 { pub __wseq : :: std :: os :: raw :: c_ulonglong , pub __wseq32 : __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { pub __low : :: std :: os :: raw :: c_uint , pub __high : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq32 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_2 { pub __g1_start : :: std :: os :: raw :: c_ulonglong , pub __g1_start32 : __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { pub __low : :: std :: os :: raw :: c_uint , pub __high : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start32 ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_refs as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_refs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g1_orig_size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g1_orig_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __wrefs as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __wrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_signals as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_signals ) ) ) ; } pub type pthread_t = :: std :: os :: raw :: c_ulong ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_mutex_t { pub __data : __pthread_mutex_s , pub __size : [ :: std :: os :: raw :: c_char ; 40usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : [ u64 ; 5usize ] , } # [ test ] fn bindgen_test_layout_pthread_mutex_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_mutex_t > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_mutex_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_cond_t { pub __data : __pthread_cond_s , pub __size : [ :: std :: os :: raw :: c_char ; 48usize ] , pub __align : :: std :: os :: raw :: c_longlong , _bindgen_union_align : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_pthread_cond_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_cond_t > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_cond_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __align ) ) ) ; } pub type wchar_t = :: std :: os :: raw :: c_int ; pub type ma_uint8 = u8 ; pub type ma_int16 = i16 ; pub type ma_int32 = i32 ; pub type ma_uint32 = u32 ; pub type ma_int64 = i64 ; pub type ma_uint64 = u64 ; pub type ma_bool32 = ma_uint32 ; pub type ma_handle = * mut :: std :: os :: raw :: c_void ; pub type ma_ptr = * mut :: std :: os :: raw :: c_void ; pub type ma_proc = :: std :: option :: Option < unsafe extern "C" fn ( ) > ; pub type ma_channel = ma_uint8 ; pub type ma_result = :: std :: os :: raw :: c_int ; pub const ma_stream_format_ma_stream_format_pcm : ma_stream_format = 0 ; pub type ma_stream_format = u32 ; pub const ma_stream_layout_ma_stream_layout_interleaved : ma_stream_layout = 0 ; pub const ma_stream_layout_ma_stream_layout_deinterleaved : ma_stream_layout = 1 ; pub type ma_stream_layout = u32 ; pub const ma_dither_mode_ma_dither_mode_none : ma_dither_mode = 0 ; pub const ma_dither_mode_ma_dither_mode_rectangle : ma_dither_mode = 1 ; pub const ma_dither_mode_ma_dither_mode_triangle : ma_dither_mode = 2 ; pub type ma_dither_mode = u32 ; pub const ma_format_ma_format_unknown : ma_format = 0 ; pub const ma_format_ma_format_u8 : ma_format = 1 ; pub const ma_format_ma_format_s16 : ma_format = 2 ; pub const ma_format_ma_format_s24 : ma_format = 3 ; pub const ma_format_ma_format_s32 : ma_format = 4 ; pub const ma_format_ma_format_f32 : ma_format = 5 ; pub const ma_format_ma_format_count : ma_format = 6 ; pub type ma_format = u32 ; pub const ma_channel_mix_mode_ma_channel_mix_mode_rectangular : ma_channel_mix_mode = 0 ; pub const ma_channel_mix_mode_ma_channel_mix_mode_simple : ma_channel_mix_mode = 1 ; pub const ma_channel_mix_mode_ma_channel_mix_mode_custom_weights : ma_channel_mix_mode = 2 ; pub const ma_channel_mix_mode_ma_channel_mix_mode_planar_blend : ma_channel_mix_mode = 0 ; pub const ma_channel_mix_mode_ma_channel_mix_mode_default : ma_channel_mix_mode = 0 ; pub type ma_channel_mix_mode = u32 ; pub const ma_standard_channel_map_ma_standard_channel_map_microsoft : ma_standard_channel_map = 0 ; pub const ma_standard_channel_map_ma_standard_channel_map_alsa : ma_standard_channel_map = 1 ; pub const ma_standard_channel_map_ma_standard_channel_map_rfc3551 : ma_standard_channel_map = 2 ; pub const ma_standard_channel_map_ma_standard_channel_map_flac : ma_standard_channel_map = 3 ; pub const ma_standard_channel_map_ma_standard_channel_map_vorbis : ma_standard_channel_map = 4 ; pub const ma_standard_channel_map_ma_standard_channel_map_sound4 : ma_standard_channel_map = 5 ; pub const ma_standard_channel_map_ma_standard_channel_map_sndio : ma_standard_channel_map = 6 ; pub const ma_standard_channel_map_ma_standard_channel_map_webaudio : ma_standard_channel_map = 3 ; pub const ma_standard_channel_map_ma_standard_channel_map_default : ma_standard_channel_map = 0 ; pub type ma_standard_channel_map = u32 ; pub const ma_performance_profile_ma_performance_profile_low_latency : ma_performance_profile = 0 ; pub const ma_performance_profile_ma_performance_profile_conservative : ma_performance_profile = 1 ; pub type ma_performance_profile = u32 ; pub type ma_format_converter_read_proc = :: std :: option :: Option < unsafe extern "C" fn ( pConverter : * mut ma_format_converter , frameCount : ma_uint32 , pFramesOut : * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint32 > ; pub type ma_format_converter_read_deinterleaved_proc = :: std :: option :: Option < unsafe extern "C" fn ( pConverter : * mut ma_format_converter , frameCount : ma_uint32 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint32 > ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_format_converter_config { pub formatIn : ma_format , pub formatOut : ma_format , pub channels : ma_uint32 , pub streamFormatIn : ma_stream_format , pub streamFormatOut : ma_stream_format , pub ditherMode : ma_dither_mode , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onRead : ma_format_converter_read_proc , pub onReadDeinterleaved : ma_format_converter_read_deinterleaved_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_ma_format_converter_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_format_converter_config > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ma_format_converter_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_format_converter_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_format_converter_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . formatIn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( formatIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . formatOut as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( formatOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . channels as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . streamFormatIn as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( streamFormatIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . streamFormatOut as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( streamFormatOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . ditherMode as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( ditherMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . onRead as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( onRead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . onReadDeinterleaved as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( onReadDeinterleaved ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter_config > ( ) ) ) . pUserData as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter_config ) , "::" , stringify ! ( pUserData ) ) ) ; } impl ma_format_converter_config { # [ inline ] pub fn noSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( noSSE2 : ma_bool32 , noAVX2 : ma_bool32 , noAVX512 : ma_bool32 , noNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let noSSE2 : u32 = unsafe { :: std :: mem :: transmute ( noSSE2 ) } ; noSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let noAVX2 : u32 = unsafe { :: std :: mem :: transmute ( noAVX2 ) } ; noAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let noAVX512 : u32 = unsafe { :: std :: mem :: transmute ( noAVX512 ) } ; noAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let noNEON : u32 = unsafe { :: std :: mem :: transmute ( noNEON ) } ; noNEON as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_format_converter { pub config : ma_format_converter_config , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onConvertPCM : :: std :: option :: Option < unsafe extern "C" fn ( dst : * mut :: std :: os :: raw :: c_void , src : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) > , pub onInterleavePCM : :: std :: option :: Option < unsafe extern "C" fn ( dst : * mut :: std :: os :: raw :: c_void , src : * mut * const :: std :: os :: raw :: c_void , frameCount : ma_uint64 , channels : ma_uint32 ) > , pub onDeinterleavePCM : :: std :: option :: Option < unsafe extern "C" fn ( dst : * mut * mut :: std :: os :: raw :: c_void , src : * const :: std :: os :: raw :: c_void , frameCount : ma_uint64 , channels : ma_uint32 ) > , } # [ test ] fn bindgen_test_layout_ma_format_converter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_format_converter > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( ma_format_converter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_format_converter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_format_converter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter > ( ) ) ) . config as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter ) , "::" , stringify ! ( config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter > ( ) ) ) . onConvertPCM as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter ) , "::" , stringify ! ( onConvertPCM ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter > ( ) ) ) . onInterleavePCM as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter ) , "::" , stringify ! ( onInterleavePCM ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_format_converter > ( ) ) ) . onDeinterleavePCM as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_format_converter ) , "::" , stringify ! ( onDeinterleavePCM ) ) ) ; } impl ma_format_converter { # [ inline ] pub fn useSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( useSSE2 : ma_bool32 , useAVX2 : ma_bool32 , useAVX512 : ma_bool32 , useNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let useSSE2 : u32 = unsafe { :: std :: mem :: transmute ( useSSE2 ) } ; useSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let useAVX2 : u32 = unsafe { :: std :: mem :: transmute ( useAVX2 ) } ; useAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let useAVX512 : u32 = unsafe { :: std :: mem :: transmute ( useAVX512 ) } ; useAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let useNEON : u32 = unsafe { :: std :: mem :: transmute ( useNEON ) } ; useNEON as u64 } ) ; __bindgen_bitfield_unit } } pub type ma_channel_router_read_deinterleaved_proc = :: std :: option :: Option < unsafe extern "C" fn ( pRouter : * mut ma_channel_router , frameCount : ma_uint32 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint32 > ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_channel_router_config { pub channelsIn : ma_uint32 , pub channelsOut : ma_uint32 , pub channelMapIn : [ ma_channel ; 32usize ] , pub channelMapOut : [ ma_channel ; 32usize ] , pub mixingMode : ma_channel_mix_mode , pub weights : [ [ f32 ; 32usize ] ; 32usize ] , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onReadDeinterleaved : ma_channel_router_read_deinterleaved_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_ma_channel_router_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_channel_router_config > ( ) , 4192usize , concat ! ( "Size of: " , stringify ! ( ma_channel_router_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_channel_router_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_channel_router_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . channelsIn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( channelsIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . channelsOut as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( channelsOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . channelMapIn as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( channelMapIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . channelMapOut as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( channelMapOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . mixingMode as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( mixingMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . weights as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( weights ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . onReadDeinterleaved as * const _ as usize } , 4176usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( onReadDeinterleaved ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router_config > ( ) ) ) . pUserData as * const _ as usize } , 4184usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router_config ) , "::" , stringify ! ( pUserData ) ) ) ; } impl ma_channel_router_config { # [ inline ] pub fn noSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( noSSE2 : ma_bool32 , noAVX2 : ma_bool32 , noAVX512 : ma_bool32 , noNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let noSSE2 : u32 = unsafe { :: std :: mem :: transmute ( noSSE2 ) } ; noSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let noAVX2 : u32 = unsafe { :: std :: mem :: transmute ( noAVX2 ) } ; noAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let noAVX512 : u32 = unsafe { :: std :: mem :: transmute ( noAVX512 ) } ; noAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let noNEON : u32 = unsafe { :: std :: mem :: transmute ( noNEON ) } ; noNEON as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_channel_router { pub config : ma_channel_router_config , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub shuffleTable : [ ma_uint8 ; 32usize ] , } # [ test ] fn bindgen_test_layout_ma_channel_router ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_channel_router > ( ) , 4232usize , concat ! ( "Size of: " , stringify ! ( ma_channel_router ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_channel_router > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_channel_router ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router > ( ) ) ) . config as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router ) , "::" , stringify ! ( config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_channel_router > ( ) ) ) . shuffleTable as * const _ as usize } , 4193usize , concat ! ( "Offset of field: " , stringify ! ( ma_channel_router ) , "::" , stringify ! ( shuffleTable ) ) ) ; } impl ma_channel_router { # [ inline ] pub fn isPassthrough ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isPassthrough ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isSimpleShuffle ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isSimpleShuffle ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isSimpleMonoExpansion ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isSimpleMonoExpansion ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isStereoToMono ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isStereoToMono ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 5usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 5usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 6usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 6usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 7usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 7usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( isPassthrough : ma_bool32 , isSimpleShuffle : ma_bool32 , isSimpleMonoExpansion : ma_bool32 , isStereoToMono : ma_bool32 , useSSE2 : ma_bool32 , useAVX2 : ma_bool32 , useAVX512 : ma_bool32 , useNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let isPassthrough : u32 = unsafe { :: std :: mem :: transmute ( isPassthrough ) } ; isPassthrough as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let isSimpleShuffle : u32 = unsafe { :: std :: mem :: transmute ( isSimpleShuffle ) } ; isSimpleShuffle as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let isSimpleMonoExpansion : u32 = unsafe { :: std :: mem :: transmute ( isSimpleMonoExpansion ) } ; isSimpleMonoExpansion as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let isStereoToMono : u32 = unsafe { :: std :: mem :: transmute ( isStereoToMono ) } ; isStereoToMono as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let useSSE2 : u32 = unsafe { :: std :: mem :: transmute ( useSSE2 ) } ; useSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 5usize , 1u8 , { let useAVX2 : u32 = unsafe { :: std :: mem :: transmute ( useAVX2 ) } ; useAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 6usize , 1u8 , { let useAVX512 : u32 = unsafe { :: std :: mem :: transmute ( useAVX512 ) } ; useAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 7usize , 1u8 , { let useNEON : u32 = unsafe { :: std :: mem :: transmute ( useNEON ) } ; useNEON as u64 } ) ; __bindgen_bitfield_unit } } pub type ma_src_read_deinterleaved_proc = :: std :: option :: Option < unsafe extern "C" fn ( pSRC : * mut ma_src , frameCount : ma_uint32 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint32 > ; pub const ma_src_algorithm_ma_src_algorithm_linear : ma_src_algorithm = 0 ; pub const ma_src_algorithm_ma_src_algorithm_sinc : ma_src_algorithm = 1 ; pub const ma_src_algorithm_ma_src_algorithm_none : ma_src_algorithm = 2 ; pub const ma_src_algorithm_ma_src_algorithm_default : ma_src_algorithm = 0 ; pub type ma_src_algorithm = u32 ; pub const ma_src_sinc_window_function_ma_src_sinc_window_function_hann : ma_src_sinc_window_function = 0 ; pub const ma_src_sinc_window_function_ma_src_sinc_window_function_rectangular : ma_src_sinc_window_function = 1 ; pub const ma_src_sinc_window_function_ma_src_sinc_window_function_default : ma_src_sinc_window_function = 0 ; pub type ma_src_sinc_window_function = u32 ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_src_config_sinc { pub windowFunction : ma_src_sinc_window_function , pub windowWidth : ma_uint32 , } # [ test ] fn bindgen_test_layout_ma_src_config_sinc ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src_config_sinc > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_src_config_sinc ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src_config_sinc > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_src_config_sinc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config_sinc > ( ) ) ) . windowFunction as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config_sinc ) , "::" , stringify ! ( windowFunction ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config_sinc > ( ) ) ) . windowWidth as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config_sinc ) , "::" , stringify ! ( windowWidth ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_src_config { pub sampleRateIn : ma_uint32 , pub sampleRateOut : ma_uint32 , pub channels : ma_uint32 , pub algorithm : ma_src_algorithm , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onReadDeinterleaved : ma_src_read_deinterleaved_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub sinc : ma_src_config_sinc , } # [ test ] fn bindgen_test_layout_ma_src_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src_config > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( ma_src_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_src_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . sampleRateIn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( sampleRateIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . sampleRateOut as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( sampleRateOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . channels as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . algorithm as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( algorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . onReadDeinterleaved as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( onReadDeinterleaved ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . pUserData as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src_config > ( ) ) ) . sinc as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_src_config ) , "::" , stringify ! ( sinc ) ) ) ; } impl ma_src_config { # [ inline ] pub fn neverConsumeEndOfInput ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_neverConsumeEndOfInput ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( neverConsumeEndOfInput : ma_bool32 , noSSE2 : ma_bool32 , noAVX2 : ma_bool32 , noAVX512 : ma_bool32 , noNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let neverConsumeEndOfInput : u32 = unsafe { :: std :: mem :: transmute ( neverConsumeEndOfInput ) } ; neverConsumeEndOfInput as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let noSSE2 : u32 = unsafe { :: std :: mem :: transmute ( noSSE2 ) } ; noSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let noAVX2 : u32 = unsafe { :: std :: mem :: transmute ( noAVX2 ) } ; noAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let noAVX512 : u32 = unsafe { :: std :: mem :: transmute ( noAVX512 ) } ; noAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let noNEON : u32 = unsafe { :: std :: mem :: transmute ( noNEON ) } ; noNEON as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_src { pub __bindgen_anon_1 : ma_src__bindgen_ty_1 , pub config : ma_src_config , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 15usize ] , } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub union ma_src__bindgen_ty_1 { pub linear : ma_src__bindgen_ty_1__bindgen_ty_1 , pub sinc : ma_src__bindgen_ty_1__bindgen_ty_2 , _bindgen_union_align : [ u8 ; 42048usize ] , } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_src__bindgen_ty_1__bindgen_ty_1 { pub input : [ [ f32 ; 256usize ] ; 32usize ] , pub timeIn : f32 , pub leftoverFrames : ma_uint32 , pub __bindgen_padding_0 : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_ma_src__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src__bindgen_ty_1__bindgen_ty_1 > ( ) , 32832usize , concat ! ( "Size of: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src__bindgen_ty_1__bindgen_ty_1 > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . input as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( input ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . timeIn as * const _ as usize } , 32768usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( timeIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . leftoverFrames as * const _ as usize } , 32772usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( leftoverFrames ) ) ) ; } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_src__bindgen_ty_1__bindgen_ty_2 { pub input : [ [ f32 ; 320usize ] ; 32usize ] , pub timeIn : f32 , pub inputFrameCount : ma_uint32 , pub windowPosInSamples : ma_uint32 , pub table : [ f32 ; 256usize ] , pub __bindgen_padding_0 : [ u32 ; 13usize ] , } # [ test ] fn bindgen_test_layout_ma_src__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) , 42048usize , concat ! ( "Size of: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . input as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( input ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . timeIn as * const _ as usize } , 40960usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( timeIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . inputFrameCount as * const _ as usize } , 40964usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( inputFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . windowPosInSamples as * const _ as usize } , 40968usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( windowPosInSamples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . table as * const _ as usize } , 40972usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( table ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_src__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src__bindgen_ty_1 > ( ) , 42048usize , concat ! ( "Size of: " , stringify ! ( ma_src__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src__bindgen_ty_1 > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_src__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1 > ( ) ) ) . linear as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1 ) , "::" , stringify ! ( linear ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src__bindgen_ty_1 > ( ) ) ) . sinc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_src__bindgen_ty_1 ) , "::" , stringify ! ( sinc ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_src ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_src > ( ) , 42112usize , concat ! ( "Size of: " , stringify ! ( ma_src ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_src > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_src ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_src > ( ) ) ) . config as * const _ as usize } , 42048usize , concat ! ( "Offset of field: " , stringify ! ( ma_src ) , "::" , stringify ! ( config ) ) ) ; } impl ma_src { # [ inline ] pub fn isEndOfInputLoaded ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isEndOfInputLoaded ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn useNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_useNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( isEndOfInputLoaded : ma_bool32 , useSSE2 : ma_bool32 , useAVX2 : ma_bool32 , useAVX512 : ma_bool32 , useNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let isEndOfInputLoaded : u32 = unsafe { :: std :: mem :: transmute ( isEndOfInputLoaded ) } ; isEndOfInputLoaded as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let useSSE2 : u32 = unsafe { :: std :: mem :: transmute ( useSSE2 ) } ; useSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let useAVX2 : u32 = unsafe { :: std :: mem :: transmute ( useAVX2 ) } ; useAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let useAVX512 : u32 = unsafe { :: std :: mem :: transmute ( useAVX512 ) } ; useAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let useNEON : u32 = unsafe { :: std :: mem :: transmute ( useNEON ) } ; useNEON as u64 } ) ; __bindgen_bitfield_unit } } pub type ma_pcm_converter_read_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDSP : * mut ma_pcm_converter , pFramesOut : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint32 , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint32 > ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_pcm_converter_config { pub formatIn : ma_format , pub channelsIn : ma_uint32 , pub sampleRateIn : ma_uint32 , pub channelMapIn : [ ma_channel ; 32usize ] , pub formatOut : ma_format , pub channelsOut : ma_uint32 , pub sampleRateOut : ma_uint32 , pub channelMapOut : [ ma_channel ; 32usize ] , pub channelMixMode : ma_channel_mix_mode , pub ditherMode : ma_dither_mode , pub srcAlgorithm : ma_src_algorithm , pub allowDynamicSampleRate : ma_bool32 , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onRead : ma_pcm_converter_read_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub __bindgen_anon_1 : ma_pcm_converter_config__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_pcm_converter_config__bindgen_ty_1 { pub sinc : ma_src_config_sinc , _bindgen_union_align : [ u32 ; 2usize ] , } # [ test ] fn bindgen_test_layout_ma_pcm_converter_config__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_pcm_converter_config__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_pcm_converter_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_pcm_converter_config__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_pcm_converter_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config__bindgen_ty_1 > ( ) ) ) . sinc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config__bindgen_ty_1 ) , "::" , stringify ! ( sinc ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_pcm_converter_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_pcm_converter_config > ( ) , 136usize , concat ! ( "Size of: " , stringify ! ( ma_pcm_converter_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_pcm_converter_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_pcm_converter_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . formatIn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( formatIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . channelsIn as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( channelsIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . sampleRateIn as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( sampleRateIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . channelMapIn as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( channelMapIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . formatOut as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( formatOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . channelsOut as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( channelsOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . sampleRateOut as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( sampleRateOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . channelMapOut as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( channelMapOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . channelMixMode as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( channelMixMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . ditherMode as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( ditherMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . srcAlgorithm as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( srcAlgorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . allowDynamicSampleRate as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( allowDynamicSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . onRead as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( onRead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter_config > ( ) ) ) . pUserData as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter_config ) , "::" , stringify ! ( pUserData ) ) ) ; } impl ma_pcm_converter_config { # [ inline ] pub fn neverConsumeEndOfInput ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_neverConsumeEndOfInput ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noSSE2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noSSE2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX2 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX2 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noAVX512 ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noAVX512 ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noNEON ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noNEON ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( neverConsumeEndOfInput : ma_bool32 , noSSE2 : ma_bool32 , noAVX2 : ma_bool32 , noAVX512 : ma_bool32 , noNEON : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let neverConsumeEndOfInput : u32 = unsafe { :: std :: mem :: transmute ( neverConsumeEndOfInput ) } ; neverConsumeEndOfInput as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let noSSE2 : u32 = unsafe { :: std :: mem :: transmute ( noSSE2 ) } ; noSSE2 as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let noAVX2 : u32 = unsafe { :: std :: mem :: transmute ( noAVX2 ) } ; noAVX2 as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let noAVX512 : u32 = unsafe { :: std :: mem :: transmute ( noAVX512 ) } ; noAVX512 as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let noNEON : u32 = unsafe { :: std :: mem :: transmute ( noNEON ) } ; noNEON as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_pcm_converter { pub onRead : ma_pcm_converter_read_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub formatConverterIn : ma_format_converter , pub formatConverterOut : ma_format_converter , pub channelRouter : ma_channel_router , pub __bindgen_padding_0 : [ u64 ; 7usize ] , pub src : ma_src , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_1 : [ u8 ; 63usize ] , } # [ test ] fn bindgen_test_layout_ma_pcm_converter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_pcm_converter > ( ) , 46656usize , concat ! ( "Size of: " , stringify ! ( ma_pcm_converter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_pcm_converter > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_pcm_converter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . onRead as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( onRead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . pUserData as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . formatConverterIn as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( formatConverterIn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . formatConverterOut as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( formatConverterOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . channelRouter as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( channelRouter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_converter > ( ) ) ) . src as * const _ as usize } , 4480usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_converter ) , "::" , stringify ! ( src ) ) ) ; } impl ma_pcm_converter { # [ inline ] pub fn isDynamicSampleRateAllowed ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isDynamicSampleRateAllowed ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isPreFormatConversionRequired ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isPreFormatConversionRequired ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isPostFormatConversionRequired ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isPostFormatConversionRequired ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isChannelRoutingRequired ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isChannelRoutingRequired ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isSRCRequired ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isSRCRequired ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isChannelRoutingAtStart ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 5usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isChannelRoutingAtStart ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 5usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isPassthrough ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 6usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isPassthrough ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 6usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( isDynamicSampleRateAllowed : ma_bool32 , isPreFormatConversionRequired : ma_bool32 , isPostFormatConversionRequired : ma_bool32 , isChannelRoutingRequired : ma_bool32 , isSRCRequired : ma_bool32 , isChannelRoutingAtStart : ma_bool32 , isPassthrough : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let isDynamicSampleRateAllowed : u32 = unsafe { :: std :: mem :: transmute ( isDynamicSampleRateAllowed ) } ; isDynamicSampleRateAllowed as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let isPreFormatConversionRequired : u32 = unsafe { :: std :: mem :: transmute ( isPreFormatConversionRequired ) } ; isPreFormatConversionRequired as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let isPostFormatConversionRequired : u32 = unsafe { :: std :: mem :: transmute ( isPostFormatConversionRequired ) } ; isPostFormatConversionRequired as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let isChannelRoutingRequired : u32 = unsafe { :: std :: mem :: transmute ( isChannelRoutingRequired ) } ; isChannelRoutingRequired as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let isSRCRequired : u32 = unsafe { :: std :: mem :: transmute ( isSRCRequired ) } ; isSRCRequired as u64 } ) ; __bindgen_bitfield_unit . set ( 5usize , 1u8 , { let isChannelRoutingAtStart : u32 = unsafe { :: std :: mem :: transmute ( isChannelRoutingAtStart ) } ; isChannelRoutingAtStart as u64 } ) ; __bindgen_bitfield_unit . set ( 6usize , 1u8 , { let isPassthrough : u32 = unsafe { :: std :: mem :: transmute ( isPassthrough ) } ; isPassthrough as u64 } ) ; __bindgen_bitfield_unit } } extern "C" { # [ doc = "Channel Maps" ] # [ doc = "============" ] # [ doc = "" ] # [ doc = "Below is the channel map used by ma_standard_channel_map_default:" ] # [ doc = "" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| Channel Count | Mapping                      |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 1 (Mono)      | 0: MA_CHANNEL_MONO           |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 2 (Stereo)    | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 3             | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 4 (Surround)  | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|               | 3: MA_CHANNEL_BACK_CENTER    |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 5             | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|               | 3: MA_CHANNEL_BACK_LEFT      |" ] # [ doc = "|               | 4: MA_CHANNEL_BACK_RIGHT     |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 6 (5.1)       | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|               | 3: MA_CHANNEL_LFE            |" ] # [ doc = "|               | 4: MA_CHANNEL_SIDE_LEFT      |" ] # [ doc = "|               | 5: MA_CHANNEL_SIDE_RIGHT     |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 7             | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|               | 3: MA_CHANNEL_LFE            |" ] # [ doc = "|               | 4: MA_CHANNEL_BACK_CENTER    |" ] # [ doc = "|               | 4: MA_CHANNEL_SIDE_LEFT      |" ] # [ doc = "|               | 5: MA_CHANNEL_SIDE_RIGHT     |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| 8 (7.1)       | 0: MA_CHANNEL_FRONT_LEFT     |" ] # [ doc = "|               | 1: MA_CHANNEL_FRONT_RIGHT    |" ] # [ doc = "|               | 2: MA_CHANNEL_FRONT_CENTER   |" ] # [ doc = "|               | 3: MA_CHANNEL_LFE            |" ] # [ doc = "|               | 4: MA_CHANNEL_BACK_LEFT      |" ] # [ doc = "|               | 5: MA_CHANNEL_BACK_RIGHT     |" ] # [ doc = "|               | 6: MA_CHANNEL_SIDE_LEFT      |" ] # [ doc = "|               | 7: MA_CHANNEL_SIDE_RIGHT     |" ] # [ doc = "|---------------|------------------------------|" ] # [ doc = "| Other         | All channels set to 0. This  |" ] # [ doc = "|               | is equivalent to the same    |" ] # [ doc = "|               | mapping as the device.       |" ] # [ doc = "|---------------|------------------------------|" ] pub fn ma_get_standard_channel_map ( standardChannelMap : ma_standard_channel_map , channels : ma_uint32 , channelMap : * mut ma_channel ) ; } extern "C" { pub fn ma_channel_map_copy ( pOut : * mut ma_channel , pIn : * const ma_channel , channels : ma_uint32 ) ; } extern "C" { pub fn ma_channel_map_valid ( channels : ma_uint32 , channelMap : * const ma_channel ) -> ma_bool32 ; } extern "C" { pub fn ma_channel_map_equal ( channels : ma_uint32 , channelMapA : * const ma_channel , channelMapB : * const ma_channel ) -> ma_bool32 ; } extern "C" { pub fn ma_channel_map_blank ( channels : ma_uint32 , channelMap : * const ma_channel ) -> ma_bool32 ; } extern "C" { pub fn ma_channel_map_contains_channel_position ( channels : ma_uint32 , channelMap : * const ma_channel , channelPosition : ma_channel ) -> ma_bool32 ; } extern "C" { # [ doc = "Format Conversion" ] # [ doc = "=================" ] # [ doc = "The format converter serves two purposes:" ] # [ doc = "1) Conversion between data formats (u8 to f32, etc.)" ] # [ doc = "2) Interleaving and deinterleaving" ] # [ doc = "" ] # [ doc = "When initializing a converter, you specify the input and output formats (u8, s16, etc.) and read callbacks. There are two read callbacks - one for" ] # [ doc = "interleaved input data (onRead) and another for deinterleaved input data (onReadDeinterleaved). You implement whichever is most convenient for you. You" ] # [ doc = "can implement both, but it's not recommended as it just introduces unnecessary complexity." ] # [ doc = "" ] # [ doc = "To read data as interleaved samples, use ma_format_converter_read(). Otherwise use ma_format_converter_read_deinterleaved()." ] # [ doc = "" ] # [ doc = "Dithering" ] # [ doc = "---------" ] # [ doc = "The format converter also supports dithering. Dithering can be set using ditherMode variable in the config, like so." ] # [ doc = "" ] # [ doc = "pConfig->ditherMode = ma_dither_mode_rectangle;" ] # [ doc = "" ] # [ doc = "The different dithering modes include the following, in order of efficiency:" ] # [ doc = "- None:      ma_dither_mode_none" ] # [ doc = "- Rectangle: ma_dither_mode_rectangle" ] # [ doc = "- Triangle:  ma_dither_mode_triangle" ] # [ doc = "" ] # [ doc = "Note that even if the dither mode is set to something other than ma_dither_mode_none, it will be ignored for conversions where dithering is not needed." ] # [ doc = "Dithering is available for the following conversions:" ] # [ doc = "- s16 -> u8" ] # [ doc = "- s24 -> u8" ] # [ doc = "- s32 -> u8" ] # [ doc = "- f32 -> u8" ] # [ doc = "- s24 -> s16" ] # [ doc = "- s32 -> s16" ] # [ doc = "- f32 -> s16" ] # [ doc = "" ] # [ doc = "Note that it is not an error to pass something other than ma_dither_mode_none for conversions where dither is not used. It will just be ignored." ] pub fn ma_format_converter_init ( pConfig : * const ma_format_converter_config , pConverter : * mut ma_format_converter ) -> ma_result ; } extern "C" { pub fn ma_format_converter_read ( pConverter : * mut ma_format_converter , frameCount : ma_uint64 , pFramesOut : * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint64 ; } extern "C" { pub fn ma_format_converter_read_deinterleaved ( pConverter : * mut ma_format_converter , frameCount : ma_uint64 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint64 ; } extern "C" { pub fn ma_format_converter_config_init_new ( ) -> ma_format_converter_config ; } extern "C" { pub fn ma_format_converter_config_init ( formatIn : ma_format , formatOut : ma_format , channels : ma_uint32 , onRead : ma_format_converter_read_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_format_converter_config ; } extern "C" { pub fn ma_format_converter_config_init_deinterleaved ( formatIn : ma_format , formatOut : ma_format , channels : ma_uint32 , onReadDeinterleaved : ma_format_converter_read_deinterleaved_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_format_converter_config ; } extern "C" { # [ doc = "Channel Routing" ] # [ doc = "===============" ] # [ doc = "There are two main things you can do with the channel router:" ] # [ doc = "1) Rearrange channels" ] # [ doc = "2) Convert from one channel count to another" ] # [ doc = "" ] # [ doc = "Channel Rearrangement" ] # [ doc = "---------------------" ] # [ doc = "A simple example of channel rearrangement may be swapping the left and right channels in a stereo stream. To do this you just pass in the same channel" ] # [ doc = "count for both the input and output with channel maps that contain the same channels (in a different order)." ] # [ doc = "" ] # [ doc = "Channel Conversion" ] # [ doc = "------------------" ] # [ doc = "The channel router can also convert from one channel count to another, such as converting a 5.1 stream to stero. When changing the channel count, the" ] # [ doc = "router will first perform a 1:1 mapping of channel positions that are present in both the input and output channel maps. The second thing it will do" ] # [ doc = "is distribute the input mono channel (if any) across all output channels, excluding any None and LFE channels. If there is an output mono channel, all" ] # [ doc = "input channels will be averaged, excluding any None and LFE channels." ] # [ doc = "" ] # [ doc = "The last case to consider is when a channel position in the input channel map is not present in the output channel map, and vice versa. In this case the" ] # [ doc = "channel router will perform a blend of other related channels to produce an audible channel. There are several blending modes." ] # [ doc = "1) Simple" ] # [ doc = "Unmatched channels are silenced." ] # [ doc = "2) Planar Blending" ] # [ doc = "Channels are blended based on a set of planes that each speaker emits audio from." ] # [ doc = "" ] # [ doc = "Rectangular / Planar Blending" ] # [ doc = "-----------------------------" ] # [ doc = "In this mode, channel positions are associated with a set of planes where the channel conceptually emits audio from. An example is the front/left speaker." ] # [ doc = "This speaker is positioned to the front of the listener, so you can think of it as emitting audio from the front plane. It is also positioned to the left" ] # [ doc = "of the listener so you can think of it as also emitting audio from the left plane. Now consider the (unrealistic) situation where the input channel map" ] # [ doc = "contains only the front/left channel position, but the output channel map contains both the front/left and front/center channel. When deciding on the audio" ] # [ doc = "data to send to the front/center speaker (which has no 1:1 mapping with an input channel) we need to use some logic based on our available input channel" ] # [ doc = "positions." ] # [ doc = "" ] # [ doc = "As mentioned earlier, our front/left speaker is, conceptually speaking, emitting audio from the front _and_ the left planes. Similarly, the front/center" ] # [ doc = "speaker is emitting audio from _only_ the front plane. What these two channels have in common is that they are both emitting audio from the front plane." ] # [ doc = "Thus, it makes sense that the front/center speaker should receive some contribution from the front/left channel. How much contribution depends on their" ] # [ doc = "planar relationship (thus the name of this blending technique)." ] # [ doc = "" ] # [ doc = "Because the front/left channel is emitting audio from two planes (front and left), you can think of it as though it's willing to dedicate 50% of it's total" ] # [ doc = "volume to each of it's planes (a channel position emitting from 1 plane would be willing to given 100% of it's total volume to that plane, and a channel" ] # [ doc = "position emitting from 3 planes would be willing to given 33% of it's total volume to each plane). Similarly, the front/center speaker is emitting audio" ] # [ doc = "from only one plane so you can think of it as though it's willing to _take_ 100% of it's volume from front plane emissions. Now, since the front/left" ] # [ doc = "channel is willing to _give_ 50% of it's total volume to the front plane, and the front/center speaker is willing to _take_ 100% of it's total volume" ] # [ doc = "from the front, you can imagine that 50% of the front/left speaker will be given to the front/center speaker." ] # [ doc = "" ] # [ doc = "Usage" ] # [ doc = "-----" ] # [ doc = "To use the channel router you need to specify three things:" ] # [ doc = "1) The input channel count and channel map" ] # [ doc = "2) The output channel count and channel map" ] # [ doc = "3) The mixing mode to use in the case where a 1:1 mapping is unavailable" ] # [ doc = "" ] # [ doc = "Note that input and output data is always deinterleaved 32-bit floating point." ] # [ doc = "" ] # [ doc = "Initialize the channel router with ma_channel_router_init(). You will need to pass in a config object which specifies the input and output configuration," ] # [ doc = "mixing mode and a callback for sending data to the router. This callback will be called when input data needs to be sent to the router for processing. Note" ] # [ doc = "that the mixing mode is only used when a 1:1 mapping is unavailable. This includes the custom weights mode." ] # [ doc = "" ] # [ doc = "Read data from the channel router with ma_channel_router_read_deinterleaved(). Output data is always 32-bit floating point." ] pub fn ma_channel_router_init ( pConfig : * const ma_channel_router_config , pRouter : * mut ma_channel_router ) -> ma_result ; } extern "C" { pub fn ma_channel_router_read_deinterleaved ( pRouter : * mut ma_channel_router , frameCount : ma_uint64 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint64 ; } extern "C" { pub fn ma_channel_router_config_init ( channelsIn : ma_uint32 , channelMapIn : * const ma_channel , channelsOut : ma_uint32 , channelMapOut : * const ma_channel , mixingMode : ma_channel_mix_mode , onRead : ma_channel_router_read_deinterleaved_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_channel_router_config ; } extern "C" { # [ doc = "Sample Rate Conversion" ] # [ doc = "======================" ] pub fn ma_src_init ( pConfig : * const ma_src_config , pSRC : * mut ma_src ) -> ma_result ; } extern "C" { pub fn ma_src_set_sample_rate ( pSRC : * mut ma_src , sampleRateIn : ma_uint32 , sampleRateOut : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_src_read_deinterleaved ( pSRC : * mut ma_src , frameCount : ma_uint64 , ppSamplesOut : * mut * mut :: std :: os :: raw :: c_void , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_uint64 ; } extern "C" { pub fn ma_src_config_init_new ( ) -> ma_src_config ; } extern "C" { pub fn ma_src_config_init ( sampleRateIn : ma_uint32 , sampleRateOut : ma_uint32 , channels : ma_uint32 , onReadDeinterleaved : ma_src_read_deinterleaved_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_src_config ; } extern "C" { # [ doc = "Conversion" ] pub fn ma_pcm_converter_init ( pConfig : * const ma_pcm_converter_config , pDSP : * mut ma_pcm_converter ) -> ma_result ; } extern "C" { pub fn ma_pcm_converter_set_input_sample_rate ( pDSP : * mut ma_pcm_converter , sampleRateOut : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_pcm_converter_set_output_sample_rate ( pDSP : * mut ma_pcm_converter , sampleRateOut : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_pcm_converter_set_sample_rate ( pDSP : * mut ma_pcm_converter , sampleRateIn : ma_uint32 , sampleRateOut : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_pcm_converter_read ( pDSP : * mut ma_pcm_converter , pFramesOut : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint64 ) -> ma_uint64 ; } extern "C" { pub fn ma_pcm_converter_config_init_new ( ) -> ma_pcm_converter_config ; } extern "C" { pub fn ma_pcm_converter_config_init ( formatIn : ma_format , channelsIn : ma_uint32 , sampleRateIn : ma_uint32 , formatOut : ma_format , channelsOut : ma_uint32 , sampleRateOut : ma_uint32 , onRead : ma_pcm_converter_read_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_pcm_converter_config ; } extern "C" { pub fn ma_pcm_converter_config_init_ex ( formatIn : ma_format , channelsIn : ma_uint32 , sampleRateIn : ma_uint32 , channelMapIn : * mut ma_channel , formatOut : ma_format , channelsOut : ma_uint32 , sampleRateOut : ma_uint32 , channelMapOut : * mut ma_channel , onRead : ma_pcm_converter_read_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_pcm_converter_config ; } extern "C" { pub fn ma_convert_frames ( pOut : * mut :: std :: os :: raw :: c_void , formatOut : ma_format , channelsOut : ma_uint32 , sampleRateOut : ma_uint32 , pIn : * const :: std :: os :: raw :: c_void , formatIn : ma_format , channelsIn : ma_uint32 , sampleRateIn : ma_uint32 , frameCount : ma_uint64 ) -> ma_uint64 ; } extern "C" { pub fn ma_convert_frames_ex ( pOut : * mut :: std :: os :: raw :: c_void , formatOut : ma_format , channelsOut : ma_uint32 , sampleRateOut : ma_uint32 , channelMapOut : * mut ma_channel , pIn : * const :: std :: os :: raw :: c_void , formatIn : ma_format , channelsIn : ma_uint32 , sampleRateIn : ma_uint32 , channelMapIn : * mut ma_channel , frameCount : ma_uint64 ) -> ma_uint64 ; } # [ doc = "Ring Buffer" ] # [ doc = "===========" ] # [ doc = "" ] # [ doc = "Features" ] # [ doc = "--------" ] # [ doc = "- Lock free (assuming single producer, single consumer)" ] # [ doc = "- Support for interleaved and deinterleaved streams" ] # [ doc = "- Allows the caller to allocate their own block of memory" ] # [ doc = "" ] # [ doc = "Usage" ] # [ doc = "-----" ] # [ doc = "- Call ma_rb_init() to initialize a simple buffer, with an optional pre-allocated buffer. If you pass in NULL" ] # [ doc = "for the pre-allocated buffer, it will be allocated for you and free()'d in ma_rb_uninit(). If you pass in" ] # [ doc = "your own pre-allocated buffer, free()-ing is left to you." ] # [ doc = "" ] # [ doc = "- Call ma_rb_init_ex() if you need a deinterleaved buffer. The data for each sub-buffer is offset from each" ] # [ doc = "other based on the stride. Use ma_rb_get_subbuffer_stride(), ma_rb_get_subbuffer_offset() and" ] # [ doc = "ma_rb_get_subbuffer_ptr() to manage your sub-buffers." ] # [ doc = "" ] # [ doc = "- Use ma_rb_acquire_read() and ma_rb_acquire_write() to retrieve a pointer to a section of the ring buffer." ] # [ doc = "You specify the number of bytes you need, and on output it will set to what was actually acquired. If the" ] # [ doc = "read or write pointer is positioned such that the number of bytes requested will require a loop, it will be" ] # [ doc = "clamped to the end of the buffer. Therefore, the number of bytes you're given may be less than the number" ] # [ doc = "you requested." ] # [ doc = "" ] # [ doc = "- After calling ma_rb_acquire_read/write(), you do your work on the buffer and then \"commit\" it with" ] # [ doc = "ma_rb_commit_read/write(). This is where the read/write pointers are updated. When you commit you need to" ] # [ doc = "pass in the buffer that was returned by the earlier call to ma_rb_acquire_read/write() and is only used" ] # [ doc = "for validation. The number of bytes passed to ma_rb_commit_read/write() is what's used to increment the" ] # [ doc = "pointers." ] # [ doc = "" ] # [ doc = "- If you want to correct for drift between the write pointer and the read pointer you can use a combination" ] # [ doc = "of ma_rb_pointer_distance(), ma_rb_seek_read() and ma_rb_seek_write(). Note that you can only move the" ] # [ doc = "pointers forward, and you should only move the read pointer forward via the consumer thread, and the write" ] # [ doc = "pointer forward by the producer thread. If there is too much space between the pointers, move the read" ] # [ doc = "pointer forward. If there is too little space between the pointers, move the write pointer forward." ] # [ doc = "" ] # [ doc = "" ] # [ doc = "Notes" ] # [ doc = "-----" ] # [ doc = "- Thread safety depends on a single producer, single consumer model. Only one thread is allowed to write, and" ] # [ doc = "only one thread is allowed to read. The producer is the only one allowed to move the write pointer, and the" ] # [ doc = "consumer is the only one allowed to move the read pointer." ] # [ doc = "- Operates on bytes. Use ma_pcm_rb to operate in terms of PCM frames." ] # [ doc = "- Maximum buffer size in bytes is 0x7FFFFFFF-(MA_SIMD_ALIGNMENT-1) because of reasons." ] # [ doc = "" ] # [ doc = "" ] # [ doc = "PCM Ring Buffer" ] # [ doc = "===============" ] # [ doc = "This is the same as the regular ring buffer, except that it works on PCM frames instead of bytes." ] # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_rb { pub pBuffer : * mut :: std :: os :: raw :: c_void , pub subbufferSizeInBytes : ma_uint32 , pub subbufferCount : ma_uint32 , pub subbufferStrideInBytes : ma_uint32 , pub encodedReadOffset : ma_uint32 , pub encodedWriteOffset : ma_uint32 , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 3usize ] , } # [ test ] fn bindgen_test_layout_ma_rb ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_rb > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ma_rb ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_rb > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_rb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . pBuffer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( pBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . subbufferSizeInBytes as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( subbufferSizeInBytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . subbufferCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( subbufferCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . subbufferStrideInBytes as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( subbufferStrideInBytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . encodedReadOffset as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( encodedReadOffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_rb > ( ) ) ) . encodedWriteOffset as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_rb ) , "::" , stringify ! ( encodedWriteOffset ) ) ) ; } impl ma_rb { # [ inline ] pub fn ownsBuffer ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_ownsBuffer ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn clearOnWriteAcquire ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_clearOnWriteAcquire ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( ownsBuffer : ma_bool32 , clearOnWriteAcquire : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let ownsBuffer : u32 = unsafe { :: std :: mem :: transmute ( ownsBuffer ) } ; ownsBuffer as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let clearOnWriteAcquire : u32 = unsafe { :: std :: mem :: transmute ( clearOnWriteAcquire ) } ; clearOnWriteAcquire as u64 } ) ; __bindgen_bitfield_unit } } extern "C" { pub fn ma_rb_init_ex ( subbufferSizeInBytes : usize , subbufferCount : usize , subbufferStrideInBytes : usize , pOptionalPreallocatedBuffer : * mut :: std :: os :: raw :: c_void , pRB : * mut ma_rb ) -> ma_result ; } extern "C" { pub fn ma_rb_init ( bufferSizeInBytes : usize , pOptionalPreallocatedBuffer : * mut :: std :: os :: raw :: c_void , pRB : * mut ma_rb ) -> ma_result ; } extern "C" { pub fn ma_rb_uninit ( pRB : * mut ma_rb ) ; } extern "C" { pub fn ma_rb_reset ( pRB : * mut ma_rb ) ; } extern "C" { pub fn ma_rb_acquire_read ( pRB : * mut ma_rb , pSizeInBytes : * mut usize , ppBufferOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_rb_commit_read ( pRB : * mut ma_rb , sizeInBytes : usize , pBufferOut : * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_rb_acquire_write ( pRB : * mut ma_rb , pSizeInBytes : * mut usize , ppBufferOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_rb_commit_write ( pRB : * mut ma_rb , sizeInBytes : usize , pBufferOut : * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_rb_seek_read ( pRB : * mut ma_rb , offsetInBytes : usize ) -> ma_result ; } extern "C" { pub fn ma_rb_seek_write ( pRB : * mut ma_rb , offsetInBytes : usize ) -> ma_result ; } extern "C" { pub fn ma_rb_pointer_distance ( pRB : * mut ma_rb ) -> ma_int32 ; } extern "C" { pub fn ma_rb_available_read ( pRB : * mut ma_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_rb_available_write ( pRB : * mut ma_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_rb_get_subbuffer_size ( pRB : * mut ma_rb ) -> usize ; } extern "C" { pub fn ma_rb_get_subbuffer_stride ( pRB : * mut ma_rb ) -> usize ; } extern "C" { pub fn ma_rb_get_subbuffer_offset ( pRB : * mut ma_rb , subbufferIndex : usize ) -> usize ; } extern "C" { pub fn ma_rb_get_subbuffer_ptr ( pRB : * mut ma_rb , subbufferIndex : usize , pBuffer : * mut :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_pcm_rb { pub rb : ma_rb , pub format : ma_format , pub channels : ma_uint32 , } # [ test ] fn bindgen_test_layout_ma_pcm_rb ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_pcm_rb > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( ma_pcm_rb ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_pcm_rb > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_pcm_rb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_rb > ( ) ) ) . rb as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_rb ) , "::" , stringify ! ( rb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_rb > ( ) ) ) . format as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_rb ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_pcm_rb > ( ) ) ) . channels as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( ma_pcm_rb ) , "::" , stringify ! ( channels ) ) ) ; } extern "C" { pub fn ma_pcm_rb_init_ex ( format : ma_format , channels : ma_uint32 , subbufferSizeInFrames : ma_uint32 , subbufferCount : ma_uint32 , subbufferStrideInFrames : ma_uint32 , pOptionalPreallocatedBuffer : * mut :: std :: os :: raw :: c_void , pRB : * mut ma_pcm_rb ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_init ( format : ma_format , channels : ma_uint32 , bufferSizeInFrames : ma_uint32 , pOptionalPreallocatedBuffer : * mut :: std :: os :: raw :: c_void , pRB : * mut ma_pcm_rb ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_uninit ( pRB : * mut ma_pcm_rb ) ; } extern "C" { pub fn ma_pcm_rb_reset ( pRB : * mut ma_pcm_rb ) ; } extern "C" { pub fn ma_pcm_rb_acquire_read ( pRB : * mut ma_pcm_rb , pSizeInFrames : * mut ma_uint32 , ppBufferOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_commit_read ( pRB : * mut ma_pcm_rb , sizeInFrames : ma_uint32 , pBufferOut : * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_acquire_write ( pRB : * mut ma_pcm_rb , pSizeInFrames : * mut ma_uint32 , ppBufferOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_commit_write ( pRB : * mut ma_pcm_rb , sizeInFrames : ma_uint32 , pBufferOut : * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_seek_read ( pRB : * mut ma_pcm_rb , offsetInFrames : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_seek_write ( pRB : * mut ma_pcm_rb , offsetInFrames : ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_pcm_rb_pointer_disance ( pRB : * mut ma_pcm_rb ) -> ma_int32 ; } extern "C" { pub fn ma_pcm_rb_available_read ( pRB : * mut ma_pcm_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_pcm_rb_available_write ( pRB : * mut ma_pcm_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_pcm_rb_get_subbuffer_size ( pRB : * mut ma_pcm_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_pcm_rb_get_subbuffer_stride ( pRB : * mut ma_pcm_rb ) -> ma_uint32 ; } extern "C" { pub fn ma_pcm_rb_get_subbuffer_offset ( pRB : * mut ma_pcm_rb , subbufferIndex : ma_uint32 ) -> ma_uint32 ; } extern "C" { pub fn ma_pcm_rb_get_subbuffer_ptr ( pRB : * mut ma_pcm_rb , subbufferIndex : ma_uint32 , pBuffer : * mut :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = "Miscellaneous Helpers" ] pub fn ma_malloc ( sz : usize ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ma_realloc ( p : * mut :: std :: os :: raw :: c_void , sz : usize ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ma_free ( p : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn ma_aligned_malloc ( sz : usize , alignment : usize ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn ma_aligned_free ( p : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn ma_get_format_name ( format : ma_format ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn ma_blend_f32 ( pOut : * mut f32 , pInA : * mut f32 , pInB : * mut f32 , factor : f32 , channels : ma_uint32 ) ; } extern "C" { pub fn ma_get_bytes_per_sample ( format : ma_format ) -> ma_uint32 ; } extern "C" { pub fn ma_log_level_to_string ( logLevel : ma_uint32 ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { # [ doc = "Format Conversion" ] pub fn ma_pcm_u8_to_s16 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_u8_to_s24 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_u8_to_s32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_u8_to_f32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s16_to_u8 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s16_to_s24 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s16_to_s32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s16_to_f32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s24_to_u8 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s24_to_s16 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s24_to_s32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s24_to_f32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s32_to_u8 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s32_to_s16 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s32_to_s24 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_s32_to_f32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_f32_to_u8 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_f32_to_s16 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_f32_to_s24 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_f32_to_s32 ( pOut : * mut :: std :: os :: raw :: c_void , pIn : * const :: std :: os :: raw :: c_void , count : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_pcm_convert ( pOut : * mut :: std :: os :: raw :: c_void , formatOut : ma_format , pIn : * const :: std :: os :: raw :: c_void , formatIn : ma_format , sampleCount : ma_uint64 , ditherMode : ma_dither_mode ) ; } extern "C" { pub fn ma_deinterleave_pcm_frames ( format : ma_format , channels : ma_uint32 , frameCount : ma_uint64 , pInterleavedPCMFrames : * const :: std :: os :: raw :: c_void , ppDeinterleavedPCMFrames : * mut * mut :: std :: os :: raw :: c_void ) ; } extern "C" { pub fn ma_interleave_pcm_frames ( format : ma_format , channels : ma_uint32 , frameCount : ma_uint64 , ppDeinterleavedPCMFrames : * mut * const :: std :: os :: raw :: c_void , pInterleavedPCMFrames : * mut :: std :: os :: raw :: c_void ) ; } pub const ma_backend_ma_backend_wasapi : ma_backend = 0 ; pub const ma_backend_ma_backend_dsound : ma_backend = 1 ; pub const ma_backend_ma_backend_winmm : ma_backend = 2 ; pub const ma_backend_ma_backend_coreaudio : ma_backend = 3 ; pub const ma_backend_ma_backend_sndio : ma_backend = 4 ; pub const ma_backend_ma_backend_audio4 : ma_backend = 5 ; pub const ma_backend_ma_backend_oss : ma_backend = 6 ; pub const ma_backend_ma_backend_pulseaudio : ma_backend = 7 ; pub const ma_backend_ma_backend_alsa : ma_backend = 8 ; pub const ma_backend_ma_backend_jack : ma_backend = 9 ; pub const ma_backend_ma_backend_aaudio : ma_backend = 10 ; pub const ma_backend_ma_backend_opensl : ma_backend = 11 ; pub const ma_backend_ma_backend_webaudio : ma_backend = 12 ; pub const ma_backend_ma_backend_null : ma_backend = 13 ; pub type ma_backend = u32 ; pub const ma_thread_priority_ma_thread_priority_idle : ma_thread_priority = -5 ; pub const ma_thread_priority_ma_thread_priority_lowest : ma_thread_priority = -4 ; pub const ma_thread_priority_ma_thread_priority_low : ma_thread_priority = -3 ; pub const ma_thread_priority_ma_thread_priority_normal : ma_thread_priority = -2 ; pub const ma_thread_priority_ma_thread_priority_high : ma_thread_priority = -1 ; pub const ma_thread_priority_ma_thread_priority_highest : ma_thread_priority = 0 ; pub const ma_thread_priority_ma_thread_priority_realtime : ma_thread_priority = 1 ; pub const ma_thread_priority_ma_thread_priority_default : ma_thread_priority = 0 ; pub type ma_thread_priority = i32 ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_thread { pub pContext : * mut ma_context , pub __bindgen_anon_1 : ma_thread__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_thread__bindgen_ty_1 { pub posix : ma_thread__bindgen_ty_1__bindgen_ty_1 , pub _unused : :: std :: os :: raw :: c_int , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_thread__bindgen_ty_1__bindgen_ty_1 { pub thread : pthread_t , } # [ test ] fn bindgen_test_layout_ma_thread__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_thread__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_thread__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_thread__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_thread__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_thread__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . thread as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_thread__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( thread ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_thread__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_thread__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_thread__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_thread__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_thread__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_thread__bindgen_ty_1 > ( ) ) ) . posix as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_thread__bindgen_ty_1 ) , "::" , stringify ! ( posix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_thread__bindgen_ty_1 > ( ) ) ) . _unused as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_thread__bindgen_ty_1 ) , "::" , stringify ! ( _unused ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_thread ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_thread > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ma_thread ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_thread > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_thread ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_thread > ( ) ) ) . pContext as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_thread ) , "::" , stringify ! ( pContext ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_mutex { pub pContext : * mut ma_context , pub __bindgen_anon_1 : ma_mutex__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_mutex__bindgen_ty_1 { pub posix : ma_mutex__bindgen_ty_1__bindgen_ty_1 , pub _unused : :: std :: os :: raw :: c_int , _bindgen_union_align : [ u64 ; 5usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_mutex__bindgen_ty_1__bindgen_ty_1 { pub mutex : pthread_mutex_t , } # [ test ] fn bindgen_test_layout_ma_mutex__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_mutex__bindgen_ty_1__bindgen_ty_1 > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( ma_mutex__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_mutex__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_mutex__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_mutex__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . mutex as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_mutex__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mutex ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_mutex__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_mutex__bindgen_ty_1 > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( ma_mutex__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_mutex__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_mutex__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_mutex__bindgen_ty_1 > ( ) ) ) . posix as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_mutex__bindgen_ty_1 ) , "::" , stringify ! ( posix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_mutex__bindgen_ty_1 > ( ) ) ) . _unused as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_mutex__bindgen_ty_1 ) , "::" , stringify ! ( _unused ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_mutex ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_mutex > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( ma_mutex ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_mutex > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_mutex > ( ) ) ) . pContext as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_mutex ) , "::" , stringify ! ( pContext ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_event { pub pContext : * mut ma_context , pub __bindgen_anon_1 : ma_event__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_event__bindgen_ty_1 { pub posix : ma_event__bindgen_ty_1__bindgen_ty_1 , pub _unused : :: std :: os :: raw :: c_int , _bindgen_union_align : [ u64 ; 12usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_event__bindgen_ty_1__bindgen_ty_1 { pub mutex : pthread_mutex_t , pub condition : pthread_cond_t , pub value : ma_uint32 , } # [ test ] fn bindgen_test_layout_ma_event__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_event__bindgen_ty_1__bindgen_ty_1 > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( ma_event__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_event__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_event__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . mutex as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_event__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . condition as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_event__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( condition ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . value as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_event__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( value ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_event__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_event__bindgen_ty_1 > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( ma_event__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_event__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_event__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event__bindgen_ty_1 > ( ) ) ) . posix as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_event__bindgen_ty_1 ) , "::" , stringify ! ( posix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event__bindgen_ty_1 > ( ) ) ) . _unused as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_event__bindgen_ty_1 ) , "::" , stringify ! ( _unused ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_event ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_event > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( ma_event ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_event > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_event ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_event > ( ) ) ) . pContext as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_event ) , "::" , stringify ! ( pContext ) ) ) ; } pub type ma_device_callback_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device , pOutput : * mut :: std :: os :: raw :: c_void , pInput : * const :: std :: os :: raw :: c_void , frameCount : ma_uint32 ) > ; pub type ma_stop_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device ) > ; pub type ma_log_proc = :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , pDevice : * mut ma_device , logLevel : ma_uint32 , message : * const :: std :: os :: raw :: c_char ) > ; pub const ma_device_type_ma_device_type_playback : ma_device_type = 1 ; pub const ma_device_type_ma_device_type_capture : ma_device_type = 2 ; pub const ma_device_type_ma_device_type_duplex : ma_device_type = 3 ; pub const ma_device_type_ma_device_type_loopback : ma_device_type = 4 ; pub type ma_device_type = u32 ; pub const ma_share_mode_ma_share_mode_shared : ma_share_mode = 0 ; pub const ma_share_mode_ma_share_mode_exclusive : ma_share_mode = 1 ; pub type ma_share_mode = u32 ; pub const ma_ios_session_category_ma_ios_session_category_default : ma_ios_session_category = 0 ; pub const ma_ios_session_category_ma_ios_session_category_none : ma_ios_session_category = 1 ; pub const ma_ios_session_category_ma_ios_session_category_ambient : ma_ios_session_category = 2 ; pub const ma_ios_session_category_ma_ios_session_category_solo_ambient : ma_ios_session_category = 3 ; pub const ma_ios_session_category_ma_ios_session_category_playback : ma_ios_session_category = 4 ; pub const ma_ios_session_category_ma_ios_session_category_record : ma_ios_session_category = 5 ; pub const ma_ios_session_category_ma_ios_session_category_play_and_record : ma_ios_session_category = 6 ; pub const ma_ios_session_category_ma_ios_session_category_multi_route : ma_ios_session_category = 7 ; pub type ma_ios_session_category = u32 ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_device_id { pub alsa : [ :: std :: os :: raw :: c_char ; 256usize ] , pub pulse : [ :: std :: os :: raw :: c_char ; 256usize ] , pub jack : :: std :: os :: raw :: c_int , pub nullbackend : :: std :: os :: raw :: c_int , _bindgen_union_align : [ u32 ; 64usize ] , } # [ test ] fn bindgen_test_layout_ma_device_id ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_id > ( ) , 256usize , concat ! ( "Size of: " , stringify ! ( ma_device_id ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_id > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_device_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_id > ( ) ) ) . alsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_id ) , "::" , stringify ! ( alsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_id > ( ) ) ) . pulse as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_id ) , "::" , stringify ! ( pulse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_id > ( ) ) ) . jack as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_id ) , "::" , stringify ! ( jack ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_id > ( ) ) ) . nullbackend as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_id ) , "::" , stringify ! ( nullbackend ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_info { pub id : ma_device_id , pub name : [ :: std :: os :: raw :: c_char ; 256usize ] , pub formatCount : ma_uint32 , pub formats : [ ma_format ; 6usize ] , pub minChannels : ma_uint32 , pub maxChannels : ma_uint32 , pub minSampleRate : ma_uint32 , pub maxSampleRate : ma_uint32 , } # [ test ] fn bindgen_test_layout_ma_device_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_info > ( ) , 556usize , concat ! ( "Size of: " , stringify ! ( ma_device_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_info > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_device_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . id as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . name as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . formatCount as * const _ as usize } , 512usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( formatCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . formats as * const _ as usize } , 516usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . minChannels as * const _ as usize } , 540usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( minChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . maxChannels as * const _ as usize } , 544usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( maxChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . minSampleRate as * const _ as usize } , 548usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( minSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_info > ( ) ) ) . maxSampleRate as * const _ as usize } , 552usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_info ) , "::" , stringify ! ( maxSampleRate ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_timer { pub counter : ma_int64 , pub counterD : f64 , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_ma_timer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_timer > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_timer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_timer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_timer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_timer > ( ) ) ) . counter as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_timer ) , "::" , stringify ! ( counter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_timer > ( ) ) ) . counterD as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_timer ) , "::" , stringify ! ( counterD ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config { pub deviceType : ma_device_type , pub sampleRate : ma_uint32 , pub bufferSizeInFrames : ma_uint32 , pub bufferSizeInMilliseconds : ma_uint32 , pub periods : ma_uint32 , pub performanceProfile : ma_performance_profile , pub noPreZeroedOutputBuffer : ma_bool32 , pub noClip : ma_bool32 , pub dataCallback : ma_device_callback_proc , pub stopCallback : ma_stop_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub playback : ma_device_config__bindgen_ty_1 , pub capture : ma_device_config__bindgen_ty_2 , pub wasapi : ma_device_config__bindgen_ty_3 , pub alsa : ma_device_config__bindgen_ty_4 , pub pulse : ma_device_config__bindgen_ty_5 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config__bindgen_ty_1 { pub pDeviceID : * mut ma_device_id , pub format : ma_format , pub channels : ma_uint32 , pub channelMap : [ ma_channel ; 32usize ] , pub shareMode : ma_share_mode , } # [ test ] fn bindgen_test_layout_ma_device_config__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config__bindgen_ty_1 > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ma_device_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_1 > ( ) ) ) . pDeviceID as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_1 ) , "::" , stringify ! ( pDeviceID ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_1 > ( ) ) ) . format as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_1 ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_1 > ( ) ) ) . channels as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_1 ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_1 > ( ) ) ) . channelMap as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_1 ) , "::" , stringify ! ( channelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_1 > ( ) ) ) . shareMode as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_1 ) , "::" , stringify ! ( shareMode ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config__bindgen_ty_2 { pub pDeviceID : * mut ma_device_id , pub format : ma_format , pub channels : ma_uint32 , pub channelMap : [ ma_channel ; 32usize ] , pub shareMode : ma_share_mode , } # [ test ] fn bindgen_test_layout_ma_device_config__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config__bindgen_ty_2 > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( ma_device_config__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_2 > ( ) ) ) . pDeviceID as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_2 ) , "::" , stringify ! ( pDeviceID ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_2 > ( ) ) ) . format as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_2 ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_2 > ( ) ) ) . channels as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_2 ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_2 > ( ) ) ) . channelMap as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_2 ) , "::" , stringify ! ( channelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_2 > ( ) ) ) . shareMode as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_2 ) , "::" , stringify ! ( shareMode ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config__bindgen_ty_3 { pub noAutoConvertSRC : ma_bool32 , pub noDefaultQualitySRC : ma_bool32 , pub noAutoStreamRouting : ma_bool32 , pub noHardwareOffloading : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_device_config__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config__bindgen_ty_3 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ma_device_config__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config__bindgen_ty_3 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_3 > ( ) ) ) . noAutoConvertSRC as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_3 ) , "::" , stringify ! ( noAutoConvertSRC ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_3 > ( ) ) ) . noDefaultQualitySRC as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_3 ) , "::" , stringify ! ( noDefaultQualitySRC ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_3 > ( ) ) ) . noAutoStreamRouting as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_3 ) , "::" , stringify ! ( noAutoStreamRouting ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_3 > ( ) ) ) . noHardwareOffloading as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_3 ) , "::" , stringify ! ( noHardwareOffloading ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config__bindgen_ty_4 { pub noMMap : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_device_config__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config__bindgen_ty_4 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( ma_device_config__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config__bindgen_ty_4 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_4 > ( ) ) ) . noMMap as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_4 ) , "::" , stringify ! ( noMMap ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device_config__bindgen_ty_5 { pub pStreamNamePlayback : * const :: std :: os :: raw :: c_char , pub pStreamNameCapture : * const :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_ma_device_config__bindgen_ty_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config__bindgen_ty_5 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ma_device_config__bindgen_ty_5 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config__bindgen_ty_5 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config__bindgen_ty_5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_5 > ( ) ) ) . pStreamNamePlayback as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_5 ) , "::" , stringify ! ( pStreamNamePlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config__bindgen_ty_5 > ( ) ) ) . pStreamNameCapture as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config__bindgen_ty_5 ) , "::" , stringify ! ( pStreamNameCapture ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_device_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device_config > ( ) , 208usize , concat ! ( "Size of: " , stringify ! ( ma_device_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . deviceType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( deviceType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . sampleRate as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( sampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . bufferSizeInFrames as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( bufferSizeInFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . bufferSizeInMilliseconds as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( bufferSizeInMilliseconds ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . periods as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( periods ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . performanceProfile as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( performanceProfile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . noPreZeroedOutputBuffer as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( noPreZeroedOutputBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . noClip as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( noClip ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . dataCallback as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( dataCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . stopCallback as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( stopCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . pUserData as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . playback as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( playback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . capture as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( capture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . wasapi as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( wasapi ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . alsa as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( alsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device_config > ( ) ) ) . pulse as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( ma_device_config ) , "::" , stringify ! ( pulse ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context_config { pub logCallback : ma_log_proc , pub threadPriority : ma_thread_priority , pub pUserData : * mut :: std :: os :: raw :: c_void , pub alsa : ma_context_config__bindgen_ty_1 , pub pulse : ma_context_config__bindgen_ty_2 , pub coreaudio : ma_context_config__bindgen_ty_3 , pub jack : ma_context_config__bindgen_ty_4 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context_config__bindgen_ty_1 { pub useVerboseDeviceEnumeration : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context_config__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context_config__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( ma_context_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context_config__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_context_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_1 > ( ) ) ) . useVerboseDeviceEnumeration as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_1 ) , "::" , stringify ! ( useVerboseDeviceEnumeration ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context_config__bindgen_ty_2 { pub pApplicationName : * const :: std :: os :: raw :: c_char , pub pServerName : * const :: std :: os :: raw :: c_char , pub tryAutoSpawn : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context_config__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context_config__bindgen_ty_2 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ma_context_config__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context_config__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context_config__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_2 > ( ) ) ) . pApplicationName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_2 ) , "::" , stringify ! ( pApplicationName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_2 > ( ) ) ) . pServerName as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_2 ) , "::" , stringify ! ( pServerName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_2 > ( ) ) ) . tryAutoSpawn as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_2 ) , "::" , stringify ! ( tryAutoSpawn ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context_config__bindgen_ty_3 { pub sessionCategory : ma_ios_session_category , pub sessionCategoryOptions : ma_uint32 , } # [ test ] fn bindgen_test_layout_ma_context_config__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context_config__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_context_config__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context_config__bindgen_ty_3 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_context_config__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_3 > ( ) ) ) . sessionCategory as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_3 ) , "::" , stringify ! ( sessionCategory ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_3 > ( ) ) ) . sessionCategoryOptions as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_3 ) , "::" , stringify ! ( sessionCategoryOptions ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context_config__bindgen_ty_4 { pub pClientName : * const :: std :: os :: raw :: c_char , pub tryStartServer : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context_config__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context_config__bindgen_ty_4 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ma_context_config__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context_config__bindgen_ty_4 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context_config__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_4 > ( ) ) ) . pClientName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_4 ) , "::" , stringify ! ( pClientName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config__bindgen_ty_4 > ( ) ) ) . tryStartServer as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config__bindgen_ty_4 ) , "::" , stringify ! ( tryStartServer ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_context_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context_config > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( ma_context_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context_config > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . logCallback as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( logCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . threadPriority as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( threadPriority ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . pUserData as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . alsa as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( alsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . pulse as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( pulse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . coreaudio as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( coreaudio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context_config > ( ) ) ) . jack as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_context_config ) , "::" , stringify ! ( jack ) ) ) ; } pub type ma_enum_devices_callback_proc = :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , deviceType : ma_device_type , pInfo : * const ma_device_info , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_bool32 > ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context { pub backend : ma_backend , pub logCallback : ma_log_proc , pub threadPriority : ma_thread_priority , pub pUserData : * mut :: std :: os :: raw :: c_void , pub deviceEnumLock : ma_mutex , pub deviceInfoLock : ma_mutex , pub deviceInfoCapacity : ma_uint32 , pub playbackDeviceInfoCount : ma_uint32 , pub captureDeviceInfoCount : ma_uint32 , pub pDeviceInfos : * mut ma_device_info , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub onUninit : :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context ) -> ma_result > , pub onDeviceIDEqual : :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , pID0 : * const ma_device_id , pID1 : * const ma_device_id ) -> ma_bool32 > , pub onEnumDevices : :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , callback : ma_enum_devices_callback_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_result > , pub onGetDeviceInfo : :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , deviceType : ma_device_type , pDeviceID : * const ma_device_id , shareMode : ma_share_mode , pDeviceInfo : * mut ma_device_info ) -> ma_result > , pub onDeviceInit : :: std :: option :: Option < unsafe extern "C" fn ( pContext : * mut ma_context , pConfig : * const ma_device_config , pDevice : * mut ma_device ) -> ma_result > , pub onDeviceUninit : :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device ) > , pub onDeviceStart : :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device ) -> ma_result > , pub onDeviceStop : :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device ) -> ma_result > , pub onDeviceMainLoop : :: std :: option :: Option < unsafe extern "C" fn ( pDevice : * mut ma_device ) -> ma_result > , pub __bindgen_anon_1 : ma_context__bindgen_ty_1 , pub __bindgen_anon_2 : ma_context__bindgen_ty_2 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_context__bindgen_ty_1 { pub alsa : ma_context__bindgen_ty_1__bindgen_ty_1 , pub pulse : ma_context__bindgen_ty_1__bindgen_ty_2 , pub jack : ma_context__bindgen_ty_1__bindgen_ty_3 , pub null_backend : ma_context__bindgen_ty_1__bindgen_ty_4 , _bindgen_union_align : [ u64 ; 63usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context__bindgen_ty_1__bindgen_ty_1 { pub asoundSO : ma_handle , pub snd_pcm_open : ma_proc , pub snd_pcm_close : ma_proc , pub snd_pcm_hw_params_sizeof : ma_proc , pub snd_pcm_hw_params_any : ma_proc , pub snd_pcm_hw_params_set_format : ma_proc , pub snd_pcm_hw_params_set_format_first : ma_proc , pub snd_pcm_hw_params_get_format_mask : ma_proc , pub snd_pcm_hw_params_set_channels_near : ma_proc , pub snd_pcm_hw_params_set_rate_resample : ma_proc , pub snd_pcm_hw_params_set_rate_near : ma_proc , pub snd_pcm_hw_params_set_buffer_size_near : ma_proc , pub snd_pcm_hw_params_set_periods_near : ma_proc , pub snd_pcm_hw_params_set_access : ma_proc , pub snd_pcm_hw_params_get_format : ma_proc , pub snd_pcm_hw_params_get_channels : ma_proc , pub snd_pcm_hw_params_get_channels_min : ma_proc , pub snd_pcm_hw_params_get_channels_max : ma_proc , pub snd_pcm_hw_params_get_rate : ma_proc , pub snd_pcm_hw_params_get_rate_min : ma_proc , pub snd_pcm_hw_params_get_rate_max : ma_proc , pub snd_pcm_hw_params_get_buffer_size : ma_proc , pub snd_pcm_hw_params_get_periods : ma_proc , pub snd_pcm_hw_params_get_access : ma_proc , pub snd_pcm_hw_params : ma_proc , pub snd_pcm_sw_params_sizeof : ma_proc , pub snd_pcm_sw_params_current : ma_proc , pub snd_pcm_sw_params_get_boundary : ma_proc , pub snd_pcm_sw_params_set_avail_min : ma_proc , pub snd_pcm_sw_params_set_start_threshold : ma_proc , pub snd_pcm_sw_params_set_stop_threshold : ma_proc , pub snd_pcm_sw_params : ma_proc , pub snd_pcm_format_mask_sizeof : ma_proc , pub snd_pcm_format_mask_test : ma_proc , pub snd_pcm_get_chmap : ma_proc , pub snd_pcm_state : ma_proc , pub snd_pcm_prepare : ma_proc , pub snd_pcm_start : ma_proc , pub snd_pcm_drop : ma_proc , pub snd_pcm_drain : ma_proc , pub snd_device_name_hint : ma_proc , pub snd_device_name_get_hint : ma_proc , pub snd_card_get_index : ma_proc , pub snd_device_name_free_hint : ma_proc , pub snd_pcm_mmap_begin : ma_proc , pub snd_pcm_mmap_commit : ma_proc , pub snd_pcm_recover : ma_proc , pub snd_pcm_readi : ma_proc , pub snd_pcm_writei : ma_proc , pub snd_pcm_avail : ma_proc , pub snd_pcm_avail_update : ma_proc , pub snd_pcm_wait : ma_proc , pub snd_pcm_info : ma_proc , pub snd_pcm_info_sizeof : ma_proc , pub snd_pcm_info_get_name : ma_proc , pub snd_config_update_free_global : ma_proc , pub internalDeviceEnumLock : ma_mutex , pub useVerboseDeviceEnumeration : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) , 504usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . asoundSO as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( asoundSO ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_open as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_close as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_sizeof as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_sizeof ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_any as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_any ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_format as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_format_first as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_format_first ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_format_mask as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_format_mask ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_channels_near as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_channels_near ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_rate_resample as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_rate_resample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_rate_near as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_rate_near ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_buffer_size_near as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_buffer_size_near ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_periods_near as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_periods_near ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_set_access as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_set_access ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_format as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_channels as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_channels_min as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_channels_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_channels_max as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_channels_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_rate as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_rate_min as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_rate_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_rate_max as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_rate_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_buffer_size as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_periods as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_periods ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params_get_access as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params_get_access ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_hw_params as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_hw_params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_sizeof as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_sizeof ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_current as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_current ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_get_boundary as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_get_boundary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_set_avail_min as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_set_avail_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_set_start_threshold as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_set_start_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params_set_stop_threshold as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params_set_stop_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_sw_params as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_sw_params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_format_mask_sizeof as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_format_mask_sizeof ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_format_mask_test as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_format_mask_test ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_get_chmap as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_get_chmap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_state as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_prepare as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_prepare ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_start as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_drop as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_drop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_drain as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_drain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_device_name_hint as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_device_name_hint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_device_name_get_hint as * const _ as usize } , 328usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_device_name_get_hint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_card_get_index as * const _ as usize } , 336usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_card_get_index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_device_name_free_hint as * const _ as usize } , 344usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_device_name_free_hint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_mmap_begin as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_mmap_begin ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_mmap_commit as * const _ as usize } , 360usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_mmap_commit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_recover as * const _ as usize } , 368usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_recover ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_readi as * const _ as usize } , 376usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_readi ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_writei as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_writei ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_avail as * const _ as usize } , 392usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_avail ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_avail_update as * const _ as usize } , 400usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_avail_update ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_wait as * const _ as usize } , 408usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_wait ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_info as * const _ as usize } , 416usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_info_sizeof as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_info_sizeof ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_pcm_info_get_name as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_pcm_info_get_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . snd_config_update_free_global as * const _ as usize } , 440usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( snd_config_update_free_global ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . internalDeviceEnumLock as * const _ as usize } , 448usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( internalDeviceEnumLock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . useVerboseDeviceEnumeration as * const _ as usize } , 496usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( useVerboseDeviceEnumeration ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context__bindgen_ty_1__bindgen_ty_2 { pub pulseSO : ma_handle , pub pa_mainloop_new : ma_proc , pub pa_mainloop_free : ma_proc , pub pa_mainloop_get_api : ma_proc , pub pa_mainloop_iterate : ma_proc , pub pa_mainloop_wakeup : ma_proc , pub pa_context_new : ma_proc , pub pa_context_unref : ma_proc , pub pa_context_connect : ma_proc , pub pa_context_disconnect : ma_proc , pub pa_context_set_state_callback : ma_proc , pub pa_context_get_state : ma_proc , pub pa_context_get_sink_info_list : ma_proc , pub pa_context_get_source_info_list : ma_proc , pub pa_context_get_sink_info_by_name : ma_proc , pub pa_context_get_source_info_by_name : ma_proc , pub pa_operation_unref : ma_proc , pub pa_operation_get_state : ma_proc , pub pa_channel_map_init_extend : ma_proc , pub pa_channel_map_valid : ma_proc , pub pa_channel_map_compatible : ma_proc , pub pa_stream_new : ma_proc , pub pa_stream_unref : ma_proc , pub pa_stream_connect_playback : ma_proc , pub pa_stream_connect_record : ma_proc , pub pa_stream_disconnect : ma_proc , pub pa_stream_get_state : ma_proc , pub pa_stream_get_sample_spec : ma_proc , pub pa_stream_get_channel_map : ma_proc , pub pa_stream_get_buffer_attr : ma_proc , pub pa_stream_set_buffer_attr : ma_proc , pub pa_stream_get_device_name : ma_proc , pub pa_stream_set_write_callback : ma_proc , pub pa_stream_set_read_callback : ma_proc , pub pa_stream_flush : ma_proc , pub pa_stream_drain : ma_proc , pub pa_stream_is_corked : ma_proc , pub pa_stream_cork : ma_proc , pub pa_stream_trigger : ma_proc , pub pa_stream_begin_write : ma_proc , pub pa_stream_write : ma_proc , pub pa_stream_peek : ma_proc , pub pa_stream_drop : ma_proc , pub pa_stream_writable_size : ma_proc , pub pa_stream_readable_size : ma_proc , pub pApplicationName : * mut :: std :: os :: raw :: c_char , pub pServerName : * mut :: std :: os :: raw :: c_char , pub tryAutoSpawn : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) , 384usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pulseSO as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pulseSO ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_mainloop_new as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_mainloop_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_mainloop_free as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_mainloop_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_mainloop_get_api as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_mainloop_get_api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_mainloop_iterate as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_mainloop_iterate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_mainloop_wakeup as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_mainloop_wakeup ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_new as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_unref as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_unref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_connect as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_connect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_disconnect as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_disconnect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_set_state_callback as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_set_state_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_get_state as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_get_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_get_sink_info_list as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_get_sink_info_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_get_source_info_list as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_get_source_info_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_get_sink_info_by_name as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_get_sink_info_by_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_context_get_source_info_by_name as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_context_get_source_info_by_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_operation_unref as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_operation_unref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_operation_get_state as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_operation_get_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_channel_map_init_extend as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_channel_map_init_extend ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_channel_map_valid as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_channel_map_valid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_channel_map_compatible as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_channel_map_compatible ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_new as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_new ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_unref as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_unref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_connect_playback as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_connect_playback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_connect_record as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_connect_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_disconnect as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_disconnect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_get_state as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_get_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_get_sample_spec as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_get_sample_spec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_get_channel_map as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_get_channel_map ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_get_buffer_attr as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_get_buffer_attr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_set_buffer_attr as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_set_buffer_attr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_get_device_name as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_get_device_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_set_write_callback as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_set_write_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_set_read_callback as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_set_read_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_flush as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_drain as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_drain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_is_corked as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_is_corked ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_cork as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_cork ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_trigger as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_trigger ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_begin_write as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_begin_write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_write as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_write ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_peek as * const _ as usize } , 328usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_peek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_drop as * const _ as usize } , 336usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_drop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_writable_size as * const _ as usize } , 344usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_writable_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pa_stream_readable_size as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pa_stream_readable_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pApplicationName as * const _ as usize } , 360usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pApplicationName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . pServerName as * const _ as usize } , 368usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( pServerName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . tryAutoSpawn as * const _ as usize } , 376usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( tryAutoSpawn ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context__bindgen_ty_1__bindgen_ty_3 { pub jackSO : ma_handle , pub jack_client_open : ma_proc , pub jack_client_close : ma_proc , pub jack_client_name_size : ma_proc , pub jack_set_process_callback : ma_proc , pub jack_set_buffer_size_callback : ma_proc , pub jack_on_shutdown : ma_proc , pub jack_get_sample_rate : ma_proc , pub jack_get_buffer_size : ma_proc , pub jack_get_ports : ma_proc , pub jack_activate : ma_proc , pub jack_deactivate : ma_proc , pub jack_connect : ma_proc , pub jack_port_register : ma_proc , pub jack_port_name : ma_proc , pub jack_port_get_buffer : ma_proc , pub jack_free : ma_proc , pub pClientName : * mut :: std :: os :: raw :: c_char , pub tryStartServer : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_1__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) , 152usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jackSO as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jackSO ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_client_open as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_client_open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_client_close as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_client_close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_client_name_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_client_name_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_set_process_callback as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_set_process_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_set_buffer_size_callback as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_set_buffer_size_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_on_shutdown as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_on_shutdown ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_get_sample_rate as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_get_sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_get_buffer_size as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_get_buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_get_ports as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_get_ports ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_activate as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_activate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_deactivate as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_deactivate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_connect as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_connect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_port_register as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_port_register ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_port_name as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_port_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_port_get_buffer as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_port_get_buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . jack_free as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( jack_free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . pClientName as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( pClientName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . tryStartServer as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( tryStartServer ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context__bindgen_ty_1__bindgen_ty_4 { pub _unused : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_1__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_1__bindgen_ty_4 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_1__bindgen_ty_4 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . _unused as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( _unused ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_1 > ( ) , 504usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1 > ( ) ) ) . alsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1 ) , "::" , stringify ! ( alsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1 > ( ) ) ) . pulse as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1 ) , "::" , stringify ! ( pulse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1 > ( ) ) ) . jack as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1 ) , "::" , stringify ! ( jack ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_1 > ( ) ) ) . null_backend as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_1 ) , "::" , stringify ! ( null_backend ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_context__bindgen_ty_2 { pub posix : ma_context__bindgen_ty_2__bindgen_ty_1 , pub _unused : :: std :: os :: raw :: c_int , _bindgen_union_align : [ u64 ; 16usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_context__bindgen_ty_2__bindgen_ty_1 { pub pthreadSO : ma_handle , pub pthread_create : ma_proc , pub pthread_join : ma_proc , pub pthread_mutex_init : ma_proc , pub pthread_mutex_destroy : ma_proc , pub pthread_mutex_lock : ma_proc , pub pthread_mutex_unlock : ma_proc , pub pthread_cond_init : ma_proc , pub pthread_cond_destroy : ma_proc , pub pthread_cond_wait : ma_proc , pub pthread_cond_signal : ma_proc , pub pthread_attr_init : ma_proc , pub pthread_attr_destroy : ma_proc , pub pthread_attr_setschedpolicy : ma_proc , pub pthread_attr_getschedparam : ma_proc , pub pthread_attr_setschedparam : ma_proc , } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_2__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthreadSO as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthreadSO ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_create as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_create ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_join as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_join ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_mutex_init as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_mutex_init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_mutex_destroy as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_mutex_destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_mutex_lock as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_mutex_lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_mutex_unlock as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_mutex_unlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_cond_init as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_cond_init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_cond_destroy as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_cond_destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_cond_wait as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_cond_wait ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_cond_signal as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_cond_signal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_attr_init as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_attr_init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_attr_destroy as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_attr_destroy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_attr_setschedpolicy as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_attr_setschedpolicy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_attr_getschedparam as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_attr_getschedparam ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . pthread_attr_setschedparam as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( pthread_attr_setschedparam ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_context__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context__bindgen_ty_2 > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( ma_context__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2 > ( ) ) ) . posix as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2 ) , "::" , stringify ! ( posix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context__bindgen_ty_2 > ( ) ) ) . _unused as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context__bindgen_ty_2 ) , "::" , stringify ! ( _unused ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_context > ( ) , 864usize , concat ! ( "Size of: " , stringify ! ( ma_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . backend as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( backend ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . logCallback as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( logCallback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . threadPriority as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( threadPriority ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . pUserData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . deviceEnumLock as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( deviceEnumLock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . deviceInfoLock as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( deviceInfoLock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . deviceInfoCapacity as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( deviceInfoCapacity ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . playbackDeviceInfoCount as * const _ as usize } , 132usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( playbackDeviceInfoCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . captureDeviceInfoCount as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( captureDeviceInfoCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . pDeviceInfos as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( pDeviceInfos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onUninit as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onUninit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceIDEqual as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceIDEqual ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onEnumDevices as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onEnumDevices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onGetDeviceInfo as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onGetDeviceInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceInit as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceInit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceUninit as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceUninit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceStart as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceStart ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceStop as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceStop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_context > ( ) ) ) . onDeviceMainLoop as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( ma_context ) , "::" , stringify ! ( onDeviceMainLoop ) ) ) ; } impl ma_context { # [ inline ] pub fn isBackendAsynchronous ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isBackendAsynchronous ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( isBackendAsynchronous : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let isBackendAsynchronous : u32 = unsafe { :: std :: mem :: transmute ( isBackendAsynchronous ) } ; isBackendAsynchronous as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device { pub pContext : * mut ma_context , pub type_ : ma_device_type , pub sampleRate : ma_uint32 , pub state : ma_uint32 , pub onData : ma_device_callback_proc , pub onStop : ma_stop_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub lock : ma_mutex , pub wakeupEvent : ma_event , pub startEvent : ma_event , pub stopEvent : ma_event , pub thread : ma_thread , pub workResult : ma_result , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub masterVolumeFactor : f32 , pub __bindgen_padding_0 : u64 , pub playback : ma_device__bindgen_ty_1 , pub capture : ma_device__bindgen_ty_2 , pub __bindgen_anon_1 : ma_device__bindgen_ty_3 , } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_1 { pub name : [ :: std :: os :: raw :: c_char ; 256usize ] , pub shareMode : ma_share_mode , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub format : ma_format , pub channels : ma_uint32 , pub channelMap : [ ma_channel ; 32usize ] , pub internalFormat : ma_format , pub internalChannels : ma_uint32 , pub internalSampleRate : ma_uint32 , pub internalChannelMap : [ ma_channel ; 32usize ] , pub internalBufferSizeInFrames : ma_uint32 , pub internalPeriods : ma_uint32 , pub __bindgen_padding_0 : [ u64 ; 3usize ] , pub converter : ma_pcm_converter , pub _dspFrameCount : ma_uint32 , pub _dspFrames : * const ma_uint8 , pub __bindgen_padding_1 : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_1 > ( ) , 47104usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_1 > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . shareMode as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( shareMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . format as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . channels as * const _ as usize } , 268usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . channelMap as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( channelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalFormat as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalChannels as * const _ as usize } , 308usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalSampleRate as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalChannelMap as * const _ as usize } , 316usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalChannelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalBufferSizeInFrames as * const _ as usize } , 348usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalBufferSizeInFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . internalPeriods as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( internalPeriods ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . converter as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( converter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . _dspFrameCount as * const _ as usize } , 47040usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( _dspFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_1 > ( ) ) ) . _dspFrames as * const _ as usize } , 47048usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_1 ) , "::" , stringify ! ( _dspFrames ) ) ) ; } impl ma_device__bindgen_ty_1 { # [ inline ] pub fn usingDefaultFormat ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultFormat ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultChannels ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultChannels ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultChannelMap ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultChannelMap ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( usingDefaultFormat : ma_bool32 , usingDefaultChannels : ma_bool32 , usingDefaultChannelMap : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let usingDefaultFormat : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultFormat ) } ; usingDefaultFormat as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let usingDefaultChannels : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultChannels ) } ; usingDefaultChannels as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let usingDefaultChannelMap : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultChannelMap ) } ; usingDefaultChannelMap as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_2 { pub name : [ :: std :: os :: raw :: c_char ; 256usize ] , pub shareMode : ma_share_mode , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub format : ma_format , pub channels : ma_uint32 , pub channelMap : [ ma_channel ; 32usize ] , pub internalFormat : ma_format , pub internalChannels : ma_uint32 , pub internalSampleRate : ma_uint32 , pub internalChannelMap : [ ma_channel ; 32usize ] , pub internalBufferSizeInFrames : ma_uint32 , pub internalPeriods : ma_uint32 , pub __bindgen_padding_0 : [ u64 ; 3usize ] , pub converter : ma_pcm_converter , pub _dspFrameCount : ma_uint32 , pub _dspFrames : * const ma_uint8 , pub __bindgen_padding_1 : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_2 > ( ) , 47104usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_2 > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . shareMode as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( shareMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . format as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . channels as * const _ as usize } , 268usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . channelMap as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( channelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalFormat as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalChannels as * const _ as usize } , 308usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalSampleRate as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalChannelMap as * const _ as usize } , 316usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalChannelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalBufferSizeInFrames as * const _ as usize } , 348usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalBufferSizeInFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . internalPeriods as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( internalPeriods ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . converter as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( converter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . _dspFrameCount as * const _ as usize } , 47040usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( _dspFrameCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_2 > ( ) ) ) . _dspFrames as * const _ as usize } , 47048usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_2 ) , "::" , stringify ! ( _dspFrames ) ) ) ; } impl ma_device__bindgen_ty_2 { # [ inline ] pub fn usingDefaultFormat ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultFormat ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultChannels ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultChannels ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultChannelMap ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultChannelMap ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( usingDefaultFormat : ma_bool32 , usingDefaultChannels : ma_bool32 , usingDefaultChannelMap : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let usingDefaultFormat : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultFormat ) } ; usingDefaultFormat as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let usingDefaultChannels : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultChannels ) } ; usingDefaultChannels as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let usingDefaultChannelMap : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultChannelMap ) } ; usingDefaultChannelMap as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_device__bindgen_ty_3 { pub alsa : ma_device__bindgen_ty_3__bindgen_ty_1 , pub pulse : ma_device__bindgen_ty_3__bindgen_ty_2 , pub jack : ma_device__bindgen_ty_3__bindgen_ty_3 , pub null_device : ma_device__bindgen_ty_3__bindgen_ty_4 , _bindgen_union_align : [ u64 ; 72usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_3__bindgen_ty_1 { pub pPCMPlayback : ma_ptr , pub pPCMCapture : ma_ptr , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 7usize ] , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_3__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_3__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_3__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_1 > ( ) ) ) . pPCMPlayback as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_1 ) , "::" , stringify ! ( pPCMPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_1 > ( ) ) ) . pPCMCapture as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_1 ) , "::" , stringify ! ( pPCMCapture ) ) ) ; } impl ma_device__bindgen_ty_3__bindgen_ty_1 { # [ inline ] pub fn isUsingMMapPlayback ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isUsingMMapPlayback ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isUsingMMapCapture ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isUsingMMapCapture ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( isUsingMMapPlayback : ma_bool32 , isUsingMMapCapture : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let isUsingMMapPlayback : u32 = unsafe { :: std :: mem :: transmute ( isUsingMMapPlayback ) } ; isUsingMMapPlayback as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let isUsingMMapCapture : u32 = unsafe { :: std :: mem :: transmute ( isUsingMMapCapture ) } ; isUsingMMapCapture as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_3__bindgen_ty_2 { pub pMainLoop : ma_ptr , pub pAPI : ma_ptr , pub pPulseContext : ma_ptr , pub pStreamPlayback : ma_ptr , pub pStreamCapture : ma_ptr , pub pulseContextState : ma_uint32 , pub pMappedBufferPlayback : * mut :: std :: os :: raw :: c_void , pub pMappedBufferCapture : * const :: std :: os :: raw :: c_void , pub mappedBufferFramesRemainingPlayback : ma_uint32 , pub mappedBufferFramesRemainingCapture : ma_uint32 , pub mappedBufferFramesCapacityPlayback : ma_uint32 , pub mappedBufferFramesCapacityCapture : ma_uint32 , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > , pub __bindgen_padding_0 : [ u8 ; 7usize ] , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_3__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pMainLoop as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pMainLoop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pAPI as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pAPI ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pPulseContext as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pPulseContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pStreamPlayback as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pStreamPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pStreamCapture as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pStreamCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pulseContextState as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pulseContextState ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pMappedBufferPlayback as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pMappedBufferPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . pMappedBufferCapture as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( pMappedBufferCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . mappedBufferFramesRemainingPlayback as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( mappedBufferFramesRemainingPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . mappedBufferFramesRemainingCapture as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( mappedBufferFramesRemainingCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . mappedBufferFramesCapacityPlayback as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( mappedBufferFramesCapacityPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_2 > ( ) ) ) . mappedBufferFramesCapacityCapture as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_2 ) , "::" , stringify ! ( mappedBufferFramesCapacityCapture ) ) ) ; } impl ma_device__bindgen_ty_3__bindgen_ty_2 { # [ inline ] pub fn breakFromMainLoop ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_breakFromMainLoop ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( breakFromMainLoop : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let breakFromMainLoop : u32 = unsafe { :: std :: mem :: transmute ( breakFromMainLoop ) } ; breakFromMainLoop as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_3__bindgen_ty_3 { pub pClient : ma_ptr , pub pPortsPlayback : [ ma_ptr ; 32usize ] , pub pPortsCapture : [ ma_ptr ; 32usize ] , pub pIntermediaryBufferPlayback : * mut f32 , pub pIntermediaryBufferCapture : * mut f32 , pub duplexRB : ma_pcm_rb , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_3__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) , 576usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . pClient as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( pClient ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . pPortsPlayback as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( pPortsPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . pPortsCapture as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( pPortsCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . pIntermediaryBufferPlayback as * const _ as usize } , 520usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( pIntermediaryBufferPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . pIntermediaryBufferCapture as * const _ as usize } , 528usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( pIntermediaryBufferCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_3 > ( ) ) ) . duplexRB as * const _ as usize } , 536usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_3 ) , "::" , stringify ! ( duplexRB ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_device__bindgen_ty_3__bindgen_ty_4 { pub deviceThread : ma_thread , pub operationEvent : ma_event , pub operationCompletionEvent : ma_event , pub operation : ma_uint32 , pub operationResult : ma_result , pub timer : ma_timer , pub priorRunTime : f64 , pub currentPeriodFramesRemainingPlayback : ma_uint32 , pub currentPeriodFramesRemainingCapture : ma_uint32 , pub lastProcessedFramePlayback : ma_uint64 , pub lastProcessedFrameCapture : ma_uint32 , pub isStarted : ma_bool32 , } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_3__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) , 272usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . deviceThread as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( deviceThread ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . operationEvent as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( operationEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . operationCompletionEvent as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( operationCompletionEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . operation as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( operation ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . operationResult as * const _ as usize } , 228usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( operationResult ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . timer as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( timer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . priorRunTime as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( priorRunTime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . currentPeriodFramesRemainingPlayback as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( currentPeriodFramesRemainingPlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . currentPeriodFramesRemainingCapture as * const _ as usize } , 252usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( currentPeriodFramesRemainingCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . lastProcessedFramePlayback as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( lastProcessedFramePlayback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . lastProcessedFrameCapture as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( lastProcessedFrameCapture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3__bindgen_ty_4 > ( ) ) ) . isStarted as * const _ as usize } , 268usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3__bindgen_ty_4 ) , "::" , stringify ! ( isStarted ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_device__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device__bindgen_ty_3 > ( ) , 576usize , concat ! ( "Size of: " , stringify ! ( ma_device__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_device__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3 > ( ) ) ) . alsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3 ) , "::" , stringify ! ( alsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3 > ( ) ) ) . pulse as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3 ) , "::" , stringify ! ( pulse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3 > ( ) ) ) . jack as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3 ) , "::" , stringify ! ( jack ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device__bindgen_ty_3 > ( ) ) ) . null_device as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device__bindgen_ty_3 ) , "::" , stringify ! ( null_device ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_device ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_device > ( ) , 95232usize , concat ! ( "Size of: " , stringify ! ( ma_device ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_device > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_device ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . pContext as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( pContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . type_ as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . sampleRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( sampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . state as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . onData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( onData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . onStop as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( onStop ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . pUserData as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . lock as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . wakeupEvent as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( wakeupEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . startEvent as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( startEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . stopEvent as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( stopEvent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . thread as * const _ as usize } , 408usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( thread ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . workResult as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( workResult ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . masterVolumeFactor as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( masterVolumeFactor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . playback as * const _ as usize } , 448usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( playback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_device > ( ) ) ) . capture as * const _ as usize } , 47552usize , concat ! ( "Offset of field: " , stringify ! ( ma_device ) , "::" , stringify ! ( capture ) ) ) ; } impl ma_device { # [ inline ] pub fn usingDefaultSampleRate ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultSampleRate ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultBufferSize ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 1usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultBufferSize ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 1usize , 1u8 , val as u64 ) } } # [ inline ] pub fn usingDefaultPeriods ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_usingDefaultPeriods ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 1u8 , val as u64 ) } } # [ inline ] pub fn isOwnerOfContext ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 3usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_isOwnerOfContext ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 3usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noPreZeroedOutputBuffer ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 4usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noPreZeroedOutputBuffer ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 4usize , 1u8 , val as u64 ) } } # [ inline ] pub fn noClip ( & self ) -> ma_bool32 { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 5usize , 1u8 ) as u32 ) } } # [ inline ] pub fn set_noClip ( & mut self , val : ma_bool32 ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 5usize , 1u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( usingDefaultSampleRate : ma_bool32 , usingDefaultBufferSize : ma_bool32 , usingDefaultPeriods : ma_bool32 , isOwnerOfContext : ma_bool32 , noPreZeroedOutputBuffer : ma_bool32 , noClip : ma_bool32 ) -> __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 1usize ] , u8 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 1u8 , { let usingDefaultSampleRate : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultSampleRate ) } ; usingDefaultSampleRate as u64 } ) ; __bindgen_bitfield_unit . set ( 1usize , 1u8 , { let usingDefaultBufferSize : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultBufferSize ) } ; usingDefaultBufferSize as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 1u8 , { let usingDefaultPeriods : u32 = unsafe { :: std :: mem :: transmute ( usingDefaultPeriods ) } ; usingDefaultPeriods as u64 } ) ; __bindgen_bitfield_unit . set ( 3usize , 1u8 , { let isOwnerOfContext : u32 = unsafe { :: std :: mem :: transmute ( isOwnerOfContext ) } ; isOwnerOfContext as u64 } ) ; __bindgen_bitfield_unit . set ( 4usize , 1u8 , { let noPreZeroedOutputBuffer : u32 = unsafe { :: std :: mem :: transmute ( noPreZeroedOutputBuffer ) } ; noPreZeroedOutputBuffer as u64 } ) ; __bindgen_bitfield_unit . set ( 5usize , 1u8 , { let noClip : u32 = unsafe { :: std :: mem :: transmute ( noClip ) } ; noClip as u64 } ) ; __bindgen_bitfield_unit } } extern "C" { pub fn ma_context_init ( backends : * const ma_backend , backendCount : ma_uint32 , pConfig : * const ma_context_config , pContext : * mut ma_context ) -> ma_result ; } extern "C" { pub fn ma_context_uninit ( pContext : * mut ma_context ) -> ma_result ; } extern "C" { pub fn ma_context_enumerate_devices ( pContext : * mut ma_context , callback : ma_enum_devices_callback_proc , pUserData : * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_context_get_devices ( pContext : * mut ma_context , ppPlaybackDeviceInfos : * mut * mut ma_device_info , pPlaybackDeviceCount : * mut ma_uint32 , ppCaptureDeviceInfos : * mut * mut ma_device_info , pCaptureDeviceCount : * mut ma_uint32 ) -> ma_result ; } extern "C" { pub fn ma_context_get_device_info ( pContext : * mut ma_context , deviceType : ma_device_type , pDeviceID : * const ma_device_id , shareMode : ma_share_mode , pDeviceInfo : * mut ma_device_info ) -> ma_result ; } extern "C" { pub fn ma_context_is_loopback_supported ( pContext : * mut ma_context ) -> ma_bool32 ; } extern "C" { pub fn ma_device_init ( pContext : * mut ma_context , pConfig : * const ma_device_config , pDevice : * mut ma_device ) -> ma_result ; } extern "C" { pub fn ma_device_init_ex ( backends : * const ma_backend , backendCount : ma_uint32 , pContextConfig : * const ma_context_config , pConfig : * const ma_device_config , pDevice : * mut ma_device ) -> ma_result ; } extern "C" { pub fn ma_device_uninit ( pDevice : * mut ma_device ) ; } extern "C" { pub fn ma_device_set_stop_callback ( pDevice : * mut ma_device , proc_ : ma_stop_proc ) ; } extern "C" { pub fn ma_device_start ( pDevice : * mut ma_device ) -> ma_result ; } extern "C" { pub fn ma_device_stop ( pDevice : * mut ma_device ) -> ma_result ; } extern "C" { pub fn ma_device_is_started ( pDevice : * mut ma_device ) -> ma_bool32 ; } extern "C" { pub fn ma_device_set_master_volume ( pDevice : * mut ma_device , volume : f32 ) -> ma_result ; } extern "C" { pub fn ma_device_get_master_volume ( pDevice : * mut ma_device , pVolume : * mut f32 ) -> ma_result ; } extern "C" { pub fn ma_device_set_master_gain_db ( pDevice : * mut ma_device , gainDB : f32 ) -> ma_result ; } extern "C" { pub fn ma_device_get_master_gain_db ( pDevice : * mut ma_device , pGainDB : * mut f32 ) -> ma_result ; } extern "C" { pub fn ma_context_config_init ( ) -> ma_context_config ; } extern "C" { pub fn ma_device_config_init ( deviceType : ma_device_type ) -> ma_device_config ; } extern "C" { # [ doc = "Utiltities" ] pub fn ma_mutex_init ( pContext : * mut ma_context , pMutex : * mut ma_mutex ) -> ma_result ; } extern "C" { pub fn ma_mutex_uninit ( pMutex : * mut ma_mutex ) ; } extern "C" { pub fn ma_mutex_lock ( pMutex : * mut ma_mutex ) ; } extern "C" { pub fn ma_mutex_unlock ( pMutex : * mut ma_mutex ) ; } extern "C" { pub fn ma_get_backend_name ( backend : ma_backend ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn ma_is_loopback_supported ( backend : ma_backend ) -> ma_bool32 ; } extern "C" { pub fn ma_scale_buffer_size ( baseBufferSize : ma_uint32 , scale : f32 ) -> ma_uint32 ; } extern "C" { pub fn ma_calculate_buffer_size_in_milliseconds_from_frames ( bufferSizeInFrames : ma_uint32 , sampleRate : ma_uint32 ) -> ma_uint32 ; } extern "C" { pub fn ma_calculate_buffer_size_in_frames_from_milliseconds ( bufferSizeInMilliseconds : ma_uint32 , sampleRate : ma_uint32 ) -> ma_uint32 ; } extern "C" { pub fn ma_get_default_buffer_size_in_milliseconds ( performanceProfile : ma_performance_profile ) -> ma_uint32 ; } extern "C" { pub fn ma_get_default_buffer_size_in_frames ( performanceProfile : ma_performance_profile , sampleRate : ma_uint32 ) -> ma_uint32 ; } extern "C" { pub fn ma_zero_pcm_frames ( p : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint32 , format : ma_format , channels : ma_uint32 ) ; } extern "C" { pub fn ma_clip_samples_f32 ( p : * mut f32 , sampleCount : ma_uint32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_u8 ( pSamplesOut : * mut ma_uint8 , pSamplesIn : * const ma_uint8 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_s16 ( pSamplesOut : * mut ma_int16 , pSamplesIn : * const ma_int16 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_s24 ( pSamplesOut : * mut :: std :: os :: raw :: c_void , pSamplesIn : * const :: std :: os :: raw :: c_void , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_s32 ( pSamplesOut : * mut ma_int32 , pSamplesIn : * const ma_int32 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_f32 ( pSamplesOut : * mut f32 , pSamplesIn : * const f32 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_u8 ( pSamples : * mut ma_uint8 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_s16 ( pSamples : * mut ma_int16 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_s24 ( pSamples : * mut :: std :: os :: raw :: c_void , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_s32 ( pSamples : * mut ma_int32 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_f32 ( pSamples : * mut f32 , sampleCount : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames_u8 ( pPCMFramesOut : * mut ma_uint8 , pPCMFramesIn : * const ma_uint8 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames_s16 ( pPCMFramesOut : * mut ma_int16 , pPCMFramesIn : * const ma_int16 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames_s24 ( pPCMFramesOut : * mut :: std :: os :: raw :: c_void , pPCMFramesIn : * const :: std :: os :: raw :: c_void , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames_s32 ( pPCMFramesOut : * mut ma_int32 , pPCMFramesIn : * const ma_int32 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames_f32 ( pPCMFramesOut : * mut f32 , pPCMFramesIn : * const f32 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_copy_and_apply_volume_factor_pcm_frames ( pFramesOut : * mut :: std :: os :: raw :: c_void , pFramesIn : * const :: std :: os :: raw :: c_void , frameCount : ma_uint32 , format : ma_format , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames_u8 ( pFrames : * mut ma_uint8 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames_s16 ( pFrames : * mut ma_int16 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames_s24 ( pFrames : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames_s32 ( pFrames : * mut ma_int32 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames_f32 ( pFrames : * mut f32 , frameCount : ma_uint32 , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_apply_volume_factor_pcm_frames ( pFrames : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint32 , format : ma_format , channels : ma_uint32 , factor : f32 ) ; } extern "C" { pub fn ma_factor_to_gain_db ( factor : f32 ) -> f32 ; } extern "C" { pub fn ma_gain_db_to_factor ( gain : f32 ) -> f32 ; } pub const ma_seek_origin_ma_seek_origin_start : ma_seek_origin = 0 ; pub const ma_seek_origin_ma_seek_origin_current : ma_seek_origin = 1 ; pub type ma_seek_origin = u32 ; pub type ma_decoder_read_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDecoder : * mut ma_decoder , pBufferOut : * mut :: std :: os :: raw :: c_void , bytesToRead : usize ) -> usize > ; pub type ma_decoder_seek_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDecoder : * mut ma_decoder , byteOffset : :: std :: os :: raw :: c_int , origin : ma_seek_origin ) -> ma_bool32 > ; pub type ma_decoder_seek_to_pcm_frame_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDecoder : * mut ma_decoder , frameIndex : ma_uint64 ) -> ma_result > ; pub type ma_decoder_uninit_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDecoder : * mut ma_decoder ) -> ma_result > ; pub type ma_decoder_get_length_in_pcm_frames_proc = :: std :: option :: Option < unsafe extern "C" fn ( pDecoder : * mut ma_decoder ) -> ma_uint64 > ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_decoder_config { pub format : ma_format , pub channels : ma_uint32 , pub sampleRate : ma_uint32 , pub channelMap : [ ma_channel ; 32usize ] , pub channelMixMode : ma_channel_mix_mode , pub ditherMode : ma_dither_mode , pub srcAlgorithm : ma_src_algorithm , pub src : ma_decoder_config__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union ma_decoder_config__bindgen_ty_1 { pub sinc : ma_src_config_sinc , _bindgen_union_align : [ u32 ; 2usize ] , } # [ test ] fn bindgen_test_layout_ma_decoder_config__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_decoder_config__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( ma_decoder_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_decoder_config__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_decoder_config__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config__bindgen_ty_1 > ( ) ) ) . sinc as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config__bindgen_ty_1 ) , "::" , stringify ! ( sinc ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_decoder_config ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_decoder_config > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( ma_decoder_config ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_decoder_config > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( ma_decoder_config ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . format as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . channels as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . sampleRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( sampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . channelMap as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( channelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . channelMixMode as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( channelMixMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . ditherMode as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( ditherMode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . srcAlgorithm as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( srcAlgorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder_config > ( ) ) ) . src as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder_config ) , "::" , stringify ! ( src ) ) ) ; } # [ repr ( C ) ] # [ repr ( align ( 64 ) ) ] # [ derive ( Copy , Clone ) ] pub struct ma_decoder { pub onRead : ma_decoder_read_proc , pub onSeek : ma_decoder_seek_proc , pub pUserData : * mut :: std :: os :: raw :: c_void , pub readPointer : ma_uint64 , pub internalFormat : ma_format , pub internalChannels : ma_uint32 , pub internalSampleRate : ma_uint32 , pub internalChannelMap : [ ma_channel ; 32usize ] , pub outputFormat : ma_format , pub outputChannels : ma_uint32 , pub outputSampleRate : ma_uint32 , pub outputChannelMap : [ ma_channel ; 32usize ] , pub __bindgen_padding_0 : u64 , pub dsp : ma_pcm_converter , pub onSeekToPCMFrame : ma_decoder_seek_to_pcm_frame_proc , pub onUninit : ma_decoder_uninit_proc , pub onGetLengthInPCMFrames : ma_decoder_get_length_in_pcm_frames_proc , pub pInternalDecoder : * mut :: std :: os :: raw :: c_void , pub memory : ma_decoder__bindgen_ty_1 , pub __bindgen_padding_1 : u64 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_decoder__bindgen_ty_1 { pub pData : * const ma_uint8 , pub dataSize : usize , pub currentReadPos : usize , } # [ test ] fn bindgen_test_layout_ma_decoder__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_decoder__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ma_decoder__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_decoder__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_decoder__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder__bindgen_ty_1 > ( ) ) ) . pData as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder__bindgen_ty_1 ) , "::" , stringify ! ( pData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder__bindgen_ty_1 > ( ) ) ) . dataSize as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder__bindgen_ty_1 ) , "::" , stringify ! ( dataSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder__bindgen_ty_1 > ( ) ) ) . currentReadPos as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder__bindgen_ty_1 ) , "::" , stringify ! ( currentReadPos ) ) ) ; } # [ test ] fn bindgen_test_layout_ma_decoder ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_decoder > ( ) , 46848usize , concat ! ( "Size of: " , stringify ! ( ma_decoder ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_decoder > ( ) , 64usize , concat ! ( "Alignment of " , stringify ! ( ma_decoder ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . onRead as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( onRead ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . onSeek as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( onSeek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . pUserData as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( pUserData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . readPointer as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( readPointer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . internalFormat as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( internalFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . internalChannels as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( internalChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . internalSampleRate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( internalSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . internalChannelMap as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( internalChannelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . outputFormat as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( outputFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . outputChannels as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( outputChannels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . outputSampleRate as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( outputSampleRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . outputChannelMap as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( outputChannelMap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . dsp as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( dsp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . onSeekToPCMFrame as * const _ as usize } , 46784usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( onSeekToPCMFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . onUninit as * const _ as usize } , 46792usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( onUninit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . onGetLengthInPCMFrames as * const _ as usize } , 46800usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( onGetLengthInPCMFrames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . pInternalDecoder as * const _ as usize } , 46808usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( pInternalDecoder ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_decoder > ( ) ) ) . memory as * const _ as usize } , 46816usize , concat ! ( "Offset of field: " , stringify ! ( ma_decoder ) , "::" , stringify ! ( memory ) ) ) ; } extern "C" { pub fn ma_decoder_config_init ( outputFormat : ma_format , outputChannels : ma_uint32 , outputSampleRate : ma_uint32 ) -> ma_decoder_config ; } extern "C" { pub fn ma_decoder_init ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_wav ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_flac ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_vorbis ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_mp3 ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_raw ( onRead : ma_decoder_read_proc , onSeek : ma_decoder_seek_proc , pUserData : * mut :: std :: os :: raw :: c_void , pConfigIn : * const ma_decoder_config , pConfigOut : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory_wav ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory_flac ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory_vorbis ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory_mp3 ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_memory_raw ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfigIn : * const ma_decoder_config , pConfigOut : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_wav ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_flac ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_vorbis ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_mp3 ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_w ( pFilePath : * const wchar_t , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_wav_w ( pFilePath : * const wchar_t , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_flac_w ( pFilePath : * const wchar_t , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_vorbis_w ( pFilePath : * const wchar_t , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_init_file_mp3_w ( pFilePath : * const wchar_t , pConfig : * const ma_decoder_config , pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_uninit ( pDecoder : * mut ma_decoder ) -> ma_result ; } extern "C" { pub fn ma_decoder_get_length_in_pcm_frames ( pDecoder : * mut ma_decoder ) -> ma_uint64 ; } extern "C" { pub fn ma_decoder_read_pcm_frames ( pDecoder : * mut ma_decoder , pFramesOut : * mut :: std :: os :: raw :: c_void , frameCount : ma_uint64 ) -> ma_uint64 ; } extern "C" { pub fn ma_decoder_seek_to_pcm_frame ( pDecoder : * mut ma_decoder , frameIndex : ma_uint64 ) -> ma_result ; } extern "C" { pub fn ma_decode_file ( pFilePath : * const :: std :: os :: raw :: c_char , pConfig : * mut ma_decoder_config , pFrameCountOut : * mut ma_uint64 , ppDataOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } extern "C" { pub fn ma_decode_memory ( pData : * const :: std :: os :: raw :: c_void , dataSize : usize , pConfig : * mut ma_decoder_config , pFrameCountOut : * mut ma_uint64 , ppDataOut : * mut * mut :: std :: os :: raw :: c_void ) -> ma_result ; } # [ doc = "Generation" ] # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct ma_sine_wave { pub amplitude : f64 , pub periodsPerSecond : f64 , pub delta : f64 , pub time : f64 , } # [ test ] fn bindgen_test_layout_ma_sine_wave ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ma_sine_wave > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( ma_sine_wave ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ma_sine_wave > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ma_sine_wave ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_sine_wave > ( ) ) ) . amplitude as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ma_sine_wave ) , "::" , stringify ! ( amplitude ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_sine_wave > ( ) ) ) . periodsPerSecond as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ma_sine_wave ) , "::" , stringify ! ( periodsPerSecond ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_sine_wave > ( ) ) ) . delta as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ma_sine_wave ) , "::" , stringify ! ( delta ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ma_sine_wave > ( ) ) ) . time as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( ma_sine_wave ) , "::" , stringify ! ( time ) ) ) ; } extern "C" { pub fn ma_sine_wave_init ( amplitude : f64 , period : f64 , sampleRate : ma_uint32 , pSineWave : * mut ma_sine_wave ) -> ma_result ; } extern "C" { pub fn ma_sine_wave_read_f32 ( pSineWave : * mut ma_sine_wave , count : ma_uint64 , pSamples : * mut f32 ) -> ma_uint64 ; } extern "C" { pub fn ma_sine_wave_read_f32_ex ( pSineWave : * mut ma_sine_wave , frameCount : ma_uint64 , channels : ma_uint32 , layout : ma_stream_layout , ppFrames : * mut * mut f32 ) -> ma_uint64 ; }