1// Copyright 2014 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 EME on android.
6// Multiply-included message file, hence no include guard.
7
8#include <vector>
9
10#include "content/public/common/eme_codec.h"
11#include "ipc/ipc_message_macros.h"
12
13#define IPC_MESSAGE_START EncryptedMediaMsgStart
14
15IPC_STRUCT_BEGIN(SupportedKeySystemRequest)
16  IPC_STRUCT_MEMBER(std::string, key_system)
17  IPC_STRUCT_MEMBER(content::SupportedCodecs, codecs, content::EME_CODEC_NONE)
18IPC_STRUCT_END()
19
20IPC_STRUCT_BEGIN(SupportedKeySystemResponse)
21  IPC_STRUCT_MEMBER(std::string, key_system)
22  IPC_STRUCT_MEMBER(content::SupportedCodecs,
23                    compositing_codecs,
24                    content::EME_CODEC_NONE)
25  IPC_STRUCT_MEMBER(content::SupportedCodecs,
26                    non_compositing_codecs,
27                    content::EME_CODEC_NONE)
28IPC_STRUCT_END()
29
30// Messages sent from the renderer to the browser.
31
32// Synchronously query key system information. If the key system is supported,
33// the response will be populated.
34IPC_SYNC_MESSAGE_CONTROL1_1(
35    ChromeViewHostMsg_QueryKeySystemSupport,
36    SupportedKeySystemRequest /* key system information request */,
37    SupportedKeySystemResponse /* key system information response */)
38
39// Synchronously get a list of platform-supported EME key system names that
40// are not explicitly handled by Chrome.
41IPC_SYNC_MESSAGE_CONTROL0_1(
42    ChromeViewHostMsg_GetPlatformKeySystemNames,
43    std::vector<std::string> /* key system names */)
44