makepad-platform 1.0.0

Makepad platform layer
Documentation
#![allow(non_camel_case_types)]
use makepad_jni_sys as jni_sys;
use jni_sys::*;
use std::os::raw::{c_long,c_ulong};

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AMidiDevice {
    _unused: [u8; 0],
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AMidiInputPort {
    _unused: [u8; 0],
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AMidiOutputPort {
    _unused: [u8; 0],
}

pub type media_status_t = std::os::raw::c_int;

#[link(name = "amidi")]
extern "C" {
    pub fn AMidiDevice_fromJava(
        env: *mut JNIEnv,
        midiDeviceObj: jobject,
        outDevicePtrPtr: *mut *mut AMidiDevice,
    ) -> media_status_t;
    pub fn AMidiDevice_release(midiDevice: *const AMidiDevice) -> media_status_t;
    
    pub fn AMidiDevice_getNumInputPorts(device: *const AMidiDevice) -> c_long;
    pub fn AMidiDevice_getNumOutputPorts(device: *const AMidiDevice) -> c_long;
    pub fn AMidiOutputPort_open(
        device: *const AMidiDevice,
        portNumber: i32,
        outOutputPortPtr: *mut *mut AMidiOutputPort,
    ) -> media_status_t;
    pub fn AMidiOutputPort_close(outputPort: *const AMidiOutputPort);
    pub fn AMidiInputPort_open(
        device: *const AMidiDevice,
        portNumber: i32,
        outInputPortPtr: *mut *mut AMidiInputPort,
    ) -> media_status_t;
    pub fn AMidiInputPort_send(
        inputPort: *const AMidiInputPort,
        buffer: *const u8,
        numBytes: c_ulong,
    ) -> c_long;
    pub fn AMidiInputPort_close(inputPort: *const AMidiInputPort);
    pub fn AMidiOutputPort_receive(
        outputPort: *const AMidiOutputPort,
        opcodePtr: *mut i32,
        buffer: *mut u8,
        maxBytes: c_ulong,
        numBytesReceivedPtr: *mut c_ulong,
        outTimestampPtr: *mut i64,
    ) -> c_long;    
}