#ifndef LCAMERA_BUFF_YUV_CAPTURE_LAYOUT_H
#define LCAMERA_BUFF_YUV_CAPTURE_LAYOUT_H

#include <cameraModeRequest.h>

namespace smo {
namespace stim_buff {
namespace lcamera_buff {

enum class YuvCaptureLayoutPath
{
	FullPlanarDirect,
	SemiPlanarDeinterleave,
	PackedDeinterleave,
};

enum class YuvChannelBackingPlan
{
	LCameraDirect,
	MmapDeinterleaved,
};

YuvCaptureLayoutPath classifyYuvCaptureLayoutPath(
	const lcamera_dev::LcameraDevConfiguredCameraMode& configuredMode);

YuvChannelBackingPlan getChannelBackingPlanForLayoutPath(
	YuvCaptureLayoutPath layoutPath);

} // namespace lcamera_buff
} // namespace stim_buff
} // namespace smo

#endif // LCAMERA_BUFF_YUV_CAPTURE_LAYOUT_H
