blob: 0a00e28fbb0c243e51ffc9cd2b355d2c8eaec775 [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.debug;
using zx;
/// Maximum number of test pattern modes.
const MAX_TEST_PATTERN_MODES uint8 = 64;
/// Maximum number of test pattern data parameters.
const MAX_TEST_PATTERN_DATA uint16 = 128;
/// This interface can be attached to various blocks in the camera stack to expose debug-only
/// functionality. Not all blocks will implement all methods in this protocol and may instead
/// choose to return ZX_ERR_NOT_SUPPORTED.
@discoverable
closed protocol Debug {
/// Retrieves the available test pattern modes supported by the block.
strict GetAvailableTestPatternModes() -> (struct {
modes vector<uint32>:MAX_TEST_PATTERN_MODES;
}) error zx.Status;
/// Retrieves the test pattern mode the block is currently set to.
strict GetCurrentTestPatternMode() -> (struct {
value uint16;
}) error zx.Status;
/// Changes the block's test pattern mode.
strict SetTestPatternMode(struct {
mode uint16;
}) -> () error zx.Status;
/// Retrieves the test pattern data being used.
strict GetTestPatternData() -> (struct {
data vector<uint32>:MAX_TEST_PATTERN_DATA;
}) error zx.Status;
/// Changes data passed into the test pattern. Only used by certain modes.
strict SetTestPatternData(struct {
data vector<uint32>:MAX_TEST_PATTERN_DATA;
}) -> () error zx.Status;
};