1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// IPC messages for access to MIDI hardware. 6// Multiply-included message file, hence no include guard. 7 8#include "base/basictypes.h" 9#include "content/common/content_export.h" 10#include "ipc/ipc_message_macros.h" 11#include "ipc/param_traits_macros.h" 12#include "media/midi/midi_port_info.h" 13#include "media/midi/midi_result.h" 14#include "url/gurl.h" 15 16#undef IPC_MESSAGE_EXPORT 17#define IPC_MESSAGE_EXPORT CONTENT_EXPORT 18#define IPC_MESSAGE_START MidiMsgStart 19 20IPC_STRUCT_TRAITS_BEGIN(media::MidiPortInfo) 21 IPC_STRUCT_TRAITS_MEMBER(id) 22 IPC_STRUCT_TRAITS_MEMBER(manufacturer) 23 IPC_STRUCT_TRAITS_MEMBER(name) 24 IPC_STRUCT_TRAITS_MEMBER(version) 25IPC_STRUCT_TRAITS_END() 26 27IPC_ENUM_TRAITS_MAX_VALUE(media::MidiResult, media::MIDI_RESULT_LAST) 28 29// Messages for IPC between MidiDispatcher and MidiDispatcherHost. 30 31// Renderer request to browser for using system exclusive messages. 32IPC_MESSAGE_ROUTED3(MidiHostMsg_RequestSysExPermission, 33 int /* client id */, 34 GURL /* origin */, 35 bool /* user_gesture */) 36 37// Renderer request to browser for canceling a previous permission request. 38IPC_MESSAGE_ROUTED2(MidiHostMsg_CancelSysExPermissionRequest, 39 int /* bridge_id */, 40 GURL /* GURL of the frame */) 41 42// Messages sent from the browser to the renderer. 43 44IPC_MESSAGE_ROUTED2(MidiMsg_SysExPermissionApproved, 45 int /* client id */, 46 bool /* is_allowed */) 47 48// Messages for IPC between MidiMessageFilter and MidiHost. 49 50// Renderer request to browser for access to MIDI services. 51IPC_MESSAGE_CONTROL1(MidiHostMsg_StartSession, 52 int /* client id */) 53 54IPC_MESSAGE_CONTROL3(MidiHostMsg_SendData, 55 uint32 /* port */, 56 std::vector<uint8> /* data */, 57 double /* timestamp */) 58 59// Messages sent from the browser to the renderer. 60 61IPC_MESSAGE_CONTROL4(MidiMsg_SessionStarted, 62 int /* client id */, 63 media::MidiResult /* result */, 64 media::MidiPortInfoList /* input ports */, 65 media::MidiPortInfoList /* output ports */) 66 67IPC_MESSAGE_CONTROL3(MidiMsg_DataReceived, 68 uint32 /* port */, 69 std::vector<uint8> /* data */, 70 double /* timestamp */) 71 72IPC_MESSAGE_CONTROL1(MidiMsg_AcknowledgeSentData, 73 uint32 /* bytes sent */) 74