summaryrefslogtreecommitdiff
path: root/src/android/camera_capabilities.h
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2022-08-08 21:30:26 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2022-09-05 17:34:49 +0100
commit1a082a3e957bc669ae7b143e04d8d1012dddac4c (patch)
treed309a439c9f15a8309d6eebb4365fef005edc0bc /src/android/camera_capabilities.h
parentda9bb8dea6821edcfd3464e8cba37ad4a91087d6 (diff)
libcamera: yaml_parser: Report filename on failures
It can be helpful to know 'which' file failed to parse if there is a failure. Report it to the user in the error message. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'src/android/camera_capabilities.h')
0 files changed, 0 insertions, 0 deletions
="hl kwb">const { return valid_; } bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; template<typename T> bool entryContains(uint32_t tag, T value) const; bool hasEntry(uint32_t tag) const; template<typename T, std::enable_if_t<std::is_arithmetic_v<T> || std::is_enum_v<T>> * = nullptr> bool setEntry(uint32_t tag, const T &data) { if (hasEntry(tag)) return updateEntry(tag, &data, 1, sizeof(T)); else return addEntry(tag, &data, 1, sizeof(T)); } template<typename T, std::enable_if_t<std::is_arithmetic_v<T> || std::is_enum_v<T>> * = nullptr> bool addEntry(uint32_t tag, const T &data) { return addEntry(tag, &data, 1, sizeof(T)); } template<typename T, size_t size> bool addEntry(uint32_t tag, const T (&data)[size]) { return addEntry(tag, data, size, sizeof(T)); } template<typename S, typename T = typename S::value_type> bool addEntry(uint32_t tag, const S &data) { return addEntry(tag, data.data(), data.size(), sizeof(T)); } template<typename T> bool addEntry(uint32_t tag, const T *data, size_t count) { return addEntry(tag, data, count, sizeof(T)); } template<typename T> bool updateEntry(uint32_t tag, const T &data) { return updateEntry(tag, &data, 1, sizeof(T)); } template<typename T, size_t size> bool updateEntry(uint32_t tag, const T (&data)[size]) { return updateEntry(tag, data, size, sizeof(T)); } template<typename S, typename T = typename S::value_type> bool updateEntry(uint32_t tag, const S &data) { return updateEntry(tag, data.data(), data.size(), sizeof(T)); } template<typename T> bool updateEntry(uint32_t tag, const T *data, size_t count) { return updateEntry(tag, data, count, sizeof(T)); } camera_metadata_t *getMetadata(); const camera_metadata_t *getMetadata() const; private: bool resize(size_t count, size_t size); bool addEntry(uint32_t tag, const void *data, size_t count, size_t elementSize); bool updateEntry(uint32_t tag, const void *data, size_t count, size_t elementSize); camera_metadata_t *metadata_; bool valid_; bool resized_; };