esp32cam
OV2640 camera on ESP32-CAM
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Functions
config.cpp File Reference
#include "config.hpp"
#include "camera.hpp"
#include "logger.hpp"
#include <algorithm>
#include <cstring>
#include <esp_camera.h>

Classes

class  esp32cam::Config::CameraConfigT
 

Namespaces

 esp32cam
 
 esp32cam::detail
 

Macros

#define CHECK_RANGE(MEM, MIN, MAX)
 
#define UPDATE4(STATUS_MEM, value, SETTER_MEM, SETTER_TYP)
 
#define UPDATE3(STATUS_MEM, value, SETTER_TYP)    UPDATE4(STATUS_MEM, (value), set_##STATUS_MEM, SETTER_TYP)
 
#define UPDATE2(STATUS_MEM, value)   UPDATE3(STATUS_MEM, (value), int)
 
#define UPDATE1(MEM)   UPDATE2(MEM, settings.MEM)
 

Functions

int esp32cam::detail::convertJpegQuality (int quality)
 Convert JPEG quality from 0-100 scale to 63-0 scale. More...
 

Macro Definition Documentation

◆ CHECK_RANGE

#define CHECK_RANGE (   MEM,
  MIN,
  MAX 
)
Value:
do { \
int next = static_cast<int>(settings.MEM); \
if (!(next >= MIN && next <= MAX)) { \
ESP32CAM_LOG("update " #MEM " %d out of range [%d,%d]", next, MIN, MAX); \
return false; \
} \
} while (false)

◆ UPDATE1

#define UPDATE1 (   MEM)    UPDATE2(MEM, settings.MEM)

◆ UPDATE2

#define UPDATE2 (   STATUS_MEM,
  value 
)    UPDATE3(STATUS_MEM, (value), int)

◆ UPDATE3

#define UPDATE3 (   STATUS_MEM,
  value,
  SETTER_TYP 
)     UPDATE4(STATUS_MEM, (value), set_##STATUS_MEM, SETTER_TYP)

◆ UPDATE4

#define UPDATE4 (   STATUS_MEM,
  value,
  SETTER_MEM,
  SETTER_TYP 
)
Value:
do { \
int prev = static_cast<int>(sensor->status.STATUS_MEM); \
int desired = static_cast<int>(value); \
if (prev != desired) { \
int res = sensor->SETTER_MEM(sensor, static_cast<SETTER_TYP>(desired)); \
ESP32CAM_LOG("update " #STATUS_MEM " %d => %d %s", prev, desired, \
res == 0 ? "success" : "failure"); \
if (res != 0) { \
return false; \
} \
} \
} while (false)