MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / makeVoiceCallbacks

Method makeVoiceCallbacks

source/frontend/StarVoiceLuaBindings.cpp:9–43  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7
8typedef Voice::SpeakerId SpeakerId;
9LuaCallbacks LuaBindings::makeVoiceCallbacks() {
10 LuaCallbacks callbacks;
11
12 auto voice = Voice::singletonPtr();
13
14 callbacks.registerCallbackWithSignature<StringList>("devices", bind(&Voice::availableDevices, voice));
15 callbacks.registerCallback( "getSettings", [voice]() -> Json { return voice->saveJson(); });
16 callbacks.registerCallback("mergeSettings", [voice](Json const& settings) { voice->loadJson(settings); });
17 // i have an alignment addiction i'm so sorry
18 callbacks.registerCallback("setSpeakerMuted", [voice](SpeakerId speakerId, bool muted) { voice->speaker(speakerId)->muted = muted; });
19 callbacks.registerCallback( "speakerMuted", [voice](SpeakerId speakerId) { return (bool)voice->speaker(speakerId)->muted; });
20 // it just looks so neat to me!!
21 callbacks.registerCallback("setSpeakerVolume", [voice](SpeakerId speakerId, float volume) { voice->speaker(speakerId)->volume = volume; });
22 callbacks.registerCallback( "speakerVolume", [voice](SpeakerId speakerId) { return (float)voice->speaker(speakerId)->volume; });
23
24 callbacks.registerCallback("speakerPosition", [voice](SpeakerId speakerId) { return voice->speaker(speakerId)->position; });
25
26 callbacks.registerCallback("speaker", [voice](Maybe<SpeakerId> speakerId) {
27 if (speakerId)
28 return voice->speaker(*speakerId)->toJson();
29 else
30 return voice->localSpeaker()->toJson();
31 });
32
33 callbacks.registerCallback("speakers", [voice](Maybe<bool> onlyPlaying) -> List<Json> {
34 List<Json> list;
35
36 for (auto& speaker : voice->sortedSpeakers(onlyPlaying.value(true)))
37 list.append(speaker->toJson());
38
39 return list;
40 });
41
42 return callbacks;
43}
44
45}

Callers

nothing calls this directly

Calls 9

saveJsonMethod · 0.80
speakerMethod · 0.80
localSpeakerMethod · 0.80
sortedSpeakersMethod · 0.80
registerCallbackMethod · 0.45
loadJsonMethod · 0.45
toJsonMethod · 0.45
valueMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected