Spaces:
Sleeping
Sleeping
File size: 1,441 Bytes
402daee |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
--[[
ReaSpeechMain.lua - ReaSpeech main class
]]--
ctx = nil
app = nil
ReaSpeechMain = {}
function ReaSpeechMain:main()
if not self:check_imgui() then return end
reaper.atexit(function () self:onexit() end)
ctx = ImGui.CreateContext(ReaSpeechUI.TITLE, ReaSpeechUI.config_flags())
Fonts:load()
app = ReaSpeechUI.new()
reaper.defer(self:loop())
end
function ReaSpeechMain:loop()
local visible, open = false, false
return function()
ImGui.PushFont(ctx, Fonts.main)
app:trap(function()
Theme():push(ctx)
app:trap(function()
if ReaSpeechUI.METRICS then
ImGui.ShowMetricsWindow(ctx)
end
ImGui.SetNextWindowSize(ctx, app.WIDTH, app.HEIGHT, ImGui.Cond_FirstUseEver())
visible, open = ImGui.Begin(ctx, ReaSpeechUI.TITLE, true)
if visible then
app:trap(function()
app:react()
end)
ImGui.End(ctx)
end
end)
Theme():pop(ctx)
end)
ImGui.PopFont(ctx)
if open then
reaper.defer(self:loop())
end
end
end
function ReaSpeechMain:check_imgui()
if ImGui.CreateContext then
return true
else
reaper.MB(
"This script requires the ReaImGui API, which can be installed from:\n\n"
.. "Extensions > ReaPack > Browse packages...",
"ReaImGui required",
0
)
return false
end
end
function ReaSpeechMain:onexit()
Tempfile:remove_all()
end
|