diff --git a/gui/src/components/tracker/TrackerSettings.tsx b/gui/src/components/tracker/TrackerSettings.tsx index cde169ea3..ca8d641c5 100644 --- a/gui/src/components/tracker/TrackerSettings.tsx +++ b/gui/src/components/tracker/TrackerSettings.tsx @@ -223,7 +223,9 @@ export function TrackerSettingsPage() { whitespace="whitespace-pre-wrap" textAlign="text-end" > - v{tracker?.device?.hardwareInfo?.firmwareVersion} + {tracker?.device?.hardwareInfo?.firmwareVersion + ? `v${tracker?.device?.hardwareInfo?.firmwareVersion}` + : '--'}
string manufacturer = 5;
+ *
+ * @return The manufacturer.
+ */
+ java.lang.String getManufacturer();
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return The bytes for manufacturer.
+ */
+ com.google.protobuf.ByteString getManufacturerBytes();
}
/**
@@ -3588,6 +3602,7 @@ public final class ProtobufMessages {
private TrackerAdded() {
trackerSerial_ = "";
trackerName_ = "";
+ manufacturer_ = "";
}
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
@@ -3713,6 +3728,48 @@ public final class ProtobufMessages {
return trackerRole_;
}
+ public static final int MANUFACTURER_FIELD_NUMBER = 5;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object manufacturer_ = "";
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return The manufacturer.
+ */
+ @java.lang.Override
+ public java.lang.String getManufacturer() {
+ java.lang.Object ref = manufacturer_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ manufacturer_ = s;
+ return s;
+ }
+ }
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return The bytes for manufacturer.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getManufacturerBytes() {
+ java.lang.Object ref = manufacturer_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b = com.google.protobuf.ByteString
+ .copyFromUtf8(
+ (java.lang.String) ref
+ );
+ manufacturer_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -3742,6 +3799,9 @@ public final class ProtobufMessages {
if (trackerRole_ != 0) {
output.writeInt32(4, trackerRole_);
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(manufacturer_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 5, manufacturer_);
+ }
getUnknownFields().writeTo(output);
}
@@ -3766,6 +3826,9 @@ public final class ProtobufMessages {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(4, trackerRole_);
}
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(manufacturer_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(5, manufacturer_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -3801,6 +3864,11 @@ public final class ProtobufMessages {
!= other.getTrackerRole()
)
return false;
+ if (
+ !getManufacturer()
+ .equals(other.getManufacturer())
+ )
+ return false;
if (!getUnknownFields().equals(other.getUnknownFields()))
return false;
return true;
@@ -3821,6 +3889,8 @@ public final class ProtobufMessages {
hash = (53 * hash) + getTrackerName().hashCode();
hash = (37 * hash) + TRACKER_ROLE_FIELD_NUMBER;
hash = (53 * hash) + getTrackerRole();
+ hash = (37 * hash) + MANUFACTURER_FIELD_NUMBER;
+ hash = (53 * hash) + getManufacturer().hashCode();
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -3993,6 +4063,7 @@ public final class ProtobufMessages {
trackerSerial_ = "";
trackerName_ = "";
trackerRole_ = 0;
+ manufacturer_ = "";
return this;
}
@@ -4044,6 +4115,9 @@ public final class ProtobufMessages {
if (((from_bitField0_ & 0x00000008) != 0)) {
result.trackerRole_ = trackerRole_;
}
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.manufacturer_ = manufacturer_;
+ }
}
@java.lang.Override
@@ -4083,6 +4157,11 @@ public final class ProtobufMessages {
if (other.getTrackerRole() != 0) {
setTrackerRole(other.getTrackerRole());
}
+ if (!other.getManufacturer().isEmpty()) {
+ manufacturer_ = other.manufacturer_;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -4130,6 +4209,11 @@ public final class ProtobufMessages {
bitField0_ |= 0x00000008;
break;
} // case 32
+ case 42: {
+ manufacturer_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
@@ -4398,6 +4482,93 @@ public final class ProtobufMessages {
return this;
}
+ private java.lang.Object manufacturer_ = "";
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return The manufacturer.
+ */
+ public java.lang.String getManufacturer() {
+ java.lang.Object ref = manufacturer_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ manufacturer_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return The bytes for manufacturer.
+ */
+ public com.google.protobuf.ByteString getManufacturerBytes() {
+ java.lang.Object ref = manufacturer_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b = com.google.protobuf.ByteString
+ .copyFromUtf8(
+ (java.lang.String) ref
+ );
+ manufacturer_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @param value The manufacturer to set.
+ * @return This builder for chaining.
+ */
+ public Builder setManufacturer(
+ java.lang.String value
+ ) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ manufacturer_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearManufacturer() {
+ manufacturer_ = getDefaultInstance().getManufacturer();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ * string manufacturer = 5;
+ *
+ * @param value The bytes for manufacturer to set.
+ * @return This builder for chaining.
+ */
+ public Builder setManufacturerBytes(
+ com.google.protobuf.ByteString value
+ ) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ manufacturer_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:messages.TrackerAdded)
}
@@ -8872,53 +9043,55 @@ public final class ProtobufMessages {
+
"ctionArgumentsEntry\0326\n\024ActionArgumentsEn"
+
- "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"f\n\014T"
+ "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"|\n\014T"
+
"rackerAdded\022\022\n\ntracker_id\030\001 \001(\005\022\026\n\016track"
+
"er_serial\030\002 \001(\t\022\024\n\014tracker_name\030\003 \001(\t\022\024\n"
+
- "\014tracker_role\030\004 \001(\005\"\374\002\n\rTrackerStatus\022\022\n"
+ "\014tracker_role\030\004 \001(\005\022\024\n\014manufacturer\030\005 \001("
+
- "\ntracker_id\030\001 \001(\005\022.\n\006status\030\002 \001(\0162\036.mess"
+ "\t\"\374\002\n\rTrackerStatus\022\022\n\ntracker_id\030\001 \001(\005\022"
+
- "ages.TrackerStatus.Status\0221\n\005extra\030\003 \003(\013"
+ ".\n\006status\030\002 \001(\0162\036.messages.TrackerStatus"
+
- "2\".messages.TrackerStatus.ExtraEntry\022;\n\n"
+ ".Status\0221\n\005extra\030\003 \003(\0132\".messages.Tracke"
+
- "confidence\030\004 \001(\0162\".messages.TrackerStatu"
+ "rStatus.ExtraEntry\022;\n\nconfidence\030\004 \001(\0162\""
+
- "s.ConfidenceH\000\210\001\001\032,\n\nExtraEntry\022\013\n\003key\030\001"
+ ".messages.TrackerStatus.ConfidenceH\000\210\001\001\032"
+
- " \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"E\n\006Status\022\020\n\014DIS"
+ ",\n\nExtraEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001("
+
- "CONNECTED\020\000\022\006\n\002OK\020\001\022\010\n\004BUSY\020\002\022\t\n\005ERROR\020\003"
+ "\t:\0028\001\"E\n\006Status\022\020\n\014DISCONNECTED\020\000\022\006\n\002OK\020"
+
- "\022\014\n\010OCCLUDED\020\004\"3\n\nConfidence\022\006\n\002NO\020\000\022\007\n\003"
+ "\001\022\010\n\004BUSY\020\002\022\t\n\005ERROR\020\003\022\014\n\010OCCLUDED\020\004\"3\n\n"
+
- "LOW\020\001\022\n\n\006MEDIUM\020\005\022\010\n\004HIGH\020\nB\r\n\013_confiden"
+ "Confidence\022\006\n\002NO\020\000\022\007\n\003LOW\020\001\022\n\n\006MEDIUM\020\005\022"
+
- "ce\"I\n\007Battery\022\022\n\ntracker_id\030\001 \001(\005\022\025\n\rbat"
+ "\010\n\004HIGH\020\nB\r\n\013_confidence\"I\n\007Battery\022\022\n\nt"
+
- "tery_level\030\002 \001(\002\022\023\n\013is_charging\030\003 \001(\010\"\241\002"
+ "racker_id\030\001 \001(\005\022\025\n\rbattery_level\030\002 \001(\002\022\023"
+
- "\n\017ProtobufMessage\022&\n\010position\030\001 \001(\0132\022.me"
+ "\n\013is_charging\030\003 \001(\010\"\241\002\n\017ProtobufMessage\022"
+
- "ssages.PositionH\000\022+\n\013user_action\030\002 \001(\0132\024"
+ "&\n\010position\030\001 \001(\0132\022.messages.PositionH\000\022"
+
- ".messages.UserActionH\000\022/\n\rtracker_added\030"
+ "+\n\013user_action\030\002 \001(\0132\024.messages.UserActi"
+
- "\003 \001(\0132\026.messages.TrackerAddedH\000\0221\n\016track"
+ "onH\000\022/\n\rtracker_added\030\003 \001(\0132\026.messages.T"
+
- "er_status\030\004 \001(\0132\027.messages.TrackerStatus"
+ "rackerAddedH\000\0221\n\016tracker_status\030\004 \001(\0132\027."
+
- "H\000\022$\n\007battery\030\005 \001(\0132\021.messages.BatteryH\000"
+ "messages.TrackerStatusH\000\022$\n\007battery\030\005 \001("
+
- "\022$\n\007version\030\006 \001(\0132\021.messages.VersionH\000B\t"
+ "\0132\021.messages.BatteryH\000\022$\n\007version\030\006 \001(\0132"
+
- "\n\007messageB2\n\034dev.slimevr.desktop.platfor"
+ "\021.messages.VersionH\000B\t\n\007messageB2\n\034dev.s"
+
- "mB\020ProtobufMessagesH\003b\006proto3"
+ "limevr.desktop.platformB\020ProtobufMessage"
+ +
+ "sH\003b\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(
@@ -8957,7 +9130,8 @@ public final class ProtobufMessages {
internal_static_messages_TrackerAdded_descriptor = getDescriptor().getMessageTypes().get(4);
internal_static_messages_TrackerAdded_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_messages_TrackerAdded_descriptor,
- new java.lang.String[] { "TrackerId", "TrackerSerial", "TrackerName", "TrackerRole", }
+ new java.lang.String[] { "TrackerId", "TrackerSerial", "TrackerName", "TrackerRole",
+ "Manufacturer", }
);
internal_static_messages_TrackerStatus_descriptor = getDescriptor()
.getMessageTypes()
diff --git a/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt b/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt
index 8a369ba34..62d97964f 100644
--- a/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt
+++ b/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt
@@ -147,23 +147,13 @@ abstract class SteamVRBridge(
val device = instance.deviceManager
.createDevice(
trackerAdded.trackerName,
- trackerAdded.trackerSerial,
- "OpenVR", // TODO : We need the manufacturer
+ null,
+ trackerAdded.manufacturer.ifEmpty { "OpenVR" },
)
// Display name, needsReset and isHmd
- val displayName: String
- val isHmd = if (trackerAdded.trackerId == 0) {
- displayName = if (trackerAdded.trackerName == "HMD") {
- "SteamVR Driver HMD"
- } else {
- "Feeder App HMD"
- }
- true
- } else {
- displayName = trackerAdded.trackerName
- false
- }
+ val displayName: String = trackerAdded.trackerName
+ val isHmd = trackerAdded.trackerId == 0
// trackerPosition
val role = getById(trackerAdded.trackerRole)