MIDI
摘要
Typedef |
|
---|---|
AMidiDevice
|
typedefstruct AMidiDevice
|
AMidiDevice_Protocol
|
typedefenum AMidiDevice_Protocol
|
AMidiInputPort
|
typedefstruct AMidiInputPort
|
AMidiOutputPort
|
typedefstruct AMidiOutputPort
|
函数 |
|
---|---|
AMidiDevice_fromJava(JNIEnv *env, jobject midiDeviceObj, AMidiDevice **outDevicePtrPtr)
|
media_status_t AMIDI_API
将原生 Midi 设备对象连接到关联的 Java MidiDevice 对象。
|
AMidiDevice_getDefaultProtocol(const AMidiDevice *device)
|
AMidiDevice_Protocol AMIDI_API
获取 MIDI 设备默认协议。
|
AMidiDevice_getNumInputPorts(const AMidiDevice *device)
|
ssize_t AMIDI_API
获取指定 MIDI 设备上可用的输入(发送)端口数量。
|
AMidiDevice_getNumOutputPorts(const AMidiDevice *device)
|
ssize_t AMIDI_API
获取指定 MIDI 设备上可用的输出(接收)端口数量。
|
AMidiDevice_getType(const AMidiDevice *device)
|
int32_t AMIDI_API
获取 MIDI 设备类型。
|
AMidiDevice_release(const AMidiDevice *midiDevice)
|
media_status_t AMIDI_API
断开原生 Midi 设备对象与关联的 Java MidiDevice 对象的连接。
|
AMidiInputPort_close(const AMidiInputPort *inputPort)
|
void AMIDI_API
关闭输入端口。
|
AMidiInputPort_open(const AMidiDevice *device, int32_t portNumber, AMidiInputPort **outInputPortPtr)
|
media_status_t AMIDI_API
打开输入端口,以便客户端可以向其发送数据。
|
AMidiInputPort_send(const AMidiInputPort *inputPort, const uint8_t *buffer, size_t numBytes)
|
ssize_t AMIDI_API
将数据发送到指定的输入端口。
|
AMidiInputPort_sendFlush(const AMidiInputPort *inputPort)
|
media_status_t AMIDI_API
将包含“MIDI 刷新命令代码”的消息发送到指定的端口。
|
AMidiInputPort_sendWithTimestamp(const AMidiInputPort *inputPort, const uint8_t *buffer, size_t numBytes, int64_t timestamp)
|
ssize_t AMIDI_API
将带有时间戳的数据发送到指定的输入端口。
|
AMidiOutputPort_close(const AMidiOutputPort *outputPort)
|
void AMIDI_API
关闭输出端口。
|
AMidiOutputPort_open(const AMidiDevice *device, int32_t portNumber, AMidiOutputPort **outOutputPortPtr)
|
media_status_t AMIDI_API
打开输出端口,以便客户端可以从中接收数据。
|
AMidiOutputPort_receive(const AMidiOutputPort *outputPort, int32_t *opcodePtr, uint8_t *buffer, size_t maxBytes, size_t *numBytesReceivedPtr, int64_t *outTimestampPtr)
|
ssize_t AMIDI_API
接收下一个待处理的 MIDI 消息。
|
枚举
匿名枚举 15
声明位于amidi/AMidi.h
Anonymous Enum 15
AMidiDevice_Protocol
声明位于amidi/AMidi.h
AMidiDevice_Protocol
属性 | |
---|---|
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 1.0,数据包大小高达 128 位。 |
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 1.0,数据包大小高达 128 位,并带有抖动减少时间戳。 |
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 1.0,数据包大小高达 64 位。 |
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 1.0,数据包大小高达 64 位,并带有抖动减少时间戳。 |
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_2_0 |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 2.0。 |
AMIDI_DEVICE_PROTOCOL_UMP_MIDI_2_0_AND_JRTS |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。通过 UMP 使用 MIDI 2.0,并带有抖动减少时间戳。 |
AMIDI_DEVICE_PROTOCOL_UMP_USE_MIDI_CI |
表示使用通用 MIDI 数据包 (UMP) 的默认协议的常量。 UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。所有 UMP 数据应为 4 字节的倍数。使用 UMP 通过 MIDI-CI 与设备进行协商。MIDI-CI 在“MIDI Capability Inquiry (MIDI-CI)”规范中定义。 |
AMIDI_DEVICE_PROTOCOL_UNKNOWN |
表示默认协议未知的设备的常量。 如果需要通用 MIDI 数据包 (UMP),请通过 MIDI 1.0 使用 MIDI-CI。UMP 在“通用 MIDI 数据包 (UMP) 格式和 MIDI 2.0 协议”规范中定义。MIDI-CI 在“MIDI Capability Inquiry (MIDI-CI)”规范中定义。 |
Typedef
AMidiDevice
声明位于amidi/AMidi.h
struct AMidiDevice AMidiDevice
AMidiDevice_Protocol
声明位于amidi/AMidi.h
enum AMidiDevice_Protocol AMidiDevice_Protocol
AMidiInputPort
声明位于amidi/AMidi.h
struct AMidiInputPort AMidiInputPort
AMidiOutputPort
声明位于amidi/AMidi.h
struct AMidiOutputPort AMidiOutputPort
函数
AMidiDevice_fromJava
声明位于amidi/AMidi.h
media_status_t AMIDI_API AMidiDevice_fromJava( JNIEnv *env, jobject midiDeviceObj, AMidiDevice **outDevicePtrPtr )
将原生 Midi 设备对象连接到关联的 Java MidiDevice 对象。
使用此 AMidiDevice 访问其余原生 MIDI API。不再使用时,使用 AMidiDevice_release() 与 Java 对象断开连接。
另请参阅:AMEDIA_ERROR_INVALID_OBJECT - midiDeviceObj 为 null 或已连接到原生 AMidiDevice 另请参阅:AMEDIA_ERROR_UNKNOWN - 发生未知错误。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
成功时返回 AMEDIA_OK,否则返回负值错误代码
|
AMidiDevice_getDefaultProtocol
声明位于amidi/AMidi.h
AMidiDevice_Protocol AMIDI_API AMidiDevice_getDefaultProtocol( const AMidiDevice *device )
获取 MIDI 设备默认协议。
大多数设备应返回 PROTOCOL_UNKNOWN (-1)。这是有意为之,因为默认支持 UMP 的设备不向后兼容。当设备为 null 时,返回 AMIDI_DEVICE_PROTOCOL_UNKNOWN。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
MIDI 设备默认协议的标识符:AMIDI_DEVICE_PROTOCOL_UMP_USE_MIDI_CI AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS AMIDI_DEVICE_PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS AMIDI_DEVICE_PROTOCOL_UMP_MIDI_2_0 AMIDI_DEVICE_PROTOCOL_UMP_MIDI_2_0_AND_JRTS AMIDI_DEVICE_PROTOCOL_UNKNOWN
|
自 API 33 起可用。
AMidiDevice_getNumInputPorts
声明位于amidi/AMidi.h
ssize_t AMIDI_API AMidiDevice_getNumInputPorts( const AMidiDevice *device )
获取指定 MIDI 设备上可用的输入(发送)端口数量。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - device 参数为 NULL。 另请参阅:AMEDIA_ERROR_UNKNOWN - 无法检索设备信息。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果成功,返回设备上可用的 MIDI 输入(发送)端口数量。如果发生错误,返回表示错误的负值
|
AMidiDevice_getNumOutputPorts
声明位于amidi/AMidi.h
ssize_t AMIDI_API AMidiDevice_getNumOutputPorts( const AMidiDevice *device )
获取指定 MIDI 设备上可用的输出(接收)端口数量。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - device 参数为 NULL。 另请参阅:AMEDIA_ERROR_UNKNOWN - 无法检索设备信息。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果成功,返回设备上可用的 MIDI 输出(接收)端口数量。如果发生错误,返回表示错误的负值
|
AMidiDevice_getType
声明位于amidi/AMidi.h
int32_t AMIDI_API AMidiDevice_getType( const AMidiDevice *device )
获取 MIDI 设备类型。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - device 参数为 NULL。 另请参阅:AMEDIA_ERROR_UNKNOWN - 未知错误。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
MIDI 设备类型的标识符:AMIDI_DEVICE_TYPE_USB AMIDI_DEVICE_TYPE_VIRTUAL AMIDI_DEVICE_TYPE_BLUETOOTH 或负值错误代码
|
AMidiDevice_release
声明位于amidi/AMidi.h
media_status_t AMIDI_API AMidiDevice_release( const AMidiDevice *midiDevice )
断开原生 Midi 设备对象与关联的 Java MidiDevice 对象的连接。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - device 参数为 NULL。 另请参阅:AMEDIA_ERROR_INVALID_OBJECT - 设备与关联的 Java MidiDevice 不一致。 另请参阅:AMEDIA_ERROR_INVALID_OBJECT - JNI 接口初始化到关联的 Java MidiDevice 失败。 另请参阅:AMEDIA_ERROR_UNKNOWN - 无法检索设备信息。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
成功时返回 AMEDIA_OK,否则返回负值错误代码
|
AMidiInputPort_close
声明位于amidi/AMidi.h
void AMIDI_API AMidiInputPort_close( const AMidiInputPort *inputPort )
关闭输入端口。
详细信息 | |||
---|---|---|---|
参数 |
|
AMidiInputPort_open
声明位于amidi/AMidi.h
media_status_t AMIDI_API AMidiInputPort_open( const AMidiDevice *device, int32_t portNumber, AMidiInputPort **outInputPortPtr )
打开输入端口,以便客户端可以向其发送数据。
在为返回的 AMidiInputPort 调用 AMidiInputPort_close() 之前,该端口将保持打开和有效状态。
另请参阅:AMEDIA_ERROR_UNKNOWN - 未知错误。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
AMEDIA_OK,或负值错误代码
|
AMidiInputPort_send
声明位于amidi/AMidi.h
ssize_t AMIDI_API AMidiInputPort_send( const AMidiInputPort *inputPort, const uint8_t *buffer, size_t numBytes )
将数据发送到指定的输入端口。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - 指定的端口为 NULL,指定的缓冲区为 NULL。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
已发送的字节数,可能少于指定的字节数,或负值错误代码
|
AMidiInputPort_sendFlush
声明位于amidi/AMidi.h
media_status_t AMIDI_API AMidiInputPort_sendFlush( const AMidiInputPort *inputPort )
将包含“MIDI 刷新命令代码”的消息发送到指定的端口。
这应该会导致接收器丢弃可能已积累但尚未处理的任何待处理 MIDI 数据。
另请参阅:AMEDIA_OK 如果成功,否则返回负值错误代码:另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - 指定的端口为 NULL另请参阅:AMEDIA_ERROR_UNSUPPORTED - 无法发送 FLUSH 命令。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
|
AMidiInputPort_sendWithTimestamp
声明位于amidi/AMidi.h
ssize_t AMIDI_API AMidiInputPort_sendWithTimestamp( const AMidiInputPort *inputPort, const uint8_t *buffer, size_t numBytes, int64_t timestamp )
将带有时间戳的数据发送到指定的输入端口。
另请参阅:AMEDIA_ERROR_INVALID_PARAMETER - 指定的端口为 NULL,指定的缓冲区为 NULL。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
已发送的字节数,可能少于指定的字节数,或负值错误代码
|
AMidiOutputPort_close
声明位于amidi/AMidi.h
void AMIDI_API AMidiOutputPort_close( const AMidiOutputPort *outputPort )
关闭输出端口。
详细信息 | |||
---|---|---|---|
参数 |
|
AMidiOutputPort_open
声明位于amidi/AMidi.h
media_status_t AMIDI_API AMidiOutputPort_open( const AMidiDevice *device, int32_t portNumber, AMidiOutputPort **outOutputPortPtr )
打开输出端口,以便客户端可以从中接收数据。
在为返回的 AMidiOutputPort 调用 AMidiOutputPort_close() 之前,该端口将保持打开和有效状态。
另请参阅:AMEDIA_ERROR_UNKNOWN - 未知错误。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
AMEDIA_OK,或负值错误代码
|
AMidiOutputPort_receive
声明位于amidi/AMidi.h
ssize_t AMIDI_API AMidiOutputPort_receive( const AMidiOutputPort *outputPort, int32_t *opcodePtr, uint8_t *buffer, size_t maxBytes, size_t *numBytesReceivedPtr, int64_t *outTimestampPtr )
接收下一个待处理的 MIDI 消息。
为了检索所有待处理的消息,客户端应重复调用此方法,直到它返回 0。
请注意,这是一个非阻塞调用。如果没有可用的 Midi 消息,该函数会立即返回 0(表示收到 0 条消息)。
另请参阅:AMEDIA_ERROR_UNKNOWN - 未知错误。
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
接收到的消息数量(0 或 1),或负值错误代码
|