The easiest and recommended way of integration RAVENNAKIT into your project is by using CMake. The following steps are required:
Then call target_link_libraries() to link your target against the RAVENNAKIT library:
It is possible to manually integrate RAVENNAKIT into your project. This requires some manual steps and is not as trivial as the CMake approach:
To influence how RAVENNAKIT is built, several variables can be set. Head over to the options documentation for more details.
public:
}
}
}
}
}
}
}
}
}
}
[[maybe_unused]]
const rav::nmos::Node::Status status, [[maybe_unused]]
const rav::nmos::Node::StatusInfo& registry_info
) override {
}
}
};
}
int main([[maybe_unused]]
int const argc, [[maybe_unused]]
char* argv[]) {
fmt::println("Press return key to stop...");
std::string line;
std::getline(std::cin, line);
return 0;
}
void ravenna_receiver_removed(const rav::Id receiver_id) override
Called when a receiver is removed from the node.
void network_interface_config_updated(const rav::NetworkInterfaceConfig &config) override
Called when the network interface configuration is updated.
void nmos_node_config_updated(const rav::nmos::Node::Configuration &config) override
Called when the NMOS configuration is updated.
void ravenna_sender_added(const rav::RavennaSender &sender) override
Called when a sender is added to the node, or when subscribing.
void ravenna_session_discovered(const rav::dnssd::ServiceDescription &desc) override
Called when a session is discovered.
void nmos_node_status_changed(const rav::nmos::Node::Status status, const rav::nmos::Node::StatusInfo ®istry_info) override
Called when the NMOS node state changed.
void ravenna_node_discovered(const rav::dnssd::ServiceDescription &desc) override
Called when a node is discovered.
void ravenna_sender_removed(const rav::Id sender_id) override
Called when a sender is removed from the node.
void ravenna_session_removed(const rav::dnssd::ServiceDescription &desc) override
Called when a session is removed.
void ravenna_node_configuration_updated(const rav::RavennaNode::Configuration &configuration) override
Called when the configuration of the RavennaNode is updated.
void ravenna_receiver_added(const rav::RavennaReceiver &receiver) override
Called when a receiver is added to the node, or when subscribing.
void ravenna_node_removed(const rav::dnssd::ServiceDescription &desc) override
Called when a node is removed.
Base class for classes which want to receive updates from the ravenna node.
This class contains all the components to act like a RAVENNA node as specified in the RAVENNA protoco...
std::future< void > subscribe(Subscriber *subscriber)
Adds a subscriber to the node.
std::future< void > set_configuration(Configuration config)
Sets the configuration for this node, state will be updated accordingly.
std::future< void > unsubscribe(Subscriber *subscriber)
Removes a subscriber from the node.
#define RAV_LOG_INFO(...)
void set_log_level_from_env(const char *env_var="RAV_LOG_LEVEL")
Tries to find given environment variable and set the log level accordingly.
const char * to_string(const AudioEncoding encoding)
Holds the configuration of the node.
bool enable_dnssd_session_discovery
When true, the RAVENNA node will discover sessions (streams) using dns-sd.
bool enable_dnssd_node_discovery
When true, the RAVENNA node will discover other nodes using dns-sd.
bool enable_dnssd_session_advertisement
When true, the RAVENNA node will advertise senders using dns-sd.
A struct containing data which represents a service on the network.
std::string to_string() const noexcept
Returns a description of this struct, which might be handy for debugging or logging purposes.