mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
79 lines
2.7 KiB
Plaintext
79 lines
2.7 KiB
Plaintext
|
// Copyright 2017 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
// Next MinVersion: 2
|
||
|
|
||
|
// This file defines the mojo interface between Android, Chrome and the
|
||
|
// Chrome OS daemon for the MIDI implementation used in ARC.
|
||
|
|
||
|
module arc.mojom;
|
||
|
|
||
|
// This struct is used to send information to the client regarding a device
|
||
|
// which has been (dis)connected, and which the client can use to request
|
||
|
// subdevice ports from the daemon.
|
||
|
struct MidisDeviceInfo {
|
||
|
uint32 card;
|
||
|
uint32 device_num;
|
||
|
uint32 num_subdevices;
|
||
|
uint32 flags;
|
||
|
string name;
|
||
|
string manufacturer;
|
||
|
};
|
||
|
|
||
|
// This struct is used by the client to both request a subdevice port FD, as
|
||
|
// well as to close all its connections to a particular device. In the latter
|
||
|
// case, the |subdevice_num| field is left unused.
|
||
|
struct MidisRequest {
|
||
|
uint32 card;
|
||
|
uint32 device_num;
|
||
|
uint32 subdevice_num;
|
||
|
};
|
||
|
|
||
|
// This interface is used by the server to send device and other information
|
||
|
// to the client. It should be implemented by the client, and a handle to it
|
||
|
// should be passed to the server.
|
||
|
// Next Method ID: 2
|
||
|
interface MidisClient {
|
||
|
OnDeviceAdded@0(MidisDeviceInfo device);
|
||
|
OnDeviceRemoved@1(MidisDeviceInfo device);
|
||
|
};
|
||
|
|
||
|
// This interface is used by the client to send messages / requests to the
|
||
|
// daemon. This should be implemented by midis.
|
||
|
// Next Method ID: 3
|
||
|
interface MidisServer {
|
||
|
// Used to list out the MIDI devices that are currently connected to the
|
||
|
// midis daemon.
|
||
|
ListDevices@0() => (array<MidisDeviceInfo> devices);
|
||
|
|
||
|
// This function returns a handle(a Unix FD wrapped in a Mojo Handle)
|
||
|
// for a subdevice specified by |request|.
|
||
|
// In the event of an error, returns an empty handle.
|
||
|
RequestPort@1(MidisRequest request) => (handle port_handle);
|
||
|
|
||
|
// This function closes all open FDs the client may have on the specified
|
||
|
// device, and removes the client from the device's data structure.
|
||
|
CloseDevice@2(MidisRequest request);
|
||
|
};
|
||
|
|
||
|
// This interface is needed to get the midis server interface handle.
|
||
|
// It is also used to send a handle to the midis client interface (this is
|
||
|
// used to send messages to the client, and the interface is implemented
|
||
|
// by the client).
|
||
|
// Next Method ID: 1
|
||
|
interface MidisHost {
|
||
|
Connect@0(MidisServer& server, MidisClient client);
|
||
|
};
|
||
|
|
||
|
// MidisInstance is implemented in the ARC MIDI JNI code that
|
||
|
// runs in Android and handles the Android side of the ArcBridge connection.
|
||
|
// Next Method ID: 2
|
||
|
interface MidisInstance {
|
||
|
// DEPRECATED: Please use Init@1 instead.
|
||
|
InitDeprecated@0(MidisHost host_ptr);
|
||
|
|
||
|
// Establishes full-duplex communication with the host.
|
||
|
[MinVersion=1] Init@1(MidisHost host_ptr) => ();
|
||
|
};
|