MozReview-Commit-ID: 1b4FSasfZJ4

--HG--
extra : rebase_source : 5a400499ef8100d1454b7dbf3ebc63780dac453a
This commit is contained in:
Kyle Machulis 2017-11-14 22:16:18 -08:00
Родитель 42ccaf67c7
Коммит a95162b2c3
5 изменённых файлов: 106 добавлений и 0 удалений

31
dom/midi/MIDITypes.ipdlh Normal file
Просмотреть файл

@ -0,0 +1,31 @@
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8 -*- */
/* vim: set sw=4 ts=8 et tw=80 ft=cpp : */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
using mozilla::TimeStamp from "mozilla/TimeStamp.h";
namespace mozilla {
namespace dom {
struct MIDIPortInfo {
nsString id;
nsString name;
nsString manufacturer;
nsString version;
//Actually a MIDIPortType enum
uint32_t type;
};
struct MIDIMessage {
uint8_t[] data;
TimeStamp timestamp;
};
struct MIDIPortList {
MIDIPortInfo[] ports;
};
} // namespace dom
} // namespace mozilla

Просмотреть файл

@ -0,0 +1,25 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
include protocol PBackground;
include MIDITypes;
namespace mozilla {
namespace dom {
async protocol PMIDIManager
{
manager PBackground;
parent:
async Shutdown();
child:
/*
* Send an updated list of MIDI ports to the child
*/
async MIDIPortListUpdate(MIDIPortList aPortList);
async __delete__();
};
} // namespace ipc
} // namespace mozilla

31
dom/midi/PMIDIPort.ipdl Normal file
Просмотреть файл

@ -0,0 +1,31 @@
/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
include protocol PBackground;
include MIDITypes;
namespace mozilla {
namespace dom {
async protocol PMIDIPort
{
manager PBackground;
parent:
async Shutdown();
async Send(MIDIMessage[] msg);
async Open();
async Close();
async Clear();
child:
async Receive(MIDIMessage[] msg);
// Actually takes a MIDIDeviceConnectionState and MIDIPortConnectionState
// respectively.
async UpdateStatus(uint32_t deviceState, uint32_t connectionState);
async __delete__();
};
}
}

11
dom/midi/moz.build Normal file
Просмотреть файл

@ -0,0 +1,11 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
IPDL_SOURCES += [
'MIDITypes.ipdlh',
'PMIDIManager.ipdl',
'PMIDIPort.ipdl',
]

Просмотреть файл

@ -22,6 +22,8 @@ include protocol PPendingIPCBlob;
include protocol PTemporaryIPCBlob;
include protocol PMessagePort;
include protocol PCameras;
include protocol PMIDIManager;
include protocol PMIDIPort;
include protocol PQuota;
include protocol PChildToParentStream;
include protocol PParentToChildStream;
@ -36,6 +38,7 @@ include PBackgroundSharedTypes;
include PBackgroundIDBSharedTypes;
include PFileSystemParams;
include ProtocolTypes;
include MIDITypes;
include "mozilla/dom/cache/IPCUtils.h";
@ -73,6 +76,8 @@ sync protocol PBackground
manages PTemporaryIPCBlob;
manages PMessagePort;
manages PCameras;
manages PMIDIManager;
manages PMIDIPort;
manages PQuota;
manages PChildToParentStream;
manages PParentToChildStream;
@ -140,6 +145,9 @@ parent:
async PClientManager();
async PMIDIManager();
async PMIDIPort(MIDIPortInfo portInfo, bool sysexEnabled);
child:
async PCache();
async PCacheStreamControl();