Skip to content

Commit 70f5e47

Browse files
authored
Merge pull request #480 from atomgomba/hide-vtx-menu
Hide VTX menu when feature is unavailable
2 parents b5a9948 + 47f9efb commit 70f5e47

File tree

5 files changed

+36
-5
lines changed

5 files changed

+36
-5
lines changed

src/SCRIPTS/BF/features.lua

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
local features = {
2+
vtx = true,
3+
}
4+
5+
return features

src/SCRIPTS/BF/ui.lua

+19-1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ local function confirm(page)
8282
collectgarbage()
8383
end
8484

85+
local function filterAvailablePages(pageFiles)
86+
local newPageFiles = pageFiles
87+
88+
local function skipPage(script)
89+
local currentPageFiles = {}
90+
for i = 1, #newPageFiles do
91+
if newPageFiles[i].script ~= script then
92+
currentPageFiles[#currentPageFiles + 1] = newPageFiles[i]
93+
end
94+
end
95+
newPageFiles = currentPageFiles
96+
end
97+
98+
if not features.vtx then skipPage("vtx.lua") end
99+
100+
return newPageFiles
101+
end
102+
85103
local function createPopupMenu()
86104
popupMenuActive = 1
87105
popupMenu = {}
@@ -296,7 +314,7 @@ local function run_ui(event)
296314
return 0
297315
end
298316
init = nil
299-
PageFiles = assert(loadScript("pages.lua"))()
317+
PageFiles = filterAvailablePages(assert(loadScript("pages.lua"))())
300318
invalidatePages()
301319
uiState = prevUiState or uiStatus.mainMenu
302320
prevUiState = nil

src/SCRIPTS/BF/ui_init.lua

+9-4
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ local function init()
2222
mcuIdReceived = getMCUId.f()
2323
if mcuIdReceived then
2424
getMCUId = nil
25-
local f = loadScript("VTX_TABLES/"..mcuId..".lua")
26-
if f and f() then
27-
vtxTablesReceived = true
28-
f = nil
25+
local f = loadScript("VTX_TABLES/" .. mcuId .. ".lua")
26+
if f then
27+
local table = f()
28+
if table then
29+
vtxTablesReceived = true
30+
features.vtx = 0 < table.frequenciesPerBand
31+
f = nil
32+
table = nil
33+
end
2934
end
3035
collectgarbage()
3136
f = loadScript("BOARD_INFO/"..mcuId..".lua")

src/SCRIPTS/BF/vtx_tables.lua

+2
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ local function processMspReply(cmd, payload, err)
2929
vtxTableAvailable = true
3030
vtxFrequencyTableReceived = true
3131
vtxPowerTableReceived = true
32+
features.vtx = false
3233
return
3334
end
3435
vtxConfigReceived = true
3536
vtxTableAvailable = payload[12] ~= 0
37+
features.vtx = vtxTableAvailable
3638
vtxTableConfig.bands = payload[13]
3739
vtxTableConfig.channels = payload[14]
3840
vtxTableConfig.powerLevels = payload[15]

src/SCRIPTS/TOOLS/bf.lua

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ if scriptsCompiled then
1212
radio = assert(loadScript("radios.lua"))().msp
1313
assert(loadScript(protocol.mspTransport))()
1414
assert(loadScript("MSP/common.lua"))()
15+
features = assert(loadScript("features.lua"))()
1516
run = assert(loadScript("ui.lua"))()
1617
else
1718
run = assert(loadScript("COMPILE/compile.lua"))()

0 commit comments

Comments
 (0)