From f7d4188b4730b8779d62cd7c456ffd502e0303ec Mon Sep 17 00:00:00 2001 From: Hydra Date: Sun, 23 Oct 2016 15:47:14 +0200 Subject: [PATCH] Populate the list of OSD elements based on API response. This allows new elements to be added to the firmware and OSD and supports users that upgrade from older firmware releases. --- tabs/osd_layout.js | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/tabs/osd_layout.js b/tabs/osd_layout.js index 7681dbaaa..9799dd48b 100644 --- a/tabs/osd_layout.js +++ b/tabs/osd_layout.js @@ -313,7 +313,7 @@ OSD.constants = { { id: 14, name: 'callsign', - example_value: ':::CALLSIGN:::' + example_value: ':::CALLSIGN:::' }, // motors @@ -537,11 +537,34 @@ TABS.osd_layout.initialize = function (callback) { FONT.initData(); - for (let element of OSD_LAYOUT.elements) { - var element_defaults = find_element_defaults(element.id); + for (let element_id of OSD_ELEMENT_SUMMARY.supported_element_ids) { + var element_defaults = find_element_defaults(element_id); if (!element_defaults) { continue; } + + var element = null; + + for (let candidate of OSD_LAYOUT.elements) { + if (candidate.id != element_id) { + continue; + } + element = candidate; + break; + } + + if (!element) { + element = { + id: element_id, + initial_flag_mask: 0, + enabled: false, + positionable: true, + x: 0, + y: 0, + }; + } + + console.log(element); var text_key = 'osdElement_' + element_defaults.name;