11#include < audioapi/HostObjects/destinations/AudioDestinationNodeHostObject.h>
2+ #include < audioapi/HostObjects/utils/JsEnumParser.h>
23
34#include < memory>
45#include < utility>
@@ -7,24 +8,56 @@ namespace audioapi {
78
89AudioDestinationNodeHostObject::AudioDestinationNodeHostObject (
910 utils::graph::HostGraph::Node *node,
10- std::shared_ptr<AudioDestinationNode> destination)
11- : node_(node), destination_(std::move(destination)) {
12- addGetters (
13- JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, numberOfInputs),
14- JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, numberOfOutputs),
15- JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, channelCount));
11+ std::shared_ptr<AudioDestinationNode> destination,
12+ const AudioDestinationOptions &options)
13+ : node_(node), destination_(std::move(destination)),
14+ numberOfInputs_ (options.numberOfInputs),
15+ numberOfOutputs_(options.numberOfOutputs),
16+ channelCount_(options.channelCount),
17+ channelCountMode_(options.channelCountMode),
18+ channelInterpretation_(options.channelInterpretation) {
19+ addGetters (
20+ JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, numberOfInputs),
21+ JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, numberOfOutputs),
22+ JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, channelCount),
23+ JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, channelCountMode),
24+ JSI_EXPORT_PROPERTY_GETTER (AudioDestinationNodeHostObject, channelInterpretation));
25+
26+ addFunctions (
27+ JSI_EXPORT_FUNCTION (AudioDestinationNodeHostObject, connect),
28+ JSI_EXPORT_FUNCTION (AudioDestinationNodeHostObject, disconnect));
1629}
1730
1831JSI_PROPERTY_GETTER_IMPL (AudioDestinationNodeHostObject, numberOfInputs) {
19- return {1 };
32+ return {numberOfInputs_ };
2033}
2134
2235JSI_PROPERTY_GETTER_IMPL (AudioDestinationNodeHostObject, numberOfOutputs) {
23- return {0 };
36+ return {numberOfOutputs_ };
2437}
2538
2639JSI_PROPERTY_GETTER_IMPL (AudioDestinationNodeHostObject, channelCount) {
27- return {static_cast <int >(destination_->getChannelCount ())};
40+ return {static_cast <int >(channelCount_)};
41+ }
42+
43+ JSI_PROPERTY_GETTER_IMPL (AudioDestinationNodeHostObject, channelCountMode) {
44+ return jsi::String::createFromUtf8 (
45+ runtime, js_enum_parser::channelCountModeToString (channelCountMode_));
46+ }
47+
48+ JSI_PROPERTY_GETTER_IMPL (AudioDestinationNodeHostObject, channelInterpretation) {
49+ return jsi::String::createFromUtf8 (
50+ runtime, js_enum_parser::channelInterpretationToString (channelInterpretation_));
51+ }
52+
53+ // / AudioDestinationNode is the end point of the audio graph, it cannot connect to any other node, so connect and disconnect are no-op
54+ JSI_HOST_FUNCTION_IMPL (AudioDestinationNodeHostObject, connect) {
55+ return jsi::Value::undefined ();
56+ }
57+
58+ // / AudioDestinationNode is the end point of the audio graph, it cannot connect to any other node, so connect and disconnect are no-op
59+ JSI_HOST_FUNCTION_IMPL (AudioDestinationNodeHostObject, disconnect) {
60+ return jsi::Value::undefined ();
2861}
2962
3063} // namespace audioapi
0 commit comments