diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-19 23:16:59 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-19 23:16:59 +1000 |
commit | 1f038540a59ff96aed3cda901449a298b6f1c11c (patch) | |
tree | e0768bc861938423c74d6e2abb9ef74357574238 /source/frontend/StarVoiceLuaBindings.cpp | |
parent | d682b164aa87435183a5ad3196b25b5ff8a5ad18 (diff) |
Port in the voice settings menu
Diffstat (limited to 'source/frontend/StarVoiceLuaBindings.cpp')
-rw-r--r-- | source/frontend/StarVoiceLuaBindings.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/frontend/StarVoiceLuaBindings.cpp b/source/frontend/StarVoiceLuaBindings.cpp index 1b62aef..934b294 100644 --- a/source/frontend/StarVoiceLuaBindings.cpp +++ b/source/frontend/StarVoiceLuaBindings.cpp @@ -6,9 +6,11 @@ namespace Star { typedef Voice::SpeakerId SpeakerId; -LuaCallbacks LuaBindings::makeVoiceCallbacks(Voice* voice) { +LuaCallbacks LuaBindings::makeVoiceCallbacks() { LuaCallbacks callbacks; + auto voice = Voice::singletonPtr(); + callbacks.registerCallbackWithSignature<StringList>("devices", bind(&Voice::availableDevices, voice)); callbacks.registerCallback( "getSettings", [voice]() -> Json { return voice->saveJson(); }); callbacks.registerCallback("mergeSettings", [voice](Json const& settings) { voice->loadJson(settings); }); @@ -21,7 +23,13 @@ LuaCallbacks LuaBindings::makeVoiceCallbacks(Voice* voice) { callbacks.registerCallback("speakerPosition", [voice](SpeakerId speakerId) { return voice->speaker(speakerId)->position; }); - callbacks.registerCallback("speaker", [voice](SpeakerId speakerId) { return voice->speaker(speakerId)->toJson(); }); + callbacks.registerCallback("speaker", [voice](Maybe<SpeakerId> speakerId) { + if (speakerId) + return voice->speaker(*speakerId)->toJson(); + else + return voice->localSpeaker()->toJson(); + }); + callbacks.registerCallback("speakers", [voice](Maybe<bool> onlyPlaying) -> List<Json> { List<Json> list; |