blob: 1c57b062a43a9aeb625015354467e42f7070912b [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.camera.test.virtualcamera;
// Set of possible errors for methods on the |VirtualCameraDevice| protocol.
type Error = strict enum {
// Occurs when |AddToDeviceWatcher| is called and the device has already been added.
ALREADY_ADDED_TO_DEVICE_WATCHER = 1;
};
// Parameters that can be set for a stream created with |AddStreamConfig|.
type StreamConfig = table {
1: width uint32;
2: height uint32;
};
/// This interface provides a way for test clients to set up fake streams
/// using the 'virtual' camera.
@discoverable
closed protocol VirtualCameraDevice {
// Makes the virtual camera available to the |DeviceWatcher| agent.
// This allows the fake streams to be picked up by other components
// in the system. Must be called before proceeding with tests otherwise
// the virtual camera won't be available to camera clients.
strict AddToDeviceWatcher() -> () error Error;
// Adds a |StreamConfig| at the given |index|. |index| is used to refer
// to the config in future operations. If this is called multiple times
// with the same |index|, the older value will be overwritten.
strict AddStreamConfig(struct {
index uint64;
config StreamConfig;
});
};