/* automatically generated by rust-bindgen 0.59.2 */ 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: ::std::os::raw::c_int = -10830; pub const kMIDIInvalidPort: ::std::os::raw::c_int = -10831; pub const kMIDIWrongEndpointType: ::std::os::raw::c_int = -10832; pub const kMIDINoConnection: ::std::os::raw::c_int = -10833; pub const kMIDIUnknownEndpoint: ::std::os::raw::c_int = -10834; pub const kMIDIUnknownProperty: ::std::os::raw::c_int = -10835; pub const kMIDIWrongPropertyType: ::std::os::raw::c_int = -10836; pub const kMIDINoCurrentSetup: ::std::os::raw::c_int = -10837; pub const kMIDIMessageSendErr: ::std::os::raw::c_int = -10838; pub const kMIDIServerStartErr: ::std::os::raw::c_int = -10839; pub const kMIDISetupFormatErr: ::std::os::raw::c_int = -10840; pub const kMIDIWrongThread: ::std::os::raw::c_int = -10841; pub const kMIDIObjectNotFound: ::std::os::raw::c_int = -10842; pub const kMIDIIDNotUnique: ::std::os::raw::c_int = -10843; pub const kMIDINotPermitted: ::std::os::raw::c_int = -10844; pub const kMIDIUnknownError: ::std::os::raw::c_int = -10845; pub type _bindgen_ty_63 = ::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: ::std::os::raw::c_int = -1; pub const kMIDIObjectType_Device: ::std::os::raw::c_int = 0; pub const kMIDIObjectType_Entity: ::std::os::raw::c_int = 1; pub const kMIDIObjectType_Source: ::std::os::raw::c_int = 2; pub const kMIDIObjectType_Destination: ::std::os::raw::c_int = 3; pub const kMIDIObjectType_ExternalDevice: ::std::os::raw::c_int = 16; pub const kMIDIObjectType_ExternalEntity: ::std::os::raw::c_int = 17; pub const kMIDIObjectType_ExternalSource: ::std::os::raw::c_int = 18; pub const kMIDIObjectType_ExternalDestination: ::std::os::raw::c_int = 19; pub type _bindgen_ty_64 = ::std::os::raw::c_int; pub const kMIDIObjectType_ExternalMask: MIDIObjectType = 16; pub type MIDIUniqueID = SInt32; pub const kMIDIInvalidUniqueID: ::std::os::raw::c_uint = 0; pub type _bindgen_ty_65 = ::std::os::raw::c_uint; pub type MIDIProtocolID = SInt32; pub const kMIDIProtocol_1_0: ::std::os::raw::c_uint = 1; pub const kMIDIProtocol_2_0: ::std::os::raw::c_uint = 2; pub type _bindgen_ty_66 = ::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; #[repr(C, packed(4))] pub struct MIDIEventPacket { pub timeStamp: MIDITimeStamp, pub wordCount: UInt32, pub words: [UInt32; 64usize], } #[test] fn bindgen_test_layout_MIDIEventPacket() { 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::null::())).timeStamp as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIEventPacket), "::", stringify!(timeStamp) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).wordCount as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIEventPacket), "::", stringify!(wordCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).words as *const _ 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() { 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::null::())).protocol as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIEventList), "::", stringify!(protocol) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).numPackets as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIEventList), "::", stringify!(numPackets) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).packet as *const _ 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() { 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::null::())).timeStamp as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIPacket), "::", stringify!(timeStamp) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).length as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIPacket), "::", stringify!(length) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).data as *const _ 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() { 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::null::())).numPackets as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIPacketList), "::", stringify!(numPackets) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).packet as *const _ 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() { 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::null::())).destination as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(destination) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).data as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(data) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).bytesToSend as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(bytesToSend) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).complete as *const _ as usize }, 20usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(complete) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).reserved as *const _ as usize }, 21usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(reserved) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).completionProc as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(completionProc) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).completionRefCon as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(MIDISysexSendRequest), "::", stringify!(completionRefCon) ) ); } pub type MIDINotificationMessageID = SInt32; pub const kMIDIMsgSetupChanged: ::std::os::raw::c_uint = 1; pub const kMIDIMsgObjectAdded: ::std::os::raw::c_uint = 2; pub const kMIDIMsgObjectRemoved: ::std::os::raw::c_uint = 3; pub const kMIDIMsgPropertyChanged: ::std::os::raw::c_uint = 4; pub const kMIDIMsgThruConnectionsChanged: ::std::os::raw::c_uint = 5; pub const kMIDIMsgSerialPortOwnerChanged: ::std::os::raw::c_uint = 6; pub const kMIDIMsgIOError: ::std::os::raw::c_uint = 7; pub type _bindgen_ty_67 = ::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() { 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::null::())).messageID as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDINotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).messageSize as *const _ 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() { 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::null::())).messageID as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).messageSize as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).parent as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(parent) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).parentType as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(parentType) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).child as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(MIDIObjectAddRemoveNotification), "::", stringify!(child) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).childType as *const _ 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() { 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::null::())).messageID as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).messageSize as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).object as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(object) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).objectType as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(MIDIObjectPropertyChangeNotification), "::", stringify!(objectType) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).propertyName as *const _ 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() { 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::null::())).messageID as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(messageID) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).messageSize as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(messageSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).driverDevice as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(MIDIIOErrorNotification), "::", stringify!(driverDevice) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).errorCode as *const _ 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 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 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; }