diff --git a/src/omv/common/sensor.h b/src/omv/common/sensor.h index 873df3cab..82acc2a92 100644 --- a/src/omv/common/sensor.h +++ b/src/omv/common/sensor.h @@ -173,15 +173,11 @@ typedef enum { SENSOR_ERROR_JPEG_OVERFLOW = -20, } sensor_error_t; -#define SENSOR_HW_FLAGS_VSYNC (0) // vertical sync polarity. -#define SENSOR_HW_FLAGS_HSYNC (1) // horizontal sync polarity. -#define SENSOR_HW_FLAGS_PIXCK (2) // pixel clock edge. -#define SENSOR_HW_FLAGS_FSYNC (3) // hardware frame sync. -#define SENSOR_HW_FLAGS_JPEGE (4) // hardware JPEG encoder. -#define SENSOR_HW_FLAGS_RGB565_REV (5) // byte reverse rgb565. -#define SENSOR_HW_FLAGS_GET(s, x) ((s)->hw_flags & (1<hw_flags |= (v<hw_flags &= ~(1<bpp = 2; - if (SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_RGB565_REV)) { - unaligned_memcpy_rev16(buffer->data, buffer->data, _width*_height); + if (sensor->hw_flags.rgb_swap || sensor->hw_flags.yuv_swap) { + unaligned_memcpy_rev16(buffer->data, buffer->data, _width * _height); } break; } diff --git a/src/omv/ports/rp2/sensor.c b/src/omv/ports/rp2/sensor.c index 0237296ea..6e3a0098d 100644 --- a/src/omv/ports/rp2/sensor.c +++ b/src/omv/ports/rp2/sensor.c @@ -244,8 +244,8 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) } // Configure the DMA on the first frame, for later frames only the write is changed. - sensor_dma_config(MAIN_FB()->u, MAIN_FB()->v, MAIN_FB()->bpp, (void *) buffer->data, - (SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_RGB565_REV) && MAIN_FB()->bpp == 2)); + sensor_dma_config(MAIN_FB()->u, MAIN_FB()->v, MAIN_FB()->bpp, + (void *) buffer->data, (sensor->hw_flags.rgb_swap && MAIN_FB()->bpp == 2)); // Re-enable the state machine. diff --git a/src/omv/ports/stm32/sensor.c b/src/omv/ports/stm32/sensor.c index 7c2dd841e..550ed20f6 100644 --- a/src/omv/ports/stm32/sensor.c +++ b/src/omv/ports/stm32/sensor.c @@ -188,14 +188,12 @@ int sensor_init() int sensor_dcmi_config(uint32_t pixformat) { // VSYNC clock polarity - DCMIHandle.Init.VSPolarity = SENSOR_HW_FLAGS_GET(&sensor, SENSOR_HW_FLAGS_VSYNC) ? - DCMI_VSPOLARITY_HIGH : DCMI_VSPOLARITY_LOW; + DCMIHandle.Init.VSPolarity = sensor.hw_flags.vsync ? DCMI_VSPOLARITY_HIGH : DCMI_VSPOLARITY_LOW; // HSYNC clock polarity - DCMIHandle.Init.HSPolarity = SENSOR_HW_FLAGS_GET(&sensor, SENSOR_HW_FLAGS_HSYNC) ? - DCMI_HSPOLARITY_HIGH : DCMI_HSPOLARITY_LOW; + DCMIHandle.Init.HSPolarity = sensor.hw_flags.hsync ? DCMI_HSPOLARITY_HIGH : DCMI_HSPOLARITY_LOW; // PXCLK clock polarity - DCMIHandle.Init.PCKPolarity = SENSOR_HW_FLAGS_GET(&sensor, SENSOR_HW_FLAGS_PIXCK) ? - DCMI_PCKPOLARITY_RISING : DCMI_PCKPOLARITY_FALLING; + DCMIHandle.Init.PCKPolarity = sensor.hw_flags.pixck ? DCMI_PCKPOLARITY_RISING : DCMI_PCKPOLARITY_FALLING; + // Setup capture parameters. DCMIHandle.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE; // Enable Hardware synchronization DCMIHandle.Init.CaptureRate = DCMI_CR_ALL_FRAME; // Capture rate all frames @@ -490,7 +488,7 @@ void DCMI_DMAConvCpltUser(uint32_t addr) // depth on the DCMI hardware and DMA hardware is not enough to prevent data loss. if (sensor.pixformat == PIXFORMAT_JPEG) { - if (sensor.chip_id == OV5640_ID) { + if (sensor.hw_flags.jpeg_mode == 4) { // JPEG MODE 4: // // The width and height are fixed in each frame. The first two bytes are valid data @@ -511,7 +509,7 @@ void DCMI_DMAConvCpltUser(uint32_t addr) } unaligned_memcpy(buffer->data + buffer->offset, ((uint16_t *) addr) + 1, size); buffer->offset += size; - } else if (sensor.chip_id == OV2640_ID) { + } else if (sensor.hw_flags.jpeg_mode == 3) { // JPEG MODE 3: // // Compression data is transmitted with programmable width. The last line width maybe @@ -601,7 +599,7 @@ void DCMI_DMAConvCpltUser(uint32_t addr) #if (OMV_ENABLE_SENSOR_MDMA == 1) mdma_memcpy(buffer, dst, src, sizeof(uint8_t), sensor.transpose); #else - if (sensor.gs_bpp == sizeof(uint8_t)) { + if (sensor.hw_flags.gs_bpp == 1) { // 1BPP GRAYSCALE. if (!sensor.transpose) { unaligned_memcpy(dst, src, MAIN_FB()->u); @@ -629,7 +627,7 @@ void DCMI_DMAConvCpltUser(uint32_t addr) #if (OMV_ENABLE_SENSOR_MDMA == 1) mdma_memcpy(buffer, dst16, src16, sizeof(uint16_t), sensor.transpose); #else - if (SENSOR_HW_FLAGS_GET(&sensor, SENSOR_HW_FLAGS_RGB565_REV)) { + if (sensor.hw_flags.rgb_swap) { if (!sensor.transpose) { unaligned_memcpy_rev16(dst16, src16, MAIN_FB()->u); } else { @@ -670,7 +668,7 @@ static void mdma_config(MDMA_InitTypeDef *init, sensor_t *sensor, uint32_t bytes init->SourceBlockAddressOffset = 0; init->DestBlockAddressOffset = 0; - if ((sensor->pixformat == PIXFORMAT_RGB565) && SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_RGB565_REV)) { + if ((sensor->pixformat == PIXFORMAT_RGB565) && sensor->hw_flags.rgb_swap) { init->Endianness = MDMA_LITTLE_BYTE_ENDIANNESS_EXCHANGE; } else { init->Endianness = MDMA_LITTLE_ENDIANNESS_PRESERVE; @@ -685,7 +683,7 @@ static void mdma_config(MDMA_InitTypeDef *init, sensor_t *sensor, uint32_t bytes } // YUV422 Source -> Y Destination - if ((sensor->pixformat == PIXFORMAT_GRAYSCALE) && (sensor->gs_bpp == sizeof(uint16_t))) { + if ((sensor->pixformat == PIXFORMAT_GRAYSCALE) && (sensor->hw_flags.gs_bpp == 2)) { line_width_bytes /= 2; if (sensor->transpose) { init->DestBlockAddressOffset /= 2; @@ -722,7 +720,7 @@ static void mdma_config(MDMA_InitTypeDef *init, sensor_t *sensor, uint32_t bytes } // YUV422 Source -> Y Destination - if ((sensor->pixformat == PIXFORMAT_GRAYSCALE) && (sensor->gs_bpp == sizeof(uint16_t))) { + if ((sensor->pixformat == PIXFORMAT_GRAYSCALE) && (sensor->hw_flags.gs_bpp == 2)) { init->SourceInc = MDMA_SRC_INC_HALFWORD; init->SourceDataSize = MDMA_SRC_DATASIZE_BYTE; } @@ -891,7 +889,7 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) // Let the camera know we want to trigger it now. #if defined(DCMI_FSYNC_PIN) - if (SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_FSYNC)) { + if (sensor->hw_flags.fsync) { DCMI_FSYNC_HIGH(); } #endif @@ -917,7 +915,7 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) sensor_abort(); #if defined(DCMI_FSYNC_PIN) - if (SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_FSYNC)) { + if (sensor->hw_flags.fsync) { DCMI_FSYNC_LOW(); } #endif @@ -935,7 +933,7 @@ int sensor_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) // We're done receiving data. #if defined(DCMI_FSYNC_PIN) - if (SENSOR_HW_FLAGS_GET(sensor, SENSOR_HW_FLAGS_FSYNC)) { + if (sensor->hw_flags.fsync) { DCMI_FSYNC_LOW(); } #endif diff --git a/src/omv/sensors/gc2145.c b/src/omv/sensors/gc2145.c index d0926fefd..5c852a470 100644 --- a/src/omv/sensors/gc2145.c +++ b/src/omv/sensors/gc2145.c @@ -865,7 +865,6 @@ static int set_vflip(sensor_t *sensor, int enable) int gc2145_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->read_reg = read_reg; sensor->write_reg = write_reg; @@ -875,12 +874,13 @@ int gc2145_init(sensor_t *sensor) sensor->set_vflip = set_vflip; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 1); + sensor->hw_flags.vsync = 0; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; return 0; } diff --git a/src/omv/sensors/hm01b0.c b/src/omv/sensors/hm01b0.c index 0f335773a..277cc388d 100644 --- a/src/omv/sensors/hm01b0.c +++ b/src/omv/sensors/hm01b0.c @@ -532,7 +532,6 @@ static int ioctl(sensor_t *sensor, int request, va_list ap) int hm01b0_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 1; sensor->reset = reset; sensor->read_reg = read_reg; sensor->write_reg = write_reg; @@ -551,11 +550,12 @@ int hm01b0_init(sensor_t *sensor) sensor->ioctl = ioctl; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); + sensor->hw_flags.vsync = 0; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 0; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 1; return 0; } diff --git a/src/omv/sensors/lepton.c b/src/omv/sensors/lepton.c index 35ebfc6ad..ef368e882 100644 --- a/src/omv/sensors/lepton.c +++ b/src/omv/sensors/lepton.c @@ -632,7 +632,6 @@ static int snapshot(sensor_t *sensor, image_t *image, uint32_t flags) int lepton_init(sensor_t *sensor) { - sensor->gs_bpp = sizeof(uint8_t); sensor->reset = reset; sensor->sleep = sleep; sensor->snapshot = snapshot; @@ -658,11 +657,12 @@ int lepton_init(sensor_t *sensor) sensor->set_lens_correction = set_lens_correction; sensor->ioctl = ioctl; - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 0; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 1; // Configure the DMA handler for Transmission process DMAHandle.Instance = ISC_SPI_DMA_STREAM; diff --git a/src/omv/sensors/mt9m114.c b/src/omv/sensors/mt9m114.c index e3ac7c95b..92543d0ef 100644 --- a/src/omv/sensors/mt9m114.c +++ b/src/omv/sensors/mt9m114.c @@ -981,7 +981,6 @@ static int ioctl(sensor_t *sensor, int request, va_list ap) int mt9m114_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -1006,12 +1005,14 @@ int mt9m114_init(sensor_t *sensor) sensor->ioctl = ioctl; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 0); + sensor->hw_flags.vsync = 0; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 0; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 0; + sensor->hw_flags.bayer = SENSOR_HW_FLAGS_BAYER_GBRG; return 0; } diff --git a/src/omv/sensors/mt9v034.c b/src/omv/sensors/mt9v034.c index d39642e6b..f46184e4c 100644 --- a/src/omv/sensors/mt9v034.c +++ b/src/omv/sensors/mt9v034.c @@ -426,7 +426,6 @@ static int ioctl(sensor_t *sensor, int request, va_list ap) int mt9v034_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = sizeof(uint8_t); sensor->reset = reset; sensor->read_reg = read_reg; sensor->write_reg = write_reg; @@ -442,12 +441,12 @@ int mt9v034_init(sensor_t *sensor) sensor->ioctl = ioctl; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 0); + sensor->hw_flags.vsync = 0; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 0; + sensor->hw_flags.fsync = 1; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 1; return 0; } diff --git a/src/omv/sensors/ov2640.c b/src/omv/sensors/ov2640.c index e195ba39e..516564ada 100644 --- a/src/omv/sensors/ov2640.c +++ b/src/omv/sensors/ov2640.c @@ -826,7 +826,6 @@ static int set_special_effect(sensor_t *sensor, sde_t sde) int ov2640_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -850,12 +849,14 @@ int ov2640_init(sensor_t *sensor) sensor->set_special_effect = set_special_effect; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 0); + sensor->hw_flags.vsync = 0; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 1; + sensor->hw_flags.jpeg_mode = 3; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 0; return 0; } diff --git a/src/omv/sensors/ov5640.c b/src/omv/sensors/ov5640.c index 618af6077..c34764570 100644 --- a/src/omv/sensors/ov5640.c +++ b/src/omv/sensors/ov5640.c @@ -1350,7 +1350,6 @@ static int ioctl(sensor_t *sensor, int request, va_list ap) int ov5640_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 1; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -1376,12 +1375,14 @@ int ov5640_init(sensor_t *sensor) sensor->ioctl = ioctl; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 0); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 1; + sensor->hw_flags.jpeg_mode = 4; + sensor->hw_flags.gs_bpp = 1; + sensor->hw_flags.rgb_swap = 0; return 0; } diff --git a/src/omv/sensors/ov7670.c b/src/omv/sensors/ov7670.c index 5c0dd11ca..ac9c78a39 100644 --- a/src/omv/sensors/ov7670.c +++ b/src/omv/sensors/ov7670.c @@ -423,7 +423,6 @@ static int set_framesize(sensor_t *sensor, framesize_t framesize) int ov7670_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -448,12 +447,13 @@ int ov7670_init(sensor_t *sensor) sensor->set_lens_correction = set_lens_correction; #endif // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 1); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; return 0; } diff --git a/src/omv/sensors/ov7690.c b/src/omv/sensors/ov7690.c index f1758d5fe..8423520cc 100644 --- a/src/omv/sensors/ov7690.c +++ b/src/omv/sensors/ov7690.c @@ -594,7 +594,6 @@ static int set_lens_correction(sensor_t *sensor, int enable, int radi, int coef) int ov7690_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -619,12 +618,13 @@ int ov7690_init(sensor_t *sensor) sensor->set_lens_correction = set_lens_correction; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 1); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; return 0; } diff --git a/src/omv/sensors/ov7725.c b/src/omv/sensors/ov7725.c index 13974bdc0..9c105063e 100644 --- a/src/omv/sensors/ov7725.c +++ b/src/omv/sensors/ov7725.c @@ -594,7 +594,6 @@ static int set_lens_correction(sensor_t *sensor, int enable, int radi, int coef) int ov7725_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -618,12 +617,13 @@ int ov7725_init(sensor_t *sensor) sensor->set_lens_correction = set_lens_correction; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 1); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; return 0; } diff --git a/src/omv/sensors/ov9650.c b/src/omv/sensors/ov9650.c index 7bec656dc..cabd7c8a8 100644 --- a/src/omv/sensors/ov9650.c +++ b/src/omv/sensors/ov9650.c @@ -518,7 +518,6 @@ static int set_vflip(sensor_t *sensor, int enable) int ov9650_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 2; sensor->reset = reset; sensor->set_pixformat = set_pixformat; sensor->set_framesize = set_framesize; @@ -534,12 +533,13 @@ int ov9650_init(sensor_t *sensor) sensor->set_vflip = set_vflip; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_RGB565_REV, 1); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; return 0; } diff --git a/src/omv/sensors/paj6100.c b/src/omv/sensors/paj6100.c index e0a8a1e8e..126fafc5c 100644 --- a/src/omv/sensors/paj6100.c +++ b/src/omv/sensors/paj6100.c @@ -722,7 +722,6 @@ static int paj6100_snapshot(sensor_t *sensor, image_t *image, uint32_t flags) int paj6100_init(sensor_t *sensor) { // Initialize sensor structure. - sensor->gs_bpp = 1; sensor->reset = reset; sensor->sleep = sleep; sensor->read_reg = read_reg; @@ -748,11 +747,12 @@ int paj6100_init(sensor_t *sensor) sensor->snapshot = paj6100_snapshot; // Set sensor flags - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_VSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_HSYNC, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_PIXCK, 1); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_FSYNC, 0); - SENSOR_HW_FLAGS_SET(sensor, SENSOR_HW_FLAGS_JPEGE, 0); + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 1; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 1; init_sensor(sensor);