Files

52 lines
1.2 KiB
Lua
Raw Permalink Normal View History

-- love2talk — vendored from d:\code\love2talk
-- See VENDORED.md for the list of local modifications.
local os = love.system.getOS()
local backend -- upstream leaked this as a global; scoped to the module here
if os == "Windows" then
backend = require "accessibility.vendor.love2talk.tolk"
backend.trySAPI(true)
elseif os == "OS X" then
backend = require "accessibility.vendor.love2talk.macspeech"
end
local function say(text, interrupt)
if not backend then
return
end
interrupt = interrupt or false
if os == "Windows" then
backend.output(text, interrupt)
else
backend.output(text)
end
end
local function isSpeaking()
if not backend then
return false
end
return backend.isSpeaking()
end
local function silence()
if not backend or not backend.silence then
return
end
backend.silence()
end
-- LOCAL ADDITION: exposed for diagnostics. Tells us whether Tolk actually found a
-- speech channel (a running screen reader, or the SAPI fallback) as opposed to
-- merely having loaded the DLL successfully.
local function hasSpeech()
if not backend or not backend.hasSpeech then
return false
end
return backend.hasSpeech()
end
return {say = say, isSpeaking = isSpeaking, silence = silence, hasSpeech = hasSpeech}