41#include "freertos/FreeRTOS.h"
42#include "freertos/queue.h"
46#include "devdrivers/cvbsgenerator.h"
54class CVBSBaseController :
public GenericBitmappedDisplayController {
61 CVBSBaseController(CVBSBaseController
const&) =
delete;
62 void operator=(CVBSBaseController
const&) =
delete;
64 void begin(gpio_num_t videoGPIO);
71 virtual void suspendBackgroundPrimitiveExecution();
74 virtual void resumeBackgroundPrimitiveExecution();
76 void setResolution(
char const * modeline,
int viewPortWidth = -1,
int viewPortHeight = -1,
bool doubleBuffered =
false);
78 void setHorizontalRate(
int value) { m_horizontalRate = value; }
79 int horizontalRate() {
return m_horizontalRate; }
81 virtual void setResolution(CVBSParams
const * params,
int viewPortWidth = -1,
int viewPortHeight = -1,
bool doubleBuffered =
false);
84 int getViewPortWidth() {
return m_viewPortWidth; }
87 int getViewPortHeight() {
return m_viewPortHeight; }
89 uint8_t * getScanline(
int y) {
return (uint8_t*) m_viewPort[y]; }
91 CVBSParams
const * params() {
return m_CVBSGenerator.params(); }
96 void setDrawScanlineCallback(CVBSDrawScanlineCallback drawScanlineCallback) { m_CVBSGenerator.setDrawScanlineCallback(drawScanlineCallback,
this); }
98 virtual void freeViewPort();
102 void allocateViewPort(uint32_t allocCaps,
int rowlen);
103 virtual void allocateViewPort() = 0;
104 virtual void checkViewPortSize() { };
107 virtual void swapBuffers();
114 volatile uint8_t * * m_viewPort;
115 volatile uint8_t * * m_viewPortVisible;
117 volatile int m_primitiveProcessingSuspended;
119 volatile int16_t m_viewPortWidth;
120 volatile int16_t m_viewPortHeight;
125 CVBSGenerator m_CVBSGenerator;
127 int m_horizontalRate;
This file contains fabgl::BitmappedDisplayController definition.
#define FABGLIB_VIEWPORT_MEMORY_POOL_COUNT
This file contains FabGL library configuration settings, like number of supported colors,...
This file contains some utility classes and functions.