/* automatically generated by rust-bindgen 0.69.4 */ pub type UInt8 = ::std::os::raw::c_uchar; pub type UInt16 = ::std::os::raw::c_ushort; pub type UInt32 = ::std::os::raw::c_uint; pub type SInt32 = ::std::os::raw::c_int; pub type UInt64 = ::std::os::raw::c_ulonglong; pub type OSStatus = SInt32; pub type ByteCount = ::std::os::raw::c_ulong; pub type ItemCount = ::std::os::raw::c_ulong; pub type Boolean = ::std::os::raw::c_uchar; pub type Byte = UInt8; pub const kMIDIInvalidClient: _bindgen_ty_64 = -10830; pub const kMIDIInvalidPort: _bindgen_ty_64 = -10831; pub const kMIDIWrongEndpointType: _bindgen_ty_64 = -10832; pub const kMIDINoConnection: _bindgen_ty_64 = -10833; pub const kMIDIUnknownEndpoint: _bindgen_ty_64 = -10834; pub const kMIDIUnknownProperty: _bindgen_ty_64 = -10835; pub const kMIDIWrongPropertyType: _bindgen_ty_64 = -10836; pub const kMIDINoCurrentSetup: _bindgen_ty_64 = -10837; pub const kMIDIMessageSendErr: _bindgen_ty_64 = -10838; pub const kMIDIServerStartErr: _bindgen_ty_64 = -10839; pub const kMIDISetupFormatErr: _bindgen_ty_64 = -10840; pub const kMIDIWrongThread: _bindgen_ty_64 = -10841; pub const kMIDIObjectNotFound: _bindgen_ty_64 = -10842; pub const kMIDIIDNotUnique: _bindgen_ty_64 = -10843; pub const kMIDINotPermitted: _bindgen_ty_64 = -10844; pub const kMIDIUnknownError: _bindgen_ty_64 = -10845; pub type _bindgen_ty_64 = ::std::os::raw::c_int; pub type MIDIObjectRef = UInt32; pub type MIDIClientRef = MIDIObjectRef; pub type MIDIPortRef = MIDIObjectRef; pub type MIDIDeviceRef = MIDIObjectRef; pub type MIDIEntityRef = MIDIObjectRef; pub type MIDIEndpointRef = MIDIObjectRef; pub type MIDITimeStamp = UInt64; pub type MIDIObjectType = SInt32; pub const kMIDIObjectType_Other: _bindgen_ty_65 = -1; pub const kMIDIObjectType_Device: _bindgen_ty_65 = 0; pub const kMIDIObjectType_Entity: _bindgen_ty_65 = 1; pub const kMIDIObjectType_Source: _bindgen_ty_65 = 2; pub const kMIDIObjectType_Destination: _bindgen_ty_65 = 3; pub const kMIDIObjectType_ExternalDevice: _bindgen_ty_65 = 16; pub const kMIDIObjectType_ExternalEntity: _bindgen_ty_65 = 17; pub const kMIDIObjectType_ExternalSource: _bindgen_ty_65 = 18; pub const kMIDIObjectType_ExternalDestination: _bindgen_ty_65 = 19; pub type _bindgen_ty_65 = ::std::os::raw::c_int; pub const kMIDIObjectType_ExternalMask: MIDIObjectType = 16; pub type MIDIUniqueID = SInt32; pub const kMIDIInvalidUniqueID: _bindgen_ty_66 = 0; pub type _bindgen_ty_66 = ::std::os::raw::c_uint; pub type MIDIProtocolID = SInt32; pub const kMIDIProtocol_1_0: _bindgen_ty_67 = 1; pub const kMIDIProtocol_2_0: _bindgen_ty_67 = 2; pub type _bindgen_ty_67 = ::std::os::raw::c_uint; pub type MIDINotifyProc = ::std::option::Option< unsafe extern "C" fn(message: *const MIDINotification, refCon: *mut ::std::os::raw::c_void), >; pub type MIDINotifyBlock = *mut ::std::os::raw::c_void; pub type MIDIReceiveBlock = *mut ::std::os::raw::c_void; pub type MIDIReadProc = ::std::option::Option< unsafe extern "C" fn( pktlist: *const MIDIPacketList, readProcRefCon: *mut ::std::os::raw::c_void, srcConnRefCon: *mut ::std::os::raw::c_void, ), >; pub type MIDIReadBlock = *mut ::std::os::raw::c_void; pub type MIDICompletionProc = ::std::option::Option; pub type MIDICompletionProcUMP = ::std::option::Option; #[repr(C, packed(4))] pub struct MIDIEventPacket { pub timeStamp: MIDITimeStamp, pub wordCount: UInt32, pub words: [UInt32; 64usize], } #[test] fn bindgen_test_layout_MIDIEventPacket() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 268usize, concat!("Size of: ", stringify!(MIDIEventPacket)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIEventPacket)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).timeStamp) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIEventPacket), "::", stringify!(timeStamp) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).wordCount) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIEventPacket), "::", stringify!(wordCount) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).words) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIEventPacket), "::", stringify!(words) ) ); } #[repr(C)] pub struct MIDIEventList { pub protocol: MIDIProtocolID, pub numPackets: UInt32, pub packet: [MIDIEventPacket; 1usize], } #[test] fn bindgen_test_layout_MIDIEventList() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 276usize, concat!("Size of: ", stringify!(MIDIEventList)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIEventList)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIEventList), "::", stringify!(protocol) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).numPackets) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIEventList), "::", stringify!(numPackets) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).packet) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIEventList), "::", stringify!(packet) ) ); } #[repr(C, packed(4))] pub struct MIDIPacket { pub timeStamp: MIDITimeStamp, pub length: UInt16, pub data: [Byte; 256usize], } #[test] fn bindgen_test_layout_MIDIPacket() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 268usize, concat!("Size of: ", stringify!(MIDIPacket)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIPacket)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).timeStamp) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIPacket), "::", stringify!(timeStamp) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIPacket), "::", stringify!(length) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 10usize, concat!( "Offset of field: ", stringify!(MIDIPacket), "::", stringify!(data) ) ); } #[repr(C)] pub struct MIDIPacketList { pub numPackets: UInt32, pub packet: [MIDIPacket; 1usize], } #[test] fn bindgen_test_layout_MIDIPacketList() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 272usize, concat!("Size of: ", stringify!(MIDIPacketList)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIPacketList)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).numPackets) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIPacketList), "::", stringify!(numPackets) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).packet) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIPacketList), "::", stringify!(packet) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct MIDISysexSendRequest { pub destination: MIDIEndpointRef, pub data: *const Byte, pub bytesToSend: UInt32, pub complete: Boolean, pub reserved: [Byte; 3usize], pub completionProc: MIDICompletionProc, pub completionRefCon: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_MIDISysexSendRequest() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(MIDISysexSendRequest)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(MIDISysexSendRequest)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(destination) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(data) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).bytesToSend) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(bytesToSend) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).complete) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(complete) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, 21usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(reserved) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).completionProc) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(completionProc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).completionRefCon) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(completionRefCon) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct MIDISysexSendRequestUMP { pub destination: MIDIEndpointRef, pub words: *mut UInt32, pub wordsToSend: UInt32, pub complete: Boolean, pub completionProc: MIDICompletionProcUMP, pub completionRefCon: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_MIDISysexSendRequestUMP() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(MIDISysexSendRequestUMP)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(MIDISysexSendRequestUMP)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(destination) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).words) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(words) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).wordsToSend) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(wordsToSend) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).complete) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(complete) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).completionProc) as usize - ptr as usize }, 24usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(completionProc) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).completionRefCon) as usize - ptr as usize }, 32usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequestUMP), "::", stringify!(completionRefCon) ) ); } pub type MIDINotificationMessageID = SInt32; pub const kMIDIMsgSetupChanged: _bindgen_ty_68 = 1; pub const kMIDIMsgObjectAdded: _bindgen_ty_68 = 2; pub const kMIDIMsgObjectRemoved: _bindgen_ty_68 = 3; pub const kMIDIMsgPropertyChanged: _bindgen_ty_68 = 4; pub const kMIDIMsgThruConnectionsChanged: _bindgen_ty_68 = 5; pub const kMIDIMsgSerialPortOwnerChanged: _bindgen_ty_68 = 6; pub const kMIDIMsgIOError: _bindgen_ty_68 = 7; pub const kMIDIMsgInternalStart: _bindgen_ty_68 = 4096; pub type _bindgen_ty_68 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct MIDINotification { pub messageID: MIDINotificationMessageID, pub messageSize: UInt32, } #[test] fn bindgen_test_layout_MIDINotification() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(MIDINotification)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDINotification)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDINotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageSize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDINotification), "::", stringify!(messageSize) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct MIDIObjectAddRemoveNotification { pub messageID: MIDINotificationMessageID, pub messageSize: UInt32, pub parent: MIDIObjectRef, pub parentType: MIDIObjectType, pub child: MIDIObjectRef, pub childType: MIDIObjectType, } #[test] fn bindgen_test_layout_MIDIObjectAddRemoveNotification() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(MIDIObjectAddRemoveNotification)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIObjectAddRemoveNotification)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageSize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(parent) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).parentType) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(parentType) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).child) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(child) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).childType) as usize - ptr as usize }, 20usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(childType) ) ); } #[repr(C)] pub struct MIDIObjectPropertyChangeNotification { pub messageID: MIDINotificationMessageID, pub messageSize: UInt32, pub object: MIDIObjectRef, pub objectType: MIDIObjectType, pub propertyName: CFStringRef, } #[test] fn bindgen_test_layout_MIDIObjectPropertyChangeNotification() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, concat!( "Size of: ", stringify!(MIDIObjectPropertyChangeNotification) ) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!( "Alignment of ", stringify!(MIDIObjectPropertyChangeNotification) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageSize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(object) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).objectType) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(objectType) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).propertyName) as usize - ptr as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(propertyName) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct MIDIIOErrorNotification { pub messageID: MIDINotificationMessageID, pub messageSize: UInt32, pub driverDevice: MIDIDeviceRef, pub errorCode: OSStatus, } #[test] fn bindgen_test_layout_MIDIIOErrorNotification() { const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(MIDIIOErrorNotification)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(MIDIIOErrorNotification)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageID) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).messageSize) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).driverDevice) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(driverDevice) ) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).errorCode) as usize - ptr as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(errorCode) ) ); } extern "C" { pub static kMIDIPropertyName: CFStringRef; } extern "C" { pub static kMIDIPropertyManufacturer: CFStringRef; } extern "C" { pub static kMIDIPropertyModel: CFStringRef; } extern "C" { pub static kMIDIPropertyUniqueID: CFStringRef; } extern "C" { pub static kMIDIPropertyDeviceID: CFStringRef; } extern "C" { pub static kMIDIPropertyReceiveChannels: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitChannels: CFStringRef; } extern "C" { pub static kMIDIPropertyMaxSysExSpeed: CFStringRef; } extern "C" { pub static kMIDIPropertyAdvanceScheduleTimeMuSec: CFStringRef; } extern "C" { pub static kMIDIPropertyIsEmbeddedEntity: CFStringRef; } extern "C" { pub static kMIDIPropertyIsBroadcast: CFStringRef; } extern "C" { pub static kMIDIPropertySingleRealtimeEntity: CFStringRef; } extern "C" { pub static kMIDIPropertyConnectionUniqueID: CFStringRef; } extern "C" { pub static kMIDIPropertyOffline: CFStringRef; } extern "C" { pub static kMIDIPropertyPrivate: CFStringRef; } extern "C" { pub static kMIDIPropertyDriverOwner: CFStringRef; } extern "C" { pub static kMIDIPropertyFactoryPatchNameFile: CFStringRef; } extern "C" { pub static kMIDIPropertyUserPatchNameFile: CFStringRef; } extern "C" { pub static kMIDIPropertyNameConfiguration: CFStringRef; } extern "C" { pub static kMIDIPropertyNameConfigurationDictionary: CFStringRef; } extern "C" { pub static kMIDIPropertyImage: CFStringRef; } extern "C" { pub static kMIDIPropertyDriverVersion: CFStringRef; } extern "C" { pub static kMIDIPropertySupportsGeneralMIDI: CFStringRef; } extern "C" { pub static kMIDIPropertySupportsMMC: CFStringRef; } extern "C" { pub static kMIDIPropertyCanRoute: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesClock: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesMTC: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesNotes: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesProgramChanges: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesBankSelectMSB: CFStringRef; } extern "C" { pub static kMIDIPropertyReceivesBankSelectLSB: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsClock: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsMTC: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsNotes: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsProgramChanges: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsBankSelectMSB: CFStringRef; } extern "C" { pub static kMIDIPropertyTransmitsBankSelectLSB: CFStringRef; } extern "C" { pub static kMIDIPropertyPanDisruptsStereo: CFStringRef; } extern "C" { pub static kMIDIPropertyIsSampler: CFStringRef; } extern "C" { pub static kMIDIPropertyIsDrumMachine: CFStringRef; } extern "C" { pub static kMIDIPropertyIsMixer: CFStringRef; } extern "C" { pub static kMIDIPropertyIsEffectUnit: CFStringRef; } extern "C" { pub static kMIDIPropertyMaxReceiveChannels: CFStringRef; } extern "C" { pub static kMIDIPropertyMaxTransmitChannels: CFStringRef; } extern "C" { pub static kMIDIPropertyDriverDeviceEditorApp: CFStringRef; } extern "C" { pub static kMIDIPropertySupportsShowControl: CFStringRef; } extern "C" { pub static kMIDIPropertyDisplayName: CFStringRef; } extern "C" { pub static kMIDIPropertyProtocolID: CFStringRef; } extern "C" { pub static kMIDIPropertyUMPActiveGroupBitmap: CFStringRef; } extern "C" { pub static kMIDIPropertyUMPCanTransmitGroupless: CFStringRef; } extern "C" { pub static kMIDIPropertyAssociatedEndpoint: CFStringRef; } extern "C" { pub fn MIDIClientCreate( name: CFStringRef, notifyProc: MIDINotifyProc, notifyRefCon: *mut ::std::os::raw::c_void, outClient: *mut MIDIClientRef, ) -> OSStatus; } extern "C" { pub fn MIDIClientCreateWithBlock( name: CFStringRef, outClient: *mut MIDIClientRef, notifyBlock: MIDINotifyBlock, ) -> OSStatus; } extern "C" { pub fn MIDIClientDispose(client: MIDIClientRef) -> OSStatus; } extern "C" { pub fn MIDIInputPortCreateWithProtocol( client: MIDIClientRef, portName: CFStringRef, protocol: MIDIProtocolID, outPort: *mut MIDIPortRef, receiveBlock: MIDIReceiveBlock, ) -> OSStatus; } extern "C" { pub fn MIDIInputPortCreate( client: MIDIClientRef, portName: CFStringRef, readProc: MIDIReadProc, refCon: *mut ::std::os::raw::c_void, outPort: *mut MIDIPortRef, ) -> OSStatus; } extern "C" { pub fn MIDIInputPortCreateWithBlock( client: MIDIClientRef, portName: CFStringRef, outPort: *mut MIDIPortRef, readBlock: MIDIReadBlock, ) -> OSStatus; } extern "C" { pub fn MIDIOutputPortCreate( client: MIDIClientRef, portName: CFStringRef, outPort: *mut MIDIPortRef, ) -> OSStatus; } extern "C" { pub fn MIDIPortDispose(port: MIDIPortRef) -> OSStatus; } extern "C" { pub fn MIDIPortConnectSource( port: MIDIPortRef, source: MIDIEndpointRef, connRefCon: *mut ::std::os::raw::c_void, ) -> OSStatus; } extern "C" { pub fn MIDIPortDisconnectSource(port: MIDIPortRef, source: MIDIEndpointRef) -> OSStatus; } extern "C" { pub fn MIDIGetNumberOfDevices() -> ItemCount; } extern "C" { pub fn MIDIGetDevice(deviceIndex0: ItemCount) -> MIDIDeviceRef; } extern "C" { pub fn MIDIDeviceGetNumberOfEntities(device: MIDIDeviceRef) -> ItemCount; } extern "C" { pub fn MIDIDeviceGetEntity(device: MIDIDeviceRef, entityIndex0: ItemCount) -> MIDIEntityRef; } extern "C" { pub fn MIDIEntityGetNumberOfSources(entity: MIDIEntityRef) -> ItemCount; } extern "C" { pub fn MIDIEntityGetSource(entity: MIDIEntityRef, sourceIndex0: ItemCount) -> MIDIEndpointRef; } extern "C" { pub fn MIDIEntityGetNumberOfDestinations(entity: MIDIEntityRef) -> ItemCount; } extern "C" { pub fn MIDIEntityGetDestination( entity: MIDIEntityRef, destIndex0: ItemCount, ) -> MIDIEndpointRef; } extern "C" { pub fn MIDIEntityGetDevice(inEntity: MIDIEntityRef, outDevice: *mut MIDIDeviceRef) -> OSStatus; } extern "C" { pub fn MIDIGetNumberOfSources() -> ItemCount; } extern "C" { pub fn MIDIGetSource(sourceIndex0: ItemCount) -> MIDIEndpointRef; } extern "C" { pub fn MIDIGetNumberOfDestinations() -> ItemCount; } extern "C" { pub fn MIDIGetDestination(destIndex0: ItemCount) -> MIDIEndpointRef; } extern "C" { pub fn MIDIEndpointGetEntity( inEndpoint: MIDIEndpointRef, outEntity: *mut MIDIEntityRef, ) -> OSStatus; } extern "C" { pub fn MIDIDestinationCreateWithProtocol( client: MIDIClientRef, name: CFStringRef, protocol: MIDIProtocolID, outDest: *mut MIDIEndpointRef, readBlock: MIDIReceiveBlock, ) -> OSStatus; } extern "C" { pub fn MIDIDestinationCreate( client: MIDIClientRef, name: CFStringRef, readProc: MIDIReadProc, refCon: *mut ::std::os::raw::c_void, outDest: *mut MIDIEndpointRef, ) -> OSStatus; } extern "C" { pub fn MIDIDestinationCreateWithBlock( client: MIDIClientRef, name: CFStringRef, outDest: *mut MIDIEndpointRef, readBlock: MIDIReadBlock, ) -> OSStatus; } extern "C" { pub fn MIDISourceCreateWithProtocol( client: MIDIClientRef, name: CFStringRef, protocol: MIDIProtocolID, outSrc: *mut MIDIEndpointRef, ) -> OSStatus; } extern "C" { pub fn MIDISourceCreate( client: MIDIClientRef, name: CFStringRef, outSrc: *mut MIDIEndpointRef, ) -> OSStatus; } extern "C" { pub fn MIDIEndpointDispose(endpt: MIDIEndpointRef) -> OSStatus; } extern "C" { pub fn MIDIGetNumberOfExternalDevices() -> ItemCount; } extern "C" { pub fn MIDIGetExternalDevice(deviceIndex0: ItemCount) -> MIDIDeviceRef; } extern "C" { pub fn MIDIObjectGetIntegerProperty( obj: MIDIObjectRef, propertyID: CFStringRef, outValue: *mut SInt32, ) -> OSStatus; } extern "C" { pub fn MIDIObjectSetIntegerProperty( obj: MIDIObjectRef, propertyID: CFStringRef, value: SInt32, ) -> OSStatus; } extern "C" { pub fn MIDIObjectGetStringProperty( obj: MIDIObjectRef, propertyID: CFStringRef, str_: *mut CFStringRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectSetStringProperty( obj: MIDIObjectRef, propertyID: CFStringRef, str_: CFStringRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectGetDataProperty( obj: MIDIObjectRef, propertyID: CFStringRef, outData: *mut CFDataRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectSetDataProperty( obj: MIDIObjectRef, propertyID: CFStringRef, data: CFDataRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectGetDictionaryProperty( obj: MIDIObjectRef, propertyID: CFStringRef, outDict: *mut CFDictionaryRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectSetDictionaryProperty( obj: MIDIObjectRef, propertyID: CFStringRef, dict: CFDictionaryRef, ) -> OSStatus; } extern "C" { pub fn MIDIObjectGetProperties( obj: MIDIObjectRef, outProperties: *mut CFPropertyListRef, deep: Boolean, ) -> OSStatus; } extern "C" { pub fn MIDIObjectRemoveProperty(obj: MIDIObjectRef, propertyID: CFStringRef) -> OSStatus; } extern "C" { pub fn MIDIObjectFindByUniqueID( inUniqueID: MIDIUniqueID, outObject: *mut MIDIObjectRef, outObjectType: *mut MIDIObjectType, ) -> OSStatus; } extern "C" { pub fn MIDISendEventList( port: MIDIPortRef, dest: MIDIEndpointRef, evtlist: *const MIDIEventList, ) -> OSStatus; } extern "C" { pub fn MIDISend( port: MIDIPortRef, dest: MIDIEndpointRef, pktlist: *const MIDIPacketList, ) -> OSStatus; } extern "C" { pub fn MIDISendSysex(request: *mut MIDISysexSendRequest) -> OSStatus; } extern "C" { pub fn MIDISendUMPSysex(umpRequest: *mut MIDISysexSendRequestUMP) -> OSStatus; } extern "C" { pub fn MIDISendUMPSysex8(umpRequest: *mut MIDISysexSendRequestUMP) -> OSStatus; } extern "C" { pub fn MIDIEventPacketSysexBytesForGroup( pkt: *const MIDIEventPacket, groupIndex: UInt8, outData: *mut CFDataRef, ) -> OSStatus; } extern "C" { pub fn MIDIReceivedEventList(src: MIDIEndpointRef, evtlist: *const MIDIEventList) -> OSStatus; } extern "C" { pub fn MIDIReceived(src: MIDIEndpointRef, pktlist: *const MIDIPacketList) -> OSStatus; } extern "C" { pub fn MIDIFlushOutput(dest: MIDIEndpointRef) -> OSStatus; } extern "C" { pub fn MIDIRestart() -> OSStatus; } extern "C" { pub fn MIDIEventListInit( evtlist: *mut MIDIEventList, protocol: MIDIProtocolID, ) -> *mut MIDIEventPacket; } extern "C" { pub fn MIDIEventListAdd( evtlist: *mut MIDIEventList, listSize: ByteCount, curPacket: *mut MIDIEventPacket, time: MIDITimeStamp, wordCount: ByteCount, words: *const UInt32, ) -> *mut MIDIEventPacket; } extern "C" { pub fn MIDIPacketListInit(pktlist: *mut MIDIPacketList) -> *mut MIDIPacket; } extern "C" { pub fn MIDIPacketListAdd( pktlist: *mut MIDIPacketList, listSize: ByteCount, curPacket: *mut MIDIPacket, time: MIDITimeStamp, nData: ByteCount, data: *const Byte, ) -> *mut MIDIPacket; }