// AUTO-GENERATED by objcjs-types generator — DO NOT EDIT
import { callFunction } from "objc-js";
export function MIDIBluetoothDriverActivateAllConnections() {
    return callFunction("MIDIBluetoothDriverActivateAllConnections", { returns: "i" });
}
export function MIDIBluetoothDriverDisconnect(uuid) {
    return callFunction("MIDIBluetoothDriverDisconnect", { returns: "i", args: ["^"] }, uuid);
}
export function MIDIClientCreate(name, notifyProc, notifyRefCon, outClient) {
    return callFunction("MIDIClientCreate", { returns: "i", args: ["^", "@", "^v", "@"] }, name, notifyProc, notifyRefCon, outClient);
}
export function MIDIClientCreateWithBlock(name, outClient, notifyBlock) {
    return callFunction("MIDIClientCreateWithBlock", { returns: "i", args: ["^", "@", "@?"] }, name, outClient, notifyBlock);
}
export function MIDIClientDispose(client) {
    return callFunction("MIDIClientDispose", { returns: "i", args: ["I"] }, client);
}
export function MIDIDestinationCreate(client, name, readProc, refCon, outDest) {
    return callFunction("MIDIDestinationCreate", { returns: "i", args: ["I", "^", "@", "^v", "@"] }, client, name, readProc, refCon, outDest);
}
export function MIDIDestinationCreateWithBlock(client, name, outDest, readBlock) {
    return callFunction("MIDIDestinationCreateWithBlock", { returns: "i", args: ["I", "^", "@", "@?"] }, client, name, outDest, readBlock);
}
export function MIDIDestinationCreateWithProtocol(client, name, protocol, outDest, readBlock) {
    return callFunction("MIDIDestinationCreateWithProtocol", { returns: "i", args: ["I", "^", "@", "@", "@?"] }, client, name, protocol, outDest, readBlock);
}
export function MIDIDeviceAddEntity(device, name, embedded, numSourceEndpoints, numDestinationEndpoints, newEntity) {
    return callFunction("MIDIDeviceAddEntity", { returns: "i", args: ["I", "^", "C", "L", "L", "@"] }, device, name, embedded, numSourceEndpoints, numDestinationEndpoints, newEntity);
}
export function MIDIDeviceCreate(owner, name, manufacturer, model, outDevice) {
    return callFunction("MIDIDeviceCreate", { returns: "i", args: ["@", "^", "^", "^", "@"] }, owner, name, manufacturer, model, outDevice);
}
export function MIDIDeviceDispose(device) {
    return callFunction("MIDIDeviceDispose", { returns: "i", args: ["I"] }, device);
}
export function MIDIDeviceGetEntity(device, entityIndex0) {
    return callFunction("MIDIDeviceGetEntity", { returns: "I", args: ["I", "L"] }, device, entityIndex0);
}
export function MIDIDeviceGetNumberOfEntities(device) {
    return callFunction("MIDIDeviceGetNumberOfEntities", { returns: "L", args: ["I"] }, device);
}
export function MIDIDeviceListAddDevice(devList, dev) {
    return callFunction("MIDIDeviceListAddDevice", { returns: "i", args: ["I", "I"] }, devList, dev);
}
export function MIDIDeviceListDispose(devList) {
    return callFunction("MIDIDeviceListDispose", { returns: "i", args: ["I"] }, devList);
}
export function MIDIDeviceListGetDevice(devList, index0) {
    return callFunction("MIDIDeviceListGetDevice", { returns: "I", args: ["I", "L"] }, devList, index0);
}
export function MIDIDeviceListGetNumberOfDevices(devList) {
    return callFunction("MIDIDeviceListGetNumberOfDevices", { returns: "L", args: ["I"] }, devList);
}
export function MIDIDeviceNewEntity(device, name, protocol, embedded, numSourceEndpoints, numDestinationEndpoints, newEntity) {
    return callFunction("MIDIDeviceNewEntity", { returns: "i", args: ["I", "^", "@", "C", "L", "L", "@"] }, device, name, protocol, embedded, numSourceEndpoints, numDestinationEndpoints, newEntity);
}
export function MIDIDeviceRemoveEntity(device, entity) {
    return callFunction("MIDIDeviceRemoveEntity", { returns: "i", args: ["I", "I"] }, device, entity);
}
export function MIDIDriverEnableMonitoring(driver, enabled) {
    return callFunction("MIDIDriverEnableMonitoring", { returns: "i", args: ["@", "C"] }, driver, enabled);
}
export function MIDIEndpointDispose(endpt) {
    return callFunction("MIDIEndpointDispose", { returns: "i", args: ["I"] }, endpt);
}
export function MIDIEndpointGetEntity(inEndpoint, outEntity) {
    return callFunction("MIDIEndpointGetEntity", { returns: "i", args: ["I", "@"] }, inEndpoint, outEntity);
}
export function MIDIEndpointGetRefCons(endpt, ref1, ref2) {
    return callFunction("MIDIEndpointGetRefCons", { returns: "i", args: ["I", "@", "@"] }, endpt, ref1, ref2);
}
export function MIDIEndpointSetRefCons(endpt, ref1, ref2) {
    return callFunction("MIDIEndpointSetRefCons", { returns: "i", args: ["I", "^v", "^v"] }, endpt, ref1, ref2);
}
export function MIDIEntityAddOrRemoveEndpoints(entity, numSourceEndpoints, numDestinationEndpoints) {
    return callFunction("MIDIEntityAddOrRemoveEndpoints", { returns: "i", args: ["I", "L", "L"] }, entity, numSourceEndpoints, numDestinationEndpoints);
}
export function MIDIEntityGetDestination(entity, destIndex0) {
    return callFunction("MIDIEntityGetDestination", { returns: "I", args: ["I", "L"] }, entity, destIndex0);
}
export function MIDIEntityGetDevice(inEntity, outDevice) {
    return callFunction("MIDIEntityGetDevice", { returns: "i", args: ["I", "@"] }, inEntity, outDevice);
}
export function MIDIEntityGetNumberOfDestinations(entity) {
    return callFunction("MIDIEntityGetNumberOfDestinations", { returns: "L", args: ["I"] }, entity);
}
export function MIDIEntityGetNumberOfSources(entity) {
    return callFunction("MIDIEntityGetNumberOfSources", { returns: "L", args: ["I"] }, entity);
}
export function MIDIEntityGetSource(entity, sourceIndex0) {
    return callFunction("MIDIEntityGetSource", { returns: "I", args: ["I", "L"] }, entity, sourceIndex0);
}
export function MIDIEventListAdd(evtlist, listSize, curPacket, time, wordCount, words) {
    return callFunction("MIDIEventListAdd", { returns: "@", args: ["@", "L", "@", "Q", "L", "@"] }, evtlist, listSize, curPacket, time, wordCount, words);
}
export function MIDIEventListForEachEvent(evtlist, visitor, visitorContext) {
    callFunction("MIDIEventListForEachEvent", { args: ["@", "@", "^v"] }, evtlist, visitor, visitorContext);
}
export function MIDIEventListInit(evtlist, protocol) {
    return callFunction("MIDIEventListInit", { returns: "@" }, evtlist, protocol);
}
export function MIDIEventPacketSysexBytesForGroup(pkt, groupIndex, outData) {
    return callFunction("MIDIEventPacketSysexBytesForGroup", { returns: "i", args: ["@", "C", "@"] }, pkt, groupIndex, outData);
}
export function MIDIExternalDeviceCreate(name, manufacturer, model, outDevice) {
    return callFunction("MIDIExternalDeviceCreate", { returns: "i", args: ["^", "^", "^", "@"] }, name, manufacturer, model, outDevice);
}
export function MIDIFlushOutput(dest) {
    return callFunction("MIDIFlushOutput", { returns: "i", args: ["I"] }, dest);
}
export function MIDIGetDestination(destIndex0) {
    return callFunction("MIDIGetDestination", { returns: "I", args: ["L"] }, destIndex0);
}
export function MIDIGetDevice(deviceIndex0) {
    return callFunction("MIDIGetDevice", { returns: "I", args: ["L"] }, deviceIndex0);
}
export function MIDIGetDriverDeviceList(driver) {
    return callFunction("MIDIGetDriverDeviceList", { returns: "I" }, driver);
}
export function MIDIGetDriverIORunLoop() {
    return callFunction("MIDIGetDriverIORunLoop", { returns: "^" });
}
export function MIDIGetExternalDevice(deviceIndex0) {
    return callFunction("MIDIGetExternalDevice", { returns: "I", args: ["L"] }, deviceIndex0);
}
export function MIDIGetNumberOfDestinations() {
    return callFunction("MIDIGetNumberOfDestinations", { returns: "L" });
}
export function MIDIGetNumberOfDevices() {
    return callFunction("MIDIGetNumberOfDevices", { returns: "L" });
}
export function MIDIGetNumberOfExternalDevices() {
    return callFunction("MIDIGetNumberOfExternalDevices", { returns: "L" });
}
export function MIDIGetNumberOfSources() {
    return callFunction("MIDIGetNumberOfSources", { returns: "L" });
}
export function MIDIGetSerialPortDrivers(outDriverNames) {
    return callFunction("MIDIGetSerialPortDrivers", { returns: "i" }, outDriverNames);
}
export function MIDIGetSerialPortOwner(portName, outDriverName) {
    return callFunction("MIDIGetSerialPortOwner", { returns: "i", args: ["^", "@"] }, portName, outDriverName);
}
export function MIDIGetSource(sourceIndex0) {
    return callFunction("MIDIGetSource", { returns: "I", args: ["L"] }, sourceIndex0);
}
export function MIDIInputPortCreate(client, portName, readProc, refCon, outPort) {
    return callFunction("MIDIInputPortCreate", { returns: "i", args: ["I", "^", "@", "^v", "@"] }, client, portName, readProc, refCon, outPort);
}
export function MIDIInputPortCreateWithBlock(client, portName, outPort, readBlock) {
    return callFunction("MIDIInputPortCreateWithBlock", { returns: "i", args: ["I", "^", "@", "@?"] }, client, portName, outPort, readBlock);
}
export function MIDIInputPortCreateWithProtocol(client, portName, protocol, outPort, receiveBlock) {
    return callFunction("MIDIInputPortCreateWithProtocol", { returns: "i", args: ["I", "^", "@", "@", "@?"] }, client, portName, protocol, outPort, receiveBlock);
}
export function MIDIObjectFindByUniqueID(inUniqueID, outObject, outObjectType) {
    return callFunction("MIDIObjectFindByUniqueID", { returns: "i", args: ["i", "@", "@"] }, inUniqueID, outObject, outObjectType);
}
export function MIDIObjectGetDataProperty(obj, propertyID, outData) {
    return callFunction("MIDIObjectGetDataProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, outData);
}
export function MIDIObjectGetDictionaryProperty(obj, propertyID, outDict) {
    return callFunction("MIDIObjectGetDictionaryProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, outDict);
}
export function MIDIObjectGetIntegerProperty(obj, propertyID, outValue) {
    return callFunction("MIDIObjectGetIntegerProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, outValue);
}
export function MIDIObjectGetProperties(obj, outProperties, deep) {
    return callFunction("MIDIObjectGetProperties", { returns: "i", args: ["I", "@", "C"] }, obj, outProperties, deep);
}
export function MIDIObjectGetStringProperty(obj, propertyID, str) {
    return callFunction("MIDIObjectGetStringProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, str);
}
export function MIDIObjectRemoveProperty(obj, propertyID) {
    return callFunction("MIDIObjectRemoveProperty", { returns: "i", args: ["I", "^"] }, obj, propertyID);
}
export function MIDIObjectSetDataProperty(obj, propertyID, data) {
    return callFunction("MIDIObjectSetDataProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, data);
}
export function MIDIObjectSetDictionaryProperty(obj, propertyID, dict) {
    return callFunction("MIDIObjectSetDictionaryProperty", { returns: "i", args: ["I", "^", "@"] }, obj, propertyID, dict);
}
export function MIDIObjectSetIntegerProperty(obj, propertyID, value) {
    return callFunction("MIDIObjectSetIntegerProperty", { returns: "i", args: ["I", "^", "i"] }, obj, propertyID, value);
}
export function MIDIObjectSetStringProperty(obj, propertyID, str) {
    return callFunction("MIDIObjectSetStringProperty", { returns: "i", args: ["I", "^", "^"] }, obj, propertyID, str);
}
export function MIDIOutputPortCreate(client, portName, outPort) {
    return callFunction("MIDIOutputPortCreate", { returns: "i", args: ["I", "^", "@"] }, client, portName, outPort);
}
export function MIDIPacketListAdd(pktlist, listSize, curPacket, time, nData, data) {
    return callFunction("MIDIPacketListAdd", { returns: "@", args: ["@", "L", "@", "Q", "L", "@"] }, pktlist, listSize, curPacket, time, nData, data);
}
export function MIDIPacketListInit(pktlist) {
    return callFunction("MIDIPacketListInit", { returns: "@" }, pktlist);
}
export function MIDIPortConnectSource(port, source, connRefCon) {
    return callFunction("MIDIPortConnectSource", { returns: "i", args: ["I", "I", "^v"] }, port, source, connRefCon);
}
export function MIDIPortDisconnectSource(port, source) {
    return callFunction("MIDIPortDisconnectSource", { returns: "i", args: ["I", "I"] }, port, source);
}
export function MIDIPortDispose(port) {
    return callFunction("MIDIPortDispose", { returns: "i", args: ["I"] }, port);
}
export function MIDIReceived(src, pktlist) {
    return callFunction("MIDIReceived", { returns: "i", args: ["I", "@"] }, src, pktlist);
}
export function MIDIReceivedEventList(src, evtlist) {
    return callFunction("MIDIReceivedEventList", { returns: "i", args: ["I", "@"] }, src, evtlist);
}
export function MIDIRestart() {
    return callFunction("MIDIRestart", { returns: "i" });
}
export function MIDISend(port, dest, pktlist) {
    return callFunction("MIDISend", { returns: "i", args: ["I", "I", "@"] }, port, dest, pktlist);
}
export function MIDISendEventList(port, dest, evtlist) {
    return callFunction("MIDISendEventList", { returns: "i", args: ["I", "I", "@"] }, port, dest, evtlist);
}
export function MIDISendSysex(request) {
    return callFunction("MIDISendSysex", { returns: "i" }, request);
}
export function MIDISendUMPSysex(umpRequest) {
    return callFunction("MIDISendUMPSysex", { returns: "i" }, umpRequest);
}
export function MIDISendUMPSysex8(umpRequest) {
    return callFunction("MIDISendUMPSysex8", { returns: "i" }, umpRequest);
}
export function MIDISetSerialPortOwner(portName, driverName) {
    return callFunction("MIDISetSerialPortOwner", { returns: "i", args: ["^", "^"] }, portName, driverName);
}
export function MIDISetupAddDevice(device) {
    return callFunction("MIDISetupAddDevice", { returns: "i", args: ["I"] }, device);
}
export function MIDISetupAddExternalDevice(device) {
    return callFunction("MIDISetupAddExternalDevice", { returns: "i", args: ["I"] }, device);
}
export function MIDISetupCreate(outSetup) {
    return callFunction("MIDISetupCreate", { returns: "i" }, outSetup);
}
export function MIDISetupDispose(setup) {
    return callFunction("MIDISetupDispose", { returns: "i", args: ["I"] }, setup);
}
export function MIDISetupFromData(data, outSetup) {
    return callFunction("MIDISetupFromData", { returns: "i" }, data, outSetup);
}
export function MIDISetupGetCurrent(outSetup) {
    return callFunction("MIDISetupGetCurrent", { returns: "i" }, outSetup);
}
export function MIDISetupInstall(setup) {
    return callFunction("MIDISetupInstall", { returns: "i", args: ["I"] }, setup);
}
export function MIDISetupRemoveDevice(device) {
    return callFunction("MIDISetupRemoveDevice", { returns: "i", args: ["I"] }, device);
}
export function MIDISetupRemoveExternalDevice(device) {
    return callFunction("MIDISetupRemoveExternalDevice", { returns: "i", args: ["I"] }, device);
}
export function MIDISetupToData(setup, outData) {
    return callFunction("MIDISetupToData", { returns: "i", args: ["I", "@"] }, setup, outData);
}
export function MIDISourceCreate(client, name, outSrc) {
    return callFunction("MIDISourceCreate", { returns: "i", args: ["I", "^", "@"] }, client, name, outSrc);
}
export function MIDISourceCreateWithProtocol(client, name, protocol, outSrc) {
    return callFunction("MIDISourceCreateWithProtocol", { returns: "i", args: ["I", "^", "@", "@"] }, client, name, protocol, outSrc);
}
export function MIDIThruConnectionCreate(inPersistentOwnerID, inConnectionParams, outConnection) {
    return callFunction("MIDIThruConnectionCreate", { returns: "i", args: ["^", "@", "@"] }, inPersistentOwnerID, inConnectionParams, outConnection);
}
export function MIDIThruConnectionDispose(connection) {
    return callFunction("MIDIThruConnectionDispose", { returns: "i", args: ["I"] }, connection);
}
export function MIDIThruConnectionFind(inPersistentOwnerID, outConnectionList) {
    return callFunction("MIDIThruConnectionFind", { returns: "i", args: ["^", "@"] }, inPersistentOwnerID, outConnectionList);
}
export function MIDIThruConnectionGetParams(connection, outConnectionParams) {
    return callFunction("MIDIThruConnectionGetParams", { returns: "i", args: ["I", "@"] }, connection, outConnectionParams);
}
export function MIDIThruConnectionParamsInitialize(inConnectionParams) {
    callFunction("MIDIThruConnectionParamsInitialize", undefined, inConnectionParams);
}
export function MIDIThruConnectionSetParams(connection, inConnectionParams) {
    return callFunction("MIDIThruConnectionSetParams", { returns: "i", args: ["I", "@"] }, connection, inConnectionParams);
}
