Forces a pixel based OSD to be used in as if it was a grid based OSD.
This is intended for development, so the FrSkyOSD simulator can be
used for developing features for the MAX7456 based OSDs without
needing an analog video to USB adapter.
Since the arrow is taller than the width of a grid slow, it overflows
the slot a bit when it's rotated by 90º. Also, simplify the algorithm
for drawing it a bit so it transmits a bit less data per redrawing.
Otherwise, a display device with transactions might not update the
on screen data immediately, since updates outside of transactions
might be buffered for performance reasons. This doesn't affect
devices that don't support transactions at all.
Change the default stepping in sidebar divisions to more sensible
values depending on what's causing them to scroll. Also, introduce
a setting per sidebar so the user can a custom stepping per sidebar.
Introduce a osd_sidebar_horizontal_offset parameter that uses
grid slots or pixels as units, depending on the OSD type. int8_t
is enough to move the sidebars to the corner of the screen even
with pixel OSD. Positive values move the bars closer to the screen
edges, while negative values bring them closer to the center.
Since v1, FrSkyOSD allows changing the baudrate to higher values but
we were ignoring that. Now if the user has configured the respective
port to a higher baudrate, we will switch to it at runtime. This also
requires adding support to probe at different baud rates on startup
since the FC might have been rebooted without rebooting the OSD.
MSP was not restricting anything an accepting any values, while
CLI had some seemingly arbitrary bounds. Now both interfaces accept
the full range of valid values.
osdCharacterGridBufferClear(), osdGridBufferClearGridRect() and
osdGridBufferClearPixelRect() where setting the whole buffer to
0 instead of SYM_BLANK, so when the map code read back the buffer
in order to determine if a slot was free it never found one
available.
Fixes#5522
osd_ahi_bordered: Wether to show a border in the corners
osd_ahi_width: Width in pixels
osd_ahi_height: Hight in pixels
osd_ahi_vertical_offset: Offset from vertical center of the screen
Widgets reduce the bandwidth needed to communicate with the OSD
dramatically, so for devices connected via UART they allow us to
draw way more frequently.