1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-23 08:15:22 +03:00

Merge pull request #1285 from mikeller/update_fonts_for_stick_overlays

Added OSD preview for stick overlays, added custom symbols for stick overlays to fonts.
This commit is contained in:
Michael Keller 2019-01-28 20:17:26 +13:00 committed by GitHub
commit d502e69bb2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 34437 additions and 34359 deletions

View file

@ -38,6 +38,18 @@ SYM.HEADING_S = 0x19;
SYM.HEADING_E = 0x1A;
SYM.HEADING_W = 0x1B;
SYM.TEMP_C = 0x0E;
SYM.STICK_OVERLAY_SPRITE_HIGH = 0x08;
SYM.STICK_OVERLAY_SPRITE_MID = 0x09;
SYM.STICK_OVERLAY_SPRITE_LOW = 0x0A;
SYM.STICK_OVERLAY_CENTER = 0x0B;
SYM.STICK_OVERLAY_VERTICAL = 0x16;
SYM.STICK_OVERLAY_HORIZONTAL = 0x17;
var STICK_OVERLAY_SPRITE = [
SYM.STICK_OVERLAY_SPRITE_HIGH,
SYM.STICK_OVERLAY_SPRITE_MID,
SYM.STICK_OVERLAY_SPRITE_LOW
];
var FONT = FONT || {};
@ -277,11 +289,53 @@ OSD.generateTemperaturePreview = function (osd_data, temperature) {
OSD.generateCraftName = function (osd_data) {
var preview = 'CRAFT_NAME';
if (CONFIG.name != '')
if (CONFIG.name != '') {
preview = CONFIG.name.toUpperCase();
}
return preview;
}
OSD.drawStickOverlayPreview = function () {
function randomInt(count) {
return Math.floor(Math.random() * Math.floor(count));
}
var OVERLAY_WIDTH = 7;
var OVERLAY_HEIGHT = 5;
var stickX = randomInt(OVERLAY_WIDTH);
var stickY = randomInt(OVERLAY_HEIGHT);
var stickSymbol = randomInt(3);
// From 'osdDrawStickOverlayAxis' in 'src/main/io/osd.c'
var stickOverlay = new Array();
for (var x = 0; x < OVERLAY_WIDTH; x++) {
for (var y = 0; y < OVERLAY_HEIGHT; y++) {
var symbol = undefined;
if (x === stickX && y === stickY) {
symbol = STICK_OVERLAY_SPRITE[stickSymbol];
} else if (x === (OVERLAY_WIDTH - 1) / 2 && y === (OVERLAY_HEIGHT - 1) / 2) {
symbol = SYM.STICK_OVERLAY_CENTER;
} else if (x === (OVERLAY_WIDTH - 1) / 2) {
symbol = SYM.STICK_OVERLAY_VERTICAL;
} else if (y === (OVERLAY_HEIGHT - 1) / 2) {
symbol = SYM.STICK_OVERLAY_HORIZONTAL;
}
if (symbol) {
var element = {
x: x,
y: y,
sym: symbol
};
stickOverlay.push(element);
}
}
}
return stickOverlay;
}
OSD.constants = {
VISIBLE: 0x0800,
VIDEO_TYPES: [
@ -410,7 +464,6 @@ OSD.constants = {
return semver.gte(CONFIG.apiVersion, "1.39.0") ? true : false;
},
preview: function () {
var artificialHorizon = new Array();
for (var j = 1; j < 8; j++) {
@ -496,9 +549,7 @@ OSD.constants = {
default_position: -77,
draw_order: 150,
positionable: true,
preview: function (osd_data) {
return OSD.generateCraftName(osd_data, 1);
}
preview: OSD.generateCraftName
},
ALTITUDE: {
name: 'ALTITUDE',
@ -847,6 +898,22 @@ OSD.constants = {
return '653' + FONT.symbol(osd_data.unit_mode === 0 ? SYM.FEET : SYM.METRE);
}
},
STICK_OVERLAY_LEFT: {
name: 'STICK_OVERLAY_LEFT',
desc: 'osdDescElementStickOverlayLeft',
default_position: -1,
draw_order: 370,
positionable: true,
preview: OSD.drawStickOverlayPreview
},
STICK_OVERLAY_RIGHT: {
name: 'STICK_OVERLAY_RIGHT',
desc: 'osdDescElementStickOverlayRight',
default_position: -1,
draw_order: 370,
positionable: true,
preview: OSD.drawStickOverlayPreview
},
},
UNKNOWN_DISPLAY_FIELD: {
name: 'UNKNOWN_',
@ -1120,6 +1187,8 @@ OSD.chooseFields = function () {
F.FLIP_ARROW,
F.LINK_QUALITY,
F.FLIGHT_DIST,
F.STICK_OVERLAY_LEFT,
F.STICK_OVERLAY_RIGHT,
]);
}
}