blob: 6feb1d91f50ab7a407ac018dca69358a8380d8d1 [file] [log] [blame]
// Copyright 2019 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.
#ifndef SRC_CAMERA_DRIVERS_CONTROLLER_SHERLOCK_SHERLOCK_PRODUCT_CONFIG_H_
#define SRC_CAMERA_DRIVERS_CONTROLLER_SHERLOCK_SHERLOCK_PRODUCT_CONFIG_H_
#include <vector>
#include "src/camera/drivers/controller/configs/internal_config.h"
#include "src/camera/drivers/controller/configs/product_config.h"
namespace camera {
class SherlockProductConfig : public ProductConfig {
public:
// Along with providing the external configuration, we also
// populate the internal configuration here.
// NOTE: we need to ensure that we are keeping the order of
// external and internal configuration same so we can lookup
// the internal data easily when needed.
// The demo uses the config and stream indexes to setup a
// particular stream. These indexes are based on what order
// we populate the different configurations below.
// Following is the order of configs and streams for Sherlock.
// Config 0: Monitoring configuration.
// Stream 0: ML | FR
// Stream 1: ML | DS
// Stream 2: MONITORING
// Config 1: Video conferencing configuration.
// Stream 0: ML | FR | VIDEO
// Stream 1: VIDEO
// Config 2: // Video conferencing configuration with extended FOV enabled.
// Stream 0: ML | FR | VIDEO | EXTENDED_FOV
// Stream 1: VIDEO | | EXTENDED_FOV
std::vector<fuchsia::camera2::hal::Config> ExternalConfigs() override;
// Returns the internal configuration corresponding to the
// external configuration.
struct InternalConfigs InternalConfigs() override;
const char* GetGdcConfigFile(GdcConfig config_type) override;
};
} // namespace camera
#endif // SRC_CAMERA_DRIVERS_CONTROLLER_SHERLOCK_SHERLOCK_PRODUCT_CONFIG_H_