diff --git a/include/libcamera/base/file.h b/include/libcamera/base/file.h index 452a658b4..eebb24024 100644 --- a/include/libcamera/base/file.h +++ b/include/libcamera/base/file.h @@ -30,13 +30,15 @@ public: using MapFlags = Flags; - enum OpenMode { + enum OpenModeFlag { NotOpen = 0, ReadOnly = (1 << 0), WriteOnly = (1 << 1), ReadWrite = ReadOnly | WriteOnly, }; + using OpenMode = Flags; + File(const std::string &name); File(); ~File(); diff --git a/src/libcamera/base/file.cpp b/src/libcamera/base/file.cpp index 944918f24..1c5879b3b 100644 --- a/src/libcamera/base/file.cpp +++ b/src/libcamera/base/file.cpp @@ -58,7 +58,7 @@ LOG_DEFINE_CATEGORY(File) */ /** - * \enum File::OpenMode + * \enum File::OpenModeFlag * \brief Mode in which a file is opened * \var File::NotOpen * \brief The file is not open @@ -70,6 +70,11 @@ LOG_DEFINE_CATEGORY(File) * \brief The file is open for reading and writing */ +/** + * \typedef File::OpenMode + * \brief A bitwise combination of File::OpenModeFlag values + */ + /** * \brief Construct a File to represent the file \a name * \param[in] name The file name @@ -168,7 +173,7 @@ bool File::open(File::OpenMode mode) return false; } - int flags = (mode & ReadWrite) - 1; + int flags = static_cast(mode & ReadWrite) - 1; if (mode & WriteOnly) flags |= O_CREAT;