| // Copyright 2020 The Chromium OS 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 CAMERA_CAMERA3_TEST_COMMON_TYPES_H_ |
| #define CAMERA_CAMERA3_TEST_COMMON_TYPES_H_ |
| |
| #include <memory> |
| |
| #include <camera/camera_metadata.h> |
| |
| namespace camera3_test { |
| |
| class ResolutionInfo { |
| public: |
| ResolutionInfo(int32_t width, int32_t height) |
| : width_(width), height_(height) {} |
| |
| ResolutionInfo() : width_(0), height_(0) {} |
| |
| int32_t Width() const; |
| |
| int32_t Height() const; |
| |
| int32_t Area() const; |
| |
| bool operator==(const ResolutionInfo& resolution) const; |
| |
| bool operator<(const ResolutionInfo& resolution) const; |
| |
| friend std::ostream& operator<<(std::ostream& out, |
| const ResolutionInfo& info); |
| |
| private: |
| int32_t width_, height_; |
| }; |
| |
| struct CameraMetadataDeleter { |
| inline void operator()(camera_metadata_t* metadata) { |
| if (metadata) { |
| free_camera_metadata(metadata); |
| } |
| } |
| }; |
| |
| typedef std::unique_ptr<camera_metadata_t, struct CameraMetadataDeleter> |
| ScopedCameraMetadata; |
| |
| } // namespace camera3_test |
| |
| #endif // CAMERA_CAMERA3_TEST_COMMON_TYPES_H_ |