summaryrefslogtreecommitdiff
path: root/servers/arvr_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/arvr_server.cpp')
-rw-r--r--servers/arvr_server.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/servers/arvr_server.cpp b/servers/arvr_server.cpp
index 4dfc40e9e4..1e73d6753c 100644
--- a/servers/arvr_server.cpp
+++ b/servers/arvr_server.cpp
@@ -49,20 +49,18 @@ void ARVRServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_interface_count"), &ARVRServer::get_interface_count);
ClassDB::bind_method(D_METHOD("get_interface", "idx"), &ARVRServer::get_interface);
+ ClassDB::bind_method(D_METHOD("get_interfaces"), &ARVRServer::get_interfaces);
ClassDB::bind_method(D_METHOD("find_interface", "name"), &ARVRServer::find_interface);
ClassDB::bind_method(D_METHOD("get_tracker_count"), &ARVRServer::get_tracker_count);
ClassDB::bind_method(D_METHOD("get_tracker", "idx"), &ARVRServer::get_tracker);
ClassDB::bind_method(D_METHOD("set_primary_interface", "interface"), &ARVRServer::set_primary_interface);
- ClassDB::bind_method(D_METHOD("add_interface", "interface"), &ARVRServer::add_interface);
- ClassDB::bind_method(D_METHOD("remove_interface", "interface"), &ARVRServer::remove_interface);
-
BIND_ENUM_CONSTANT(TRACKER_CONTROLLER);
BIND_ENUM_CONSTANT(TRACKER_BASESTATION);
BIND_ENUM_CONSTANT(TRACKER_ANCHOR);
- BIND_ENUM_CONSTANT(TRACKER_UNKNOWN);
BIND_ENUM_CONSTANT(TRACKER_ANY_KNOWN);
+ BIND_ENUM_CONSTANT(TRACKER_UNKNOWN);
BIND_ENUM_CONSTANT(TRACKER_ANY);
ADD_SIGNAL(MethodInfo("interface_added", PropertyInfo(Variant::STRING, "name")));
@@ -138,7 +136,7 @@ void ARVRServer::add_interface(const Ref<ARVRInterface> &p_interface) {
};
};
- print_line("Registered interface " + p_interface->get_name());
+ print_line("ARVR: Registered interface: " + p_interface->get_name());
interfaces.push_back(p_interface);
emit_signal("interface_added", p_interface->get_name());
@@ -191,6 +189,21 @@ Ref<ARVRInterface> ARVRServer::find_interface(const String &p_name) const {
return interfaces[idx];
};
+Array ARVRServer::get_interfaces() const {
+ Array ret;
+
+ for (int i = 0; i < interfaces.size(); i++) {
+ Dictionary iface_info;
+
+ iface_info["id"] = i;
+ iface_info["name"] = interfaces[i]->get_name();
+
+ ret.push_back(iface_info);
+ };
+
+ return ret;
+};
+
/*
A little extra info on the tracker ids, these are unique per tracker type so we get soem consistency in recognising our trackers, specifically controllers.