| // 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 min version: 3 |
| |
| module cros.mojom; |
| |
| import "mojo/camera_common.mojom"; |
| import "mojo/jda/jpeg_decode_accelerator.mojom"; |
| import "mojo/jea/jpeg_encode_accelerator.mojom"; |
| |
| // The CrOS camera HAL v3 Mojo dispatcher. The dispatcher acts as a proxy and |
| // waits for the server and the clients to register. There can only be one |
| // server registered, with multiple clients requesting connections to the |
| // server. For each client, the dispatcher is responsible for creating a Mojo |
| // channel to the server and pass the established Mojo channel to the client in |
| // order to set up a Mojo channel between the client and the server. |
| // |
| // Next method ID: 4 |
| interface CameraHalDispatcher { |
| // A CameraHalServer calls RegisterServer to register itself with the |
| // dispatcher. |
| RegisterServer@0(CameraHalServer server); |
| |
| // A CameraHalClient calls RegisterClient to register itself with the |
| // dispatcher. |
| RegisterClient@1(CameraHalClient client); |
| |
| // Get JpegDecodeAccelerator from dispatcher. |
| [MinVersion = 1] GetJpegDecodeAccelerator@2 |
| (JpegDecodeAccelerator& accerlator_request); |
| |
| // Get JpegEncodeAccelerator from dispatcher. |
| [MinVersion = 2] GetJpegEncodeAccelerator@3 |
| (JpegEncodeAccelerator& accerlator_request); |
| }; |
| |
| // The CrOS camera HAL v3 Mojo server. |
| // |
| // Next method ID: 1 |
| interface CameraHalServer { |
| // A caller calls CreateChannel to create a new Mojo channel to the camera |
| // HAL v3 adapter. Upon successfully binding of |camera_module_request|, the |
| // caller will have a established Mojo channel to the camera HAL v3 adapter |
| // process. |
| CreateChannel@0(CameraModule& camera_module_request); |
| }; |
| |
| // The CrOS camera HAL v3 Mojo client. |
| // |
| // Next method ID: 1 |
| interface CameraHalClient { |
| // A caller calls SetUpChannel to dispatch the established Mojo channel |
| // |camera_module_ptr| to the client. The CameraHalClient can create a |
| // Mojo channel to the camera HAL v3 adapter process with |camera_module_ptr|. |
| // SetUpChannel may be called multiple times. In cases such as the |
| // CameraHalServer which holds the original Mojo channel crashes, |
| // CameraHalDispatcher will call SetUpChannel again once a new CameraHalServer |
| // reconnects. |
| SetUpChannel@0(CameraModule camera_module_ptr); |
| }; |