/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef GUEST_HALS_CAMERA_CAMERACONFIGURATION_H_ #define GUEST_HALS_CAMERA_CAMERACONFIGURATION_H_ #undef max #undef min #include <algorithm> #include <vector> namespace cvd { // Camera properties and features. struct CameraDefinition { // Camera facing direction. enum Orientation { kFront, kBack }; // Camera recognized HAL versions. enum HalVersion { kHalV1, kHalV2, kHalV3 }; struct Resolution { int width; int height; }; Orientation orientation; HalVersion hal_version; std::vector<Resolution> resolutions; }; class CameraConfiguration { public: CameraConfiguration() {} ~CameraConfiguration() {} const std::vector<CameraDefinition>& cameras() const { return cameras_; } bool Init(); private: std::vector<CameraDefinition> cameras_; }; } // namespace cvd #endif // GUEST_HALS_CAMERA_CAMERACONFIGURATION_H_