Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarVoiceLuaBindings.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-19 23:16:59 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-19 23:16:59 +1000
commit1f038540a59ff96aed3cda901449a298b6f1c11c (patch)
treee0768bc861938423c74d6e2abb9ef74357574238 /source/frontend/StarVoiceLuaBindings.cpp
parentd682b164aa87435183a5ad3196b25b5ff8a5ad18 (diff)
Port in the voice settings menu
Diffstat (limited to 'source/frontend/StarVoiceLuaBindings.cpp')
-rw-r--r--source/frontend/StarVoiceLuaBindings.cpp12
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;