#pragma once namespace CameraManager { constexpr uint32 CAMERA_WIDTH = 640; constexpr uint32 CAMERA_HEIGHT = 480; constexpr uint32 CAMERA_PITCH = 768; constexpr uint32 CAMERA_NV12_BUFFER_SIZE = (CAMERA_HEIGHT * CAMERA_PITCH * 3) >> 1; constexpr uint32 CAMERA_RGB_BUFFER_SIZE = CAMERA_HEIGHT * CAMERA_WIDTH * 3; struct DeviceInfo { std::string uniqueId; std::string name; }; void Open(); void Close(); void FillNV12Buffer(std::span nv12Buffer); void FillRGBBuffer(std::span rgbBuffer); void SetDevice(uint32 deviceNo); void ResetDevice(); std::vector EnumerateDevices(); void SaveDevice(); std::optional GetCurrentDevice(); } // namespace CameraManager