diff --git a/generate-flatbuffer-windows.ps1 b/generate-flatbuffer-windows.ps1 new file mode 100644 index 00000000..7e86b8f9 --- /dev/null +++ b/generate-flatbuffer-windows.ps1 @@ -0,0 +1,16 @@ +$ErrorActionPreference = "Stop" + +# TODO: check flatc version before doing anything + +Remove-Item -ErrorAction Ignore -Recurse protocol/java/src +Remove-Item -ErrorAction Ignore -Recurse protocol/cpp/include/solarxr_protocol/generated +Remove-Item -ErrorAction Ignore -Recurse protocol/typescript/src +Remove-Item -ErrorAction Ignore -Recurse protocol/rust/src/generated +Remove-Item -ErrorAction Ignore -Recurse protocol/kotlin/src + + +& "flatc" --java --gen-object-api --gen-all -o protocol/java/src -I ./schema/ ./schema/all.fbs +& "flatc" --cpp --scoped-enums --gen-all -o protocol/cpp/include/solarxr_protocol/generated -I ./schema/ ./schema/all.fbs +& "flatc" --ts --gen-object-api --gen-all -o protocol/typescript/src -I ./schema/ ./schema/all.fbs +& "flatc" --rust --rust-module-root-file --gen-all -o protocol/rust/src/generated ./schema/all.fbs +& "flatc" --kotlin --gen-jvmstatic --gen-all -o ./protocol/kotlin/src -I ./schema/ ./schema/all.fbs diff --git a/protocol/cpp/include/solarxr_protocol/generated/all_generated.h b/protocol/cpp/include/solarxr_protocol/generated/all_generated.h index d8c526ae..89ed4dbc 100644 --- a/protocol/cpp/include/solarxr_protocol/generated/all_generated.h +++ b/protocol/cpp/include/solarxr_protocol/generated/all_generated.h @@ -618,11 +618,17 @@ enum class TrackerRole : uint8_t { HMD = 19, BEACON = 20, GENERIC_CONTROLLER = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27, MIN = NONE, - MAX = GENERIC_CONTROLLER + MAX = RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; -inline const TrackerRole (&EnumValuesTrackerRole())[22] { +inline const TrackerRole (&EnumValuesTrackerRole())[28] { static const TrackerRole values[] = { TrackerRole::NONE, TrackerRole::WAIST, @@ -645,13 +651,19 @@ inline const TrackerRole (&EnumValuesTrackerRole())[22] { TrackerRole::KEYBOARD, TrackerRole::HMD, TrackerRole::BEACON, - TrackerRole::GENERIC_CONTROLLER + TrackerRole::GENERIC_CONTROLLER, + TrackerRole::LEFT_TOES_ABDUCTOR_HALLUCIS, + TrackerRole::LEFT_TOES_DIGITORUM_BREVIS, + TrackerRole::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + TrackerRole::RIGHT_TOES_ABDUCTOR_HALLUCIS, + TrackerRole::RIGHT_TOES_DIGITORUM_BREVIS, + TrackerRole::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; return values; } inline const char * const *EnumNamesTrackerRole() { - static const char * const names[23] = { + static const char * const names[29] = { "NONE", "WAIST", "LEFT_FOOT", @@ -674,13 +686,19 @@ inline const char * const *EnumNamesTrackerRole() { "HMD", "BEACON", "GENERIC_CONTROLLER", + "LEFT_TOES_ABDUCTOR_HALLUCIS", + "LEFT_TOES_DIGITORUM_BREVIS", + "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", + "RIGHT_TOES_ABDUCTOR_HALLUCIS", + "RIGHT_TOES_DIGITORUM_BREVIS", + "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", nullptr }; return names; } inline const char *EnumNameTrackerRole(TrackerRole e) { - if (flatbuffers::IsOutRange(e, TrackerRole::NONE, TrackerRole::GENERIC_CONTROLLER)) return ""; + if (flatbuffers::IsOutRange(e, TrackerRole::NONE, TrackerRole::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI)) return ""; const size_t index = static_cast(e); return EnumNamesTrackerRole()[index]; } @@ -741,11 +759,17 @@ enum class BodyPart : uint8_t { RIGHT_LITTLE_PROXIMAL = 52, RIGHT_LITTLE_INTERMEDIATE = 53, RIGHT_LITTLE_DISTAL = 54, + LEFT_TOES_ABDUCTOR_HALLUCIS = 55, + LEFT_TOES_DIGITORUM_BREVIS = 56, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 57, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 58, + RIGHT_TOES_DIGITORUM_BREVIS = 59, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 60, MIN = NONE, - MAX = RIGHT_LITTLE_DISTAL + MAX = RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; -inline const BodyPart (&EnumValuesBodyPart())[53] { +inline const BodyPart (&EnumValuesBodyPart())[59] { static const BodyPart values[] = { BodyPart::NONE, BodyPart::HEAD, @@ -799,13 +823,19 @@ inline const BodyPart (&EnumValuesBodyPart())[53] { BodyPart::RIGHT_RING_DISTAL, BodyPart::RIGHT_LITTLE_PROXIMAL, BodyPart::RIGHT_LITTLE_INTERMEDIATE, - BodyPart::RIGHT_LITTLE_DISTAL + BodyPart::RIGHT_LITTLE_DISTAL, + BodyPart::LEFT_TOES_ABDUCTOR_HALLUCIS, + BodyPart::LEFT_TOES_DIGITORUM_BREVIS, + BodyPart::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + BodyPart::RIGHT_TOES_ABDUCTOR_HALLUCIS, + BodyPart::RIGHT_TOES_DIGITORUM_BREVIS, + BodyPart::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; return values; } inline const char * const *EnumNamesBodyPart() { - static const char * const names[56] = { + static const char * const names[62] = { "NONE", "HEAD", "NECK", @@ -861,13 +891,19 @@ inline const char * const *EnumNamesBodyPart() { "RIGHT_LITTLE_PROXIMAL", "RIGHT_LITTLE_INTERMEDIATE", "RIGHT_LITTLE_DISTAL", + "LEFT_TOES_ABDUCTOR_HALLUCIS", + "LEFT_TOES_DIGITORUM_BREVIS", + "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", + "RIGHT_TOES_ABDUCTOR_HALLUCIS", + "RIGHT_TOES_DIGITORUM_BREVIS", + "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", nullptr }; return names; } inline const char *EnumNameBodyPart(BodyPart e) { - if (flatbuffers::IsOutRange(e, BodyPart::NONE, BodyPart::RIGHT_LITTLE_DISTAL)) return ""; + if (flatbuffers::IsOutRange(e, BodyPart::NONE, BodyPart::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI)) return ""; const size_t index = static_cast(e); return EnumNamesBodyPart()[index]; } @@ -950,6 +986,39 @@ inline const char *EnumNameMagnetometerStatus(MagnetometerStatus e) { return EnumNamesMagnetometerStatus()[index]; } +enum class RestCalibrationStatus : uint8_t { + NOT_SUPPORTED = 0, + NOT_CALIBRATED = 1, + CALIBRATED = 2, + MIN = NOT_SUPPORTED, + MAX = CALIBRATED +}; + +inline const RestCalibrationStatus (&EnumValuesRestCalibrationStatus())[3] { + static const RestCalibrationStatus values[] = { + RestCalibrationStatus::NOT_SUPPORTED, + RestCalibrationStatus::NOT_CALIBRATED, + RestCalibrationStatus::CALIBRATED + }; + return values; +} + +inline const char * const *EnumNamesRestCalibrationStatus() { + static const char * const names[4] = { + "NOT_SUPPORTED", + "NOT_CALIBRATED", + "CALIBRATED", + nullptr + }; + return names; +} + +inline const char *EnumNameRestCalibrationStatus(RestCalibrationStatus e) { + if (flatbuffers::IsOutRange(e, RestCalibrationStatus::NOT_SUPPORTED, RestCalibrationStatus::CALIBRATED)) return ""; + const size_t index = static_cast(e); + return EnumNamesRestCalibrationStatus()[index]; +} + namespace hardware_info { enum class McuType : uint16_t { @@ -1983,11 +2052,17 @@ enum class SkeletonBone : uint8_t { HAND_Z = 19, ELBOW_OFFSET = 20, UPPER_CHEST = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27, MIN = NONE, - MAX = UPPER_CHEST + MAX = RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; -inline const SkeletonBone (&EnumValuesSkeletonBone())[22] { +inline const SkeletonBone (&EnumValuesSkeletonBone())[28] { static const SkeletonBone values[] = { SkeletonBone::NONE, SkeletonBone::HEAD, @@ -2010,13 +2085,19 @@ inline const SkeletonBone (&EnumValuesSkeletonBone())[22] { SkeletonBone::HAND_Y, SkeletonBone::HAND_Z, SkeletonBone::ELBOW_OFFSET, - SkeletonBone::UPPER_CHEST + SkeletonBone::UPPER_CHEST, + SkeletonBone::LEFT_TOES_ABDUCTOR_HALLUCIS, + SkeletonBone::LEFT_TOES_DIGITORUM_BREVIS, + SkeletonBone::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + SkeletonBone::RIGHT_TOES_ABDUCTOR_HALLUCIS, + SkeletonBone::RIGHT_TOES_DIGITORUM_BREVIS, + SkeletonBone::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI }; return values; } inline const char * const *EnumNamesSkeletonBone() { - static const char * const names[23] = { + static const char * const names[29] = { "NONE", "HEAD", "NECK", @@ -2039,13 +2120,19 @@ inline const char * const *EnumNamesSkeletonBone() { "HAND_Z", "ELBOW_OFFSET", "UPPER_CHEST", + "LEFT_TOES_ABDUCTOR_HALLUCIS", + "LEFT_TOES_DIGITORUM_BREVIS", + "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", + "RIGHT_TOES_ABDUCTOR_HALLUCIS", + "RIGHT_TOES_DIGITORUM_BREVIS", + "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", nullptr }; return names; } inline const char *EnumNameSkeletonBone(SkeletonBone e) { - if (flatbuffers::IsOutRange(e, SkeletonBone::NONE, SkeletonBone::UPPER_CHEST)) return ""; + if (flatbuffers::IsOutRange(e, SkeletonBone::NONE, SkeletonBone::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI)) return ""; const size_t index = static_cast(e); return EnumNamesSkeletonBone()[index]; } @@ -4354,7 +4441,8 @@ struct TrackerInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_MOUNTING_RESET_ORIENTATION = 24, VT_IS_HMD = 26, VT_MAGNETOMETER = 28, - VT_DATA_SUPPORT = 30 + VT_DATA_SUPPORT = 30, + VT_REST_CALIBRATION_STATUS = 32 }; solarxr_protocol::datatypes::hardware_info::ImuType imu_type() const { return static_cast(GetField(VT_IMU_TYPE, 0)); @@ -4412,6 +4500,9 @@ struct TrackerInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support() const { return static_cast(GetField(VT_DATA_SUPPORT, 0)); } + solarxr_protocol::datatypes::RestCalibrationStatus rest_calibration_status() const { + return static_cast(GetField(VT_REST_CALIBRATION_STATUS, 0)); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_IMU_TYPE, 2) && @@ -4430,6 +4521,7 @@ struct TrackerInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_IS_HMD, 1) && VerifyField(verifier, VT_MAGNETOMETER, 1) && VerifyField(verifier, VT_DATA_SUPPORT, 1) && + VerifyField(verifier, VT_REST_CALIBRATION_STATUS, 1) && verifier.EndTable(); } }; @@ -4480,6 +4572,9 @@ struct TrackerInfoBuilder { void add_data_support(solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support) { fbb_.AddElement(TrackerInfo::VT_DATA_SUPPORT, static_cast(data_support), 0); } + void add_rest_calibration_status(solarxr_protocol::datatypes::RestCalibrationStatus rest_calibration_status) { + fbb_.AddElement(TrackerInfo::VT_REST_CALIBRATION_STATUS, static_cast(rest_calibration_status), 0); + } explicit TrackerInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -4506,7 +4601,8 @@ inline flatbuffers::Offset CreateTrackerInfo( const solarxr_protocol::datatypes::math::Quat *mounting_reset_orientation = nullptr, bool is_hmd = false, solarxr_protocol::datatypes::MagnetometerStatus magnetometer = solarxr_protocol::datatypes::MagnetometerStatus::NOT_SUPPORTED, - solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support = solarxr_protocol::datatypes::hardware_info::TrackerDataType::ROTATION) { + solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support = solarxr_protocol::datatypes::hardware_info::TrackerDataType::ROTATION, + solarxr_protocol::datatypes::RestCalibrationStatus rest_calibration_status = solarxr_protocol::datatypes::RestCalibrationStatus::NOT_SUPPORTED) { TrackerInfoBuilder builder_(_fbb); builder_.add_mounting_reset_orientation(mounting_reset_orientation); builder_.add_custom_name(custom_name); @@ -4514,6 +4610,7 @@ inline flatbuffers::Offset CreateTrackerInfo( builder_.add_mounting_orientation(mounting_orientation); builder_.add_poll_rate(poll_rate); builder_.add_imu_type(imu_type); + builder_.add_rest_calibration_status(rest_calibration_status); builder_.add_data_support(data_support); builder_.add_magnetometer(magnetometer); builder_.add_is_hmd(is_hmd); @@ -4540,7 +4637,8 @@ inline flatbuffers::Offset CreateTrackerInfoDirect( const solarxr_protocol::datatypes::math::Quat *mounting_reset_orientation = nullptr, bool is_hmd = false, solarxr_protocol::datatypes::MagnetometerStatus magnetometer = solarxr_protocol::datatypes::MagnetometerStatus::NOT_SUPPORTED, - solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support = solarxr_protocol::datatypes::hardware_info::TrackerDataType::ROTATION) { + solarxr_protocol::datatypes::hardware_info::TrackerDataType data_support = solarxr_protocol::datatypes::hardware_info::TrackerDataType::ROTATION, + solarxr_protocol::datatypes::RestCalibrationStatus rest_calibration_status = solarxr_protocol::datatypes::RestCalibrationStatus::NOT_SUPPORTED) { auto display_name__ = display_name ? _fbb.CreateString(display_name) : 0; auto custom_name__ = custom_name ? _fbb.CreateString(custom_name) : 0; return solarxr_protocol::data_feed::tracker::CreateTrackerInfo( @@ -4558,7 +4656,8 @@ inline flatbuffers::Offset CreateTrackerInfoDirect( mounting_reset_orientation, is_hmd, magnetometer, - data_support); + data_support, + rest_calibration_status); } } // namespace tracker @@ -7037,7 +7136,9 @@ struct SteamVRTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab VT_LEFT_ELBOW = 26, VT_RIGHT_ELBOW = 28, VT_LEFT_HAND = 30, - VT_RIGHT_HAND = 32 + VT_RIGHT_HAND = 32, + VT_LEFT_TOES = 34, + VT_RIGHT_TOES = 36 }; bool waist() const { return GetField(VT_WAIST, 0) != 0; @@ -7072,6 +7173,12 @@ struct SteamVRTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab bool right_hand() const { return GetField(VT_RIGHT_HAND, 0) != 0; } + bool left_toes() const { + return GetField(VT_LEFT_TOES, 0) != 0; + } + bool right_toes() const { + return GetField(VT_RIGHT_TOES, 0) != 0; + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_WAIST, 1) && @@ -7085,6 +7192,8 @@ struct SteamVRTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab VerifyField(verifier, VT_RIGHT_ELBOW, 1) && VerifyField(verifier, VT_LEFT_HAND, 1) && VerifyField(verifier, VT_RIGHT_HAND, 1) && + VerifyField(verifier, VT_LEFT_TOES, 1) && + VerifyField(verifier, VT_RIGHT_TOES, 1) && verifier.EndTable(); } }; @@ -7126,6 +7235,12 @@ struct SteamVRTrackersSettingBuilder { void add_right_hand(bool right_hand) { fbb_.AddElement(SteamVRTrackersSetting::VT_RIGHT_HAND, static_cast(right_hand), 0); } + void add_left_toes(bool left_toes) { + fbb_.AddElement(SteamVRTrackersSetting::VT_LEFT_TOES, static_cast(left_toes), 0); + } + void add_right_toes(bool right_toes) { + fbb_.AddElement(SteamVRTrackersSetting::VT_RIGHT_TOES, static_cast(right_toes), 0); + } explicit SteamVRTrackersSettingBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -7149,8 +7264,12 @@ inline flatbuffers::Offset CreateSteamVRTrackersSetting( bool left_elbow = false, bool right_elbow = false, bool left_hand = false, - bool right_hand = false) { + bool right_hand = false, + bool left_toes = false, + bool right_toes = false) { SteamVRTrackersSettingBuilder builder_(_fbb); + builder_.add_right_toes(right_toes); + builder_.add_left_toes(left_toes); builder_.add_right_hand(right_hand); builder_.add_left_hand(left_hand); builder_.add_right_elbow(right_elbow); @@ -7584,7 +7703,8 @@ struct OSCTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_KNEES = 10, VT_FEET = 12, VT_ELBOWS = 14, - VT_HANDS = 16 + VT_HANDS = 16, + VT_TOES = 18 }; bool head() const { return GetField(VT_HEAD, 0) != 0; @@ -7607,6 +7727,9 @@ struct OSCTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool hands() const { return GetField(VT_HANDS, 0) != 0; } + bool toes() const { + return GetField(VT_TOES, 0) != 0; + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_HEAD, 1) && @@ -7616,6 +7739,7 @@ struct OSCTrackersSetting FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_FEET, 1) && VerifyField(verifier, VT_ELBOWS, 1) && VerifyField(verifier, VT_HANDS, 1) && + VerifyField(verifier, VT_TOES, 1) && verifier.EndTable(); } }; @@ -7645,6 +7769,9 @@ struct OSCTrackersSettingBuilder { void add_hands(bool hands) { fbb_.AddElement(OSCTrackersSetting::VT_HANDS, static_cast(hands), 0); } + void add_toes(bool toes) { + fbb_.AddElement(OSCTrackersSetting::VT_TOES, static_cast(toes), 0); + } explicit OSCTrackersSettingBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -7664,8 +7791,10 @@ inline flatbuffers::Offset CreateOSCTrackersSetting( bool knees = false, bool feet = false, bool elbows = false, - bool hands = false) { + bool hands = false, + bool toes = false) { OSCTrackersSettingBuilder builder_(_fbb); + builder_.add_toes(toes); builder_.add_hands(hands); builder_.add_elbows(elbows); builder_.add_feet(feet); diff --git a/protocol/java/gradle/wrapper/gradle-wrapper.jar b/protocol/java/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..41d9927a Binary files /dev/null and b/protocol/java/gradle/wrapper/gradle-wrapper.jar differ diff --git a/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfo.java b/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfo.java index b2de6382..ce0846af 100644 --- a/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfo.java +++ b/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfo.java @@ -77,8 +77,9 @@ public final class TrackerInfo extends Table { * Indicates what type of data the tracker sends (note: it always ends up being rotation in the end) */ public int dataSupport() { int o = __offset(30); return o != 0 ? bb.get(o + bb_pos) & 0xFF : 0; } + public int restCalibrationStatus() { int o = __offset(32); return o != 0 ? bb.get(o + bb_pos) & 0xFF : 0; } - public static void startTrackerInfo(FlatBufferBuilder builder) { builder.startTable(14); } + public static void startTrackerInfo(FlatBufferBuilder builder) { builder.startTable(15); } public static void addImuType(FlatBufferBuilder builder, int imuType) { builder.addShort(0, (short) imuType, (short) 0); } public static void addBodyPart(FlatBufferBuilder builder, int bodyPart) { builder.addByte(1, (byte) bodyPart, (byte) 0); } public static void addPollRate(FlatBufferBuilder builder, int pollRateOffset) { builder.addStruct(2, pollRateOffset, 0); } @@ -93,6 +94,7 @@ public final class TrackerInfo extends Table { public static void addIsHmd(FlatBufferBuilder builder, boolean isHmd) { builder.addBoolean(11, isHmd, false); } public static void addMagnetometer(FlatBufferBuilder builder, int magnetometer) { builder.addByte(12, (byte) magnetometer, (byte) 0); } public static void addDataSupport(FlatBufferBuilder builder, int dataSupport) { builder.addByte(13, (byte) dataSupport, (byte) 0); } + public static void addRestCalibrationStatus(FlatBufferBuilder builder, int restCalibrationStatus) { builder.addByte(14, (byte) restCalibrationStatus, (byte) 0); } public static int endTrackerInfo(FlatBufferBuilder builder) { int o = builder.endTable(); return o; @@ -138,6 +140,8 @@ public void unpackTo(TrackerInfoT _o) { _o.setMagnetometer(_oMagnetometer); int _oDataSupport = dataSupport(); _o.setDataSupport(_oDataSupport); + int _oRestCalibrationStatus = restCalibrationStatus(); + _o.setRestCalibrationStatus(_oRestCalibrationStatus); } public static int pack(FlatBufferBuilder builder, TrackerInfoT _o) { if (_o == null) return 0; @@ -158,6 +162,7 @@ public static int pack(FlatBufferBuilder builder, TrackerInfoT _o) { addIsHmd(builder, _o.getIsHmd()); addMagnetometer(builder, _o.getMagnetometer()); addDataSupport(builder, _o.getDataSupport()); + addRestCalibrationStatus(builder, _o.getRestCalibrationStatus()); return endTrackerInfo(builder); } } diff --git a/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfoT.java b/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfoT.java index dd51fdd0..b516b47b 100644 --- a/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfoT.java +++ b/protocol/java/src/solarxr_protocol/data_feed/tracker/TrackerInfoT.java @@ -22,6 +22,7 @@ public class TrackerInfoT { private boolean isHmd; private int magnetometer; private int dataSupport; + private int restCalibrationStatus; public int getImuType() { return imuType; } @@ -79,6 +80,10 @@ public class TrackerInfoT { public void setDataSupport(int dataSupport) { this.dataSupport = dataSupport; } + public int getRestCalibrationStatus() { return restCalibrationStatus; } + + public void setRestCalibrationStatus(int restCalibrationStatus) { this.restCalibrationStatus = restCalibrationStatus; } + public TrackerInfoT() { this.imuType = 0; @@ -95,6 +100,7 @@ public TrackerInfoT() { this.isHmd = false; this.magnetometer = 0; this.dataSupport = 0; + this.restCalibrationStatus = 0; } } diff --git a/protocol/java/src/solarxr_protocol/datatypes/BodyPart.java b/protocol/java/src/solarxr_protocol/datatypes/BodyPart.java index 051104c5..c6227f3d 100644 --- a/protocol/java/src/solarxr_protocol/datatypes/BodyPart.java +++ b/protocol/java/src/solarxr_protocol/datatypes/BodyPart.java @@ -62,8 +62,14 @@ private BodyPart() { } public static final int RIGHT_LITTLE_PROXIMAL = 52; public static final int RIGHT_LITTLE_INTERMEDIATE = 53; public static final int RIGHT_LITTLE_DISTAL = 54; + public static final int LEFT_TOES_ABDUCTOR_HALLUCIS = 55; + public static final int LEFT_TOES_DIGITORUM_BREVIS = 56; + public static final int LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 57; + public static final int RIGHT_TOES_ABDUCTOR_HALLUCIS = 58; + public static final int RIGHT_TOES_DIGITORUM_BREVIS = 59; + public static final int RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 60; - public static final String[] names = { "NONE", "HEAD", "NECK", "CHEST", "WAIST", "HIP", "LEFT_UPPER_LEG", "RIGHT_UPPER_LEG", "LEFT_LOWER_LEG", "RIGHT_LOWER_LEG", "LEFT_FOOT", "RIGHT_FOOT", "", "", "LEFT_LOWER_ARM", "RIGHT_LOWER_ARM", "LEFT_UPPER_ARM", "RIGHT_UPPER_ARM", "LEFT_HAND", "RIGHT_HAND", "LEFT_SHOULDER", "RIGHT_SHOULDER", "UPPER_CHEST", "LEFT_HIP", "RIGHT_HIP", "LEFT_THUMB_METACARPAL", "LEFT_THUMB_PROXIMAL", "LEFT_THUMB_DISTAL", "LEFT_INDEX_PROXIMAL", "LEFT_INDEX_INTERMEDIATE", "LEFT_INDEX_DISTAL", "LEFT_MIDDLE_PROXIMAL", "LEFT_MIDDLE_INTERMEDIATE", "LEFT_MIDDLE_DISTAL", "LEFT_RING_PROXIMAL", "LEFT_RING_INTERMEDIATE", "LEFT_RING_DISTAL", "LEFT_LITTLE_PROXIMAL", "LEFT_LITTLE_INTERMEDIATE", "LEFT_LITTLE_DISTAL", "RIGHT_THUMB_METACARPAL", "RIGHT_THUMB_PROXIMAL", "RIGHT_THUMB_DISTAL", "RIGHT_INDEX_PROXIMAL", "RIGHT_INDEX_INTERMEDIATE", "RIGHT_INDEX_DISTAL", "RIGHT_MIDDLE_PROXIMAL", "RIGHT_MIDDLE_INTERMEDIATE", "RIGHT_MIDDLE_DISTAL", "RIGHT_RING_PROXIMAL", "RIGHT_RING_INTERMEDIATE", "RIGHT_RING_DISTAL", "RIGHT_LITTLE_PROXIMAL", "RIGHT_LITTLE_INTERMEDIATE", "RIGHT_LITTLE_DISTAL", }; + public static final String[] names = { "NONE", "HEAD", "NECK", "CHEST", "WAIST", "HIP", "LEFT_UPPER_LEG", "RIGHT_UPPER_LEG", "LEFT_LOWER_LEG", "RIGHT_LOWER_LEG", "LEFT_FOOT", "RIGHT_FOOT", "", "", "LEFT_LOWER_ARM", "RIGHT_LOWER_ARM", "LEFT_UPPER_ARM", "RIGHT_UPPER_ARM", "LEFT_HAND", "RIGHT_HAND", "LEFT_SHOULDER", "RIGHT_SHOULDER", "UPPER_CHEST", "LEFT_HIP", "RIGHT_HIP", "LEFT_THUMB_METACARPAL", "LEFT_THUMB_PROXIMAL", "LEFT_THUMB_DISTAL", "LEFT_INDEX_PROXIMAL", "LEFT_INDEX_INTERMEDIATE", "LEFT_INDEX_DISTAL", "LEFT_MIDDLE_PROXIMAL", "LEFT_MIDDLE_INTERMEDIATE", "LEFT_MIDDLE_DISTAL", "LEFT_RING_PROXIMAL", "LEFT_RING_INTERMEDIATE", "LEFT_RING_DISTAL", "LEFT_LITTLE_PROXIMAL", "LEFT_LITTLE_INTERMEDIATE", "LEFT_LITTLE_DISTAL", "RIGHT_THUMB_METACARPAL", "RIGHT_THUMB_PROXIMAL", "RIGHT_THUMB_DISTAL", "RIGHT_INDEX_PROXIMAL", "RIGHT_INDEX_INTERMEDIATE", "RIGHT_INDEX_DISTAL", "RIGHT_MIDDLE_PROXIMAL", "RIGHT_MIDDLE_INTERMEDIATE", "RIGHT_MIDDLE_DISTAL", "RIGHT_RING_PROXIMAL", "RIGHT_RING_INTERMEDIATE", "RIGHT_RING_DISTAL", "RIGHT_LITTLE_PROXIMAL", "RIGHT_LITTLE_INTERMEDIATE", "RIGHT_LITTLE_DISTAL", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", }; public static String name(int e) { return names[e]; } } diff --git a/protocol/java/src/solarxr_protocol/datatypes/RestCalibrationStatus.java b/protocol/java/src/solarxr_protocol/datatypes/RestCalibrationStatus.java new file mode 100644 index 00000000..9955b96f --- /dev/null +++ b/protocol/java/src/solarxr_protocol/datatypes/RestCalibrationStatus.java @@ -0,0 +1,16 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package solarxr_protocol.datatypes; + +@SuppressWarnings("unused") +public final class RestCalibrationStatus { + private RestCalibrationStatus() { } + public static final int NOT_SUPPORTED = 0; + public static final int NOT_CALIBRATED = 1; + public static final int CALIBRATED = 2; + + public static final String[] names = { "NOT_SUPPORTED", "NOT_CALIBRATED", "CALIBRATED", }; + + public static String name(int e) { return names[e]; } +} + diff --git a/protocol/java/src/solarxr_protocol/datatypes/TrackerRole.java b/protocol/java/src/solarxr_protocol/datatypes/TrackerRole.java index 65202716..f7c5012a 100644 --- a/protocol/java/src/solarxr_protocol/datatypes/TrackerRole.java +++ b/protocol/java/src/solarxr_protocol/datatypes/TrackerRole.java @@ -33,8 +33,14 @@ private TrackerRole() { } public static final int HMD = 19; public static final int BEACON = 20; public static final int GENERIC_CONTROLLER = 21; + public static final int LEFT_TOES_ABDUCTOR_HALLUCIS = 22; + public static final int LEFT_TOES_DIGITORUM_BREVIS = 23; + public static final int LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24; + public static final int RIGHT_TOES_ABDUCTOR_HALLUCIS = 25; + public static final int RIGHT_TOES_DIGITORUM_BREVIS = 26; + public static final int RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27; - public static final String[] names = { "NONE", "WAIST", "LEFT_FOOT", "RIGHT_FOOT", "CHEST", "LEFT_KNEE", "RIGHT_KNEE", "LEFT_ELBOW", "RIGHT_ELBOW", "LEFT_SHOULDER", "RIGHT_SHOULDER", "LEFT_HAND", "RIGHT_HAND", "LEFT_CONTROLLER", "RIGHT_CONTROLLER", "HEAD", "NECK", "CAMERA", "KEYBOARD", "HMD", "BEACON", "GENERIC_CONTROLLER", }; + public static final String[] names = { "NONE", "WAIST", "LEFT_FOOT", "RIGHT_FOOT", "CHEST", "LEFT_KNEE", "RIGHT_KNEE", "LEFT_ELBOW", "RIGHT_ELBOW", "LEFT_SHOULDER", "RIGHT_SHOULDER", "LEFT_HAND", "RIGHT_HAND", "LEFT_CONTROLLER", "RIGHT_CONTROLLER", "HEAD", "NECK", "CAMERA", "KEYBOARD", "HMD", "BEACON", "GENERIC_CONTROLLER", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", }; public static String name(int e) { return names[e]; } } diff --git a/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSetting.java b/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSetting.java index cbb00418..1439bf04 100644 --- a/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSetting.java +++ b/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSetting.java @@ -22,6 +22,7 @@ public final class OSCTrackersSetting extends Table { public boolean feet() { int o = __offset(12); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public boolean elbows() { int o = __offset(14); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public boolean hands() { int o = __offset(16); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean toes() { int o = __offset(18); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public static int createOSCTrackersSetting(FlatBufferBuilder builder, boolean head, @@ -30,8 +31,10 @@ public static int createOSCTrackersSetting(FlatBufferBuilder builder, boolean knees, boolean feet, boolean elbows, - boolean hands) { - builder.startTable(7); + boolean hands, + boolean toes) { + builder.startTable(8); + OSCTrackersSetting.addToes(builder, toes); OSCTrackersSetting.addHands(builder, hands); OSCTrackersSetting.addElbows(builder, elbows); OSCTrackersSetting.addFeet(builder, feet); @@ -42,7 +45,7 @@ public static int createOSCTrackersSetting(FlatBufferBuilder builder, return OSCTrackersSetting.endOSCTrackersSetting(builder); } - public static void startOSCTrackersSetting(FlatBufferBuilder builder) { builder.startTable(7); } + public static void startOSCTrackersSetting(FlatBufferBuilder builder) { builder.startTable(8); } public static void addHead(FlatBufferBuilder builder, boolean head) { builder.addBoolean(0, head, false); } public static void addChest(FlatBufferBuilder builder, boolean chest) { builder.addBoolean(1, chest, false); } public static void addWaist(FlatBufferBuilder builder, boolean waist) { builder.addBoolean(2, waist, false); } @@ -50,6 +53,7 @@ public static int createOSCTrackersSetting(FlatBufferBuilder builder, public static void addFeet(FlatBufferBuilder builder, boolean feet) { builder.addBoolean(4, feet, false); } public static void addElbows(FlatBufferBuilder builder, boolean elbows) { builder.addBoolean(5, elbows, false); } public static void addHands(FlatBufferBuilder builder, boolean hands) { builder.addBoolean(6, hands, false); } + public static void addToes(FlatBufferBuilder builder, boolean toes) { builder.addBoolean(7, toes, false); } public static int endOSCTrackersSetting(FlatBufferBuilder builder) { int o = builder.endTable(); return o; @@ -81,6 +85,8 @@ public void unpackTo(OSCTrackersSettingT _o) { _o.setElbows(_oElbows); boolean _oHands = hands(); _o.setHands(_oHands); + boolean _oToes = toes(); + _o.setToes(_oToes); } public static int pack(FlatBufferBuilder builder, OSCTrackersSettingT _o) { if (_o == null) return 0; @@ -92,7 +98,8 @@ public static int pack(FlatBufferBuilder builder, OSCTrackersSettingT _o) { _o.getKnees(), _o.getFeet(), _o.getElbows(), - _o.getHands()); + _o.getHands(), + _o.getToes()); } } diff --git a/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSettingT.java b/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSettingT.java index c23627a3..6e3ce9a9 100644 --- a/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSettingT.java +++ b/protocol/java/src/solarxr_protocol/rpc/OSCTrackersSettingT.java @@ -15,6 +15,7 @@ public class OSCTrackersSettingT { private boolean feet; private boolean elbows; private boolean hands; + private boolean toes; public boolean getHead() { return head; } @@ -44,6 +45,10 @@ public class OSCTrackersSettingT { public void setHands(boolean hands) { this.hands = hands; } + public boolean getToes() { return toes; } + + public void setToes(boolean toes) { this.toes = toes; } + public OSCTrackersSettingT() { this.head = false; @@ -53,6 +58,7 @@ public OSCTrackersSettingT() { this.feet = false; this.elbows = false; this.hands = false; + this.toes = false; } } diff --git a/protocol/java/src/solarxr_protocol/rpc/SkeletonBone.java b/protocol/java/src/solarxr_protocol/rpc/SkeletonBone.java index 8748a06b..e171b1b1 100644 --- a/protocol/java/src/solarxr_protocol/rpc/SkeletonBone.java +++ b/protocol/java/src/solarxr_protocol/rpc/SkeletonBone.java @@ -27,8 +27,14 @@ private SkeletonBone() { } public static final int HAND_Z = 19; public static final int ELBOW_OFFSET = 20; public static final int UPPER_CHEST = 21; + public static final int LEFT_TOES_ABDUCTOR_HALLUCIS = 22; + public static final int LEFT_TOES_DIGITORUM_BREVIS = 23; + public static final int LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24; + public static final int RIGHT_TOES_ABDUCTOR_HALLUCIS = 25; + public static final int RIGHT_TOES_DIGITORUM_BREVIS = 26; + public static final int RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27; - public static final String[] names = { "NONE", "HEAD", "NECK", "CHEST", "CHEST_OFFSET", "WAIST", "HIP", "HIP_OFFSET", "HIPS_WIDTH", "UPPER_LEG", "LOWER_LEG", "FOOT_LENGTH", "FOOT_SHIFT", "SKELETON_OFFSET", "SHOULDERS_DISTANCE", "SHOULDERS_WIDTH", "UPPER_ARM", "LOWER_ARM", "HAND_Y", "HAND_Z", "ELBOW_OFFSET", "UPPER_CHEST", }; + public static final String[] names = { "NONE", "HEAD", "NECK", "CHEST", "CHEST_OFFSET", "WAIST", "HIP", "HIP_OFFSET", "HIPS_WIDTH", "UPPER_LEG", "LOWER_LEG", "FOOT_LENGTH", "FOOT_SHIFT", "SKELETON_OFFSET", "SHOULDERS_DISTANCE", "SHOULDERS_WIDTH", "UPPER_ARM", "LOWER_ARM", "HAND_Y", "HAND_Z", "ELBOW_OFFSET", "UPPER_CHEST", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI", }; public static String name(int e) { return names[e]; } } diff --git a/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSetting.java b/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSetting.java index 385d530f..b95d78e4 100644 --- a/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSetting.java +++ b/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSetting.java @@ -26,6 +26,8 @@ public final class SteamVRTrackersSetting extends Table { public boolean rightElbow() { int o = __offset(28); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public boolean leftHand() { int o = __offset(30); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public boolean rightHand() { int o = __offset(32); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean leftToes() { int o = __offset(34); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean rightToes() { int o = __offset(36); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } public static int createSteamVRTrackersSetting(FlatBufferBuilder builder, boolean waist, @@ -38,8 +40,12 @@ public static int createSteamVRTrackersSetting(FlatBufferBuilder builder, boolean leftElbow, boolean rightElbow, boolean leftHand, - boolean rightHand) { - builder.startTable(15); + boolean rightHand, + boolean leftToes, + boolean rightToes) { + builder.startTable(17); + SteamVRTrackersSetting.addRightToes(builder, rightToes); + SteamVRTrackersSetting.addLeftToes(builder, leftToes); SteamVRTrackersSetting.addRightHand(builder, rightHand); SteamVRTrackersSetting.addLeftHand(builder, leftHand); SteamVRTrackersSetting.addRightElbow(builder, rightElbow); @@ -54,7 +60,7 @@ public static int createSteamVRTrackersSetting(FlatBufferBuilder builder, return SteamVRTrackersSetting.endSteamVRTrackersSetting(builder); } - public static void startSteamVRTrackersSetting(FlatBufferBuilder builder) { builder.startTable(15); } + public static void startSteamVRTrackersSetting(FlatBufferBuilder builder) { builder.startTable(17); } public static void addWaist(FlatBufferBuilder builder, boolean waist) { builder.addBoolean(0, waist, false); } public static void addChest(FlatBufferBuilder builder, boolean chest) { builder.addBoolean(1, chest, false); } public static void addAutomaticTrackerToggle(FlatBufferBuilder builder, boolean automaticTrackerToggle) { builder.addBoolean(6, automaticTrackerToggle, false); } @@ -66,6 +72,8 @@ public static int createSteamVRTrackersSetting(FlatBufferBuilder builder, public static void addRightElbow(FlatBufferBuilder builder, boolean rightElbow) { builder.addBoolean(12, rightElbow, false); } public static void addLeftHand(FlatBufferBuilder builder, boolean leftHand) { builder.addBoolean(13, leftHand, false); } public static void addRightHand(FlatBufferBuilder builder, boolean rightHand) { builder.addBoolean(14, rightHand, false); } + public static void addLeftToes(FlatBufferBuilder builder, boolean leftToes) { builder.addBoolean(15, leftToes, false); } + public static void addRightToes(FlatBufferBuilder builder, boolean rightToes) { builder.addBoolean(16, rightToes, false); } public static int endSteamVRTrackersSetting(FlatBufferBuilder builder) { int o = builder.endTable(); return o; @@ -105,6 +113,10 @@ public void unpackTo(SteamVRTrackersSettingT _o) { _o.setLeftHand(_oLeftHand); boolean _oRightHand = rightHand(); _o.setRightHand(_oRightHand); + boolean _oLeftToes = leftToes(); + _o.setLeftToes(_oLeftToes); + boolean _oRightToes = rightToes(); + _o.setRightToes(_oRightToes); } public static int pack(FlatBufferBuilder builder, SteamVRTrackersSettingT _o) { if (_o == null) return 0; @@ -120,7 +132,9 @@ public static int pack(FlatBufferBuilder builder, SteamVRTrackersSettingT _o) { _o.getLeftElbow(), _o.getRightElbow(), _o.getLeftHand(), - _o.getRightHand()); + _o.getRightHand(), + _o.getLeftToes(), + _o.getRightToes()); } } diff --git a/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSettingT.java b/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSettingT.java index ba1155a2..da1fa4f5 100644 --- a/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSettingT.java +++ b/protocol/java/src/solarxr_protocol/rpc/SteamVRTrackersSettingT.java @@ -19,6 +19,8 @@ public class SteamVRTrackersSettingT { private boolean rightElbow; private boolean leftHand; private boolean rightHand; + private boolean leftToes; + private boolean rightToes; public boolean getWaist() { return waist; } @@ -64,6 +66,14 @@ public class SteamVRTrackersSettingT { public void setRightHand(boolean rightHand) { this.rightHand = rightHand; } + public boolean getLeftToes() { return leftToes; } + + public void setLeftToes(boolean leftToes) { this.leftToes = leftToes; } + + public boolean getRightToes() { return rightToes; } + + public void setRightToes(boolean rightToes) { this.rightToes = rightToes; } + public SteamVRTrackersSettingT() { this.waist = false; @@ -77,6 +87,8 @@ public SteamVRTrackersSettingT() { this.rightElbow = false; this.leftHand = false; this.rightHand = false; + this.leftToes = false; + this.rightToes = false; } } diff --git a/protocol/kotlin/src/solarxr_protocol/data_feed/tracker/TrackerInfo.kt b/protocol/kotlin/src/solarxr_protocol/data_feed/tracker/TrackerInfo.kt index a24af508..2d358fa8 100644 --- a/protocol/kotlin/src/solarxr_protocol/data_feed/tracker/TrackerInfo.kt +++ b/protocol/kotlin/src/solarxr_protocol/data_feed/tracker/TrackerInfo.kt @@ -143,6 +143,11 @@ class TrackerInfo : Table() { val o = __offset(30) return if(o != 0) bb.get(o + bb_pos).toUByte() else 0u } + val restCalibrationStatus : UByte + get() { + val o = __offset(32) + return if(o != 0) bb.get(o + bb_pos).toUByte() else 0u + } companion object { @JvmStatic fun validateVersion() = Constants.FLATBUFFERS_22_10_26() @@ -154,7 +159,7 @@ class TrackerInfo : Table() { return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) } @JvmStatic - fun startTrackerInfo(builder: FlatBufferBuilder) = builder.startTable(14) + fun startTrackerInfo(builder: FlatBufferBuilder) = builder.startTable(15) @JvmStatic fun addImuType(builder: FlatBufferBuilder, imuType: UShort) = builder.addShort(0, imuType.toShort(), 0) @JvmStatic @@ -184,6 +189,8 @@ class TrackerInfo : Table() { @JvmStatic fun addDataSupport(builder: FlatBufferBuilder, dataSupport: UByte) = builder.addByte(13, dataSupport.toByte(), 0) @JvmStatic + fun addRestCalibrationStatus(builder: FlatBufferBuilder, restCalibrationStatus: UByte) = builder.addByte(14, restCalibrationStatus.toByte(), 0) + @JvmStatic fun endTrackerInfo(builder: FlatBufferBuilder) : Int { val o = builder.endTable() return o diff --git a/protocol/kotlin/src/solarxr_protocol/datatypes/BodyPart.kt b/protocol/kotlin/src/solarxr_protocol/datatypes/BodyPart.kt index cbc73ccb..e8730849 100644 --- a/protocol/kotlin/src/solarxr_protocol/datatypes/BodyPart.kt +++ b/protocol/kotlin/src/solarxr_protocol/datatypes/BodyPart.kt @@ -62,7 +62,13 @@ class BodyPart private constructor() { const val RIGHTLITTLEPROXIMAL: UByte = 52u const val RIGHTLITTLEINTERMEDIATE: UByte = 53u const val RIGHTLITTLEDISTAL: UByte = 54u - val names : Array = arrayOf("NONE", "HEAD", "NECK", "CHEST", "WAIST", "HIP", "LEFT_UPPER_LEG", "RIGHT_UPPER_LEG", "LEFT_LOWER_LEG", "RIGHT_LOWER_LEG", "LEFT_FOOT", "RIGHT_FOOT", "", "", "LEFT_LOWER_ARM", "RIGHT_LOWER_ARM", "LEFT_UPPER_ARM", "RIGHT_UPPER_ARM", "LEFT_HAND", "RIGHT_HAND", "LEFT_SHOULDER", "RIGHT_SHOULDER", "UPPER_CHEST", "LEFT_HIP", "RIGHT_HIP", "LEFT_THUMB_METACARPAL", "LEFT_THUMB_PROXIMAL", "LEFT_THUMB_DISTAL", "LEFT_INDEX_PROXIMAL", "LEFT_INDEX_INTERMEDIATE", "LEFT_INDEX_DISTAL", "LEFT_MIDDLE_PROXIMAL", "LEFT_MIDDLE_INTERMEDIATE", "LEFT_MIDDLE_DISTAL", "LEFT_RING_PROXIMAL", "LEFT_RING_INTERMEDIATE", "LEFT_RING_DISTAL", "LEFT_LITTLE_PROXIMAL", "LEFT_LITTLE_INTERMEDIATE", "LEFT_LITTLE_DISTAL", "RIGHT_THUMB_METACARPAL", "RIGHT_THUMB_PROXIMAL", "RIGHT_THUMB_DISTAL", "RIGHT_INDEX_PROXIMAL", "RIGHT_INDEX_INTERMEDIATE", "RIGHT_INDEX_DISTAL", "RIGHT_MIDDLE_PROXIMAL", "RIGHT_MIDDLE_INTERMEDIATE", "RIGHT_MIDDLE_DISTAL", "RIGHT_RING_PROXIMAL", "RIGHT_RING_INTERMEDIATE", "RIGHT_RING_DISTAL", "RIGHT_LITTLE_PROXIMAL", "RIGHT_LITTLE_INTERMEDIATE", "RIGHT_LITTLE_DISTAL") + const val LEFTTOESABDUCTORHALLUCIS: UByte = 55u + const val LEFTTOESDIGITORUMBREVIS: UByte = 56u + const val LEFTTOESABDUCTORDIGITIMINIMI: UByte = 57u + const val RIGHTTOESABDUCTORHALLUCIS: UByte = 58u + const val RIGHTTOESDIGITORUMBREVIS: UByte = 59u + const val RIGHTTOESABDUCTORDIGITIMINIMI: UByte = 60u + val names : Array = arrayOf("NONE", "HEAD", "NECK", "CHEST", "WAIST", "HIP", "LEFT_UPPER_LEG", "RIGHT_UPPER_LEG", "LEFT_LOWER_LEG", "RIGHT_LOWER_LEG", "LEFT_FOOT", "RIGHT_FOOT", "", "", "LEFT_LOWER_ARM", "RIGHT_LOWER_ARM", "LEFT_UPPER_ARM", "RIGHT_UPPER_ARM", "LEFT_HAND", "RIGHT_HAND", "LEFT_SHOULDER", "RIGHT_SHOULDER", "UPPER_CHEST", "LEFT_HIP", "RIGHT_HIP", "LEFT_THUMB_METACARPAL", "LEFT_THUMB_PROXIMAL", "LEFT_THUMB_DISTAL", "LEFT_INDEX_PROXIMAL", "LEFT_INDEX_INTERMEDIATE", "LEFT_INDEX_DISTAL", "LEFT_MIDDLE_PROXIMAL", "LEFT_MIDDLE_INTERMEDIATE", "LEFT_MIDDLE_DISTAL", "LEFT_RING_PROXIMAL", "LEFT_RING_INTERMEDIATE", "LEFT_RING_DISTAL", "LEFT_LITTLE_PROXIMAL", "LEFT_LITTLE_INTERMEDIATE", "LEFT_LITTLE_DISTAL", "RIGHT_THUMB_METACARPAL", "RIGHT_THUMB_PROXIMAL", "RIGHT_THUMB_DISTAL", "RIGHT_INDEX_PROXIMAL", "RIGHT_INDEX_INTERMEDIATE", "RIGHT_INDEX_DISTAL", "RIGHT_MIDDLE_PROXIMAL", "RIGHT_MIDDLE_INTERMEDIATE", "RIGHT_MIDDLE_DISTAL", "RIGHT_RING_PROXIMAL", "RIGHT_RING_INTERMEDIATE", "RIGHT_RING_DISTAL", "RIGHT_LITTLE_PROXIMAL", "RIGHT_LITTLE_INTERMEDIATE", "RIGHT_LITTLE_DISTAL", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI") @JvmStatic fun name(e: Int) : String = names[e] } diff --git a/protocol/kotlin/src/solarxr_protocol/datatypes/RestCalibrationStatus.kt b/protocol/kotlin/src/solarxr_protocol/datatypes/RestCalibrationStatus.kt new file mode 100644 index 00000000..fcedc8f3 --- /dev/null +++ b/protocol/kotlin/src/solarxr_protocol/datatypes/RestCalibrationStatus.kt @@ -0,0 +1,15 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package solarxr_protocol.datatypes + +@Suppress("unused") +class RestCalibrationStatus private constructor() { + companion object { + const val NOTSUPPORTED: UByte = 0u + const val NOTCALIBRATED: UByte = 1u + const val CALIBRATED: UByte = 2u + val names : Array = arrayOf("NOT_SUPPORTED", "NOT_CALIBRATED", "CALIBRATED") + @JvmStatic + fun name(e: Int) : String = names[e] + } +} diff --git a/protocol/kotlin/src/solarxr_protocol/datatypes/TrackerRole.kt b/protocol/kotlin/src/solarxr_protocol/datatypes/TrackerRole.kt index 85b5d9d7..aa23ced9 100644 --- a/protocol/kotlin/src/solarxr_protocol/datatypes/TrackerRole.kt +++ b/protocol/kotlin/src/solarxr_protocol/datatypes/TrackerRole.kt @@ -33,7 +33,13 @@ class TrackerRole private constructor() { const val HMD: UByte = 19u const val BEACON: UByte = 20u const val GENERICCONTROLLER: UByte = 21u - val names : Array = arrayOf("NONE", "WAIST", "LEFT_FOOT", "RIGHT_FOOT", "CHEST", "LEFT_KNEE", "RIGHT_KNEE", "LEFT_ELBOW", "RIGHT_ELBOW", "LEFT_SHOULDER", "RIGHT_SHOULDER", "LEFT_HAND", "RIGHT_HAND", "LEFT_CONTROLLER", "RIGHT_CONTROLLER", "HEAD", "NECK", "CAMERA", "KEYBOARD", "HMD", "BEACON", "GENERIC_CONTROLLER") + const val LEFTTOESABDUCTORHALLUCIS: UByte = 22u + const val LEFTTOESDIGITORUMBREVIS: UByte = 23u + const val LEFTTOESABDUCTORDIGITIMINIMI: UByte = 24u + const val RIGHTTOESABDUCTORHALLUCIS: UByte = 25u + const val RIGHTTOESDIGITORUMBREVIS: UByte = 26u + const val RIGHTTOESABDUCTORDIGITIMINIMI: UByte = 27u + val names : Array = arrayOf("NONE", "WAIST", "LEFT_FOOT", "RIGHT_FOOT", "CHEST", "LEFT_KNEE", "RIGHT_KNEE", "LEFT_ELBOW", "RIGHT_ELBOW", "LEFT_SHOULDER", "RIGHT_SHOULDER", "LEFT_HAND", "RIGHT_HAND", "LEFT_CONTROLLER", "RIGHT_CONTROLLER", "HEAD", "NECK", "CAMERA", "KEYBOARD", "HMD", "BEACON", "GENERIC_CONTROLLER", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI") @JvmStatic fun name(e: Int) : String = names[e] } diff --git a/protocol/kotlin/src/solarxr_protocol/rpc/OSCTrackersSetting.kt b/protocol/kotlin/src/solarxr_protocol/rpc/OSCTrackersSetting.kt index f179aca3..5253d061 100644 --- a/protocol/kotlin/src/solarxr_protocol/rpc/OSCTrackersSetting.kt +++ b/protocol/kotlin/src/solarxr_protocol/rpc/OSCTrackersSetting.kt @@ -51,6 +51,11 @@ class OSCTrackersSetting : Table() { val o = __offset(16) return if(o != 0) 0.toByte() != bb.get(o + bb_pos) else false } + val toes : Boolean + get() { + val o = __offset(18) + return if(o != 0) 0.toByte() != bb.get(o + bb_pos) else false + } companion object { @JvmStatic fun validateVersion() = Constants.FLATBUFFERS_22_10_26() @@ -62,8 +67,9 @@ class OSCTrackersSetting : Table() { return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) } @JvmStatic - fun createOSCTrackersSetting(builder: FlatBufferBuilder, head: Boolean, chest: Boolean, waist: Boolean, knees: Boolean, feet: Boolean, elbows: Boolean, hands: Boolean) : Int { - builder.startTable(7) + fun createOSCTrackersSetting(builder: FlatBufferBuilder, head: Boolean, chest: Boolean, waist: Boolean, knees: Boolean, feet: Boolean, elbows: Boolean, hands: Boolean, toes: Boolean) : Int { + builder.startTable(8) + addToes(builder, toes) addHands(builder, hands) addElbows(builder, elbows) addFeet(builder, feet) @@ -74,7 +80,7 @@ class OSCTrackersSetting : Table() { return endOSCTrackersSetting(builder) } @JvmStatic - fun startOSCTrackersSetting(builder: FlatBufferBuilder) = builder.startTable(7) + fun startOSCTrackersSetting(builder: FlatBufferBuilder) = builder.startTable(8) @JvmStatic fun addHead(builder: FlatBufferBuilder, head: Boolean) = builder.addBoolean(0, head, false) @JvmStatic @@ -90,6 +96,8 @@ class OSCTrackersSetting : Table() { @JvmStatic fun addHands(builder: FlatBufferBuilder, hands: Boolean) = builder.addBoolean(6, hands, false) @JvmStatic + fun addToes(builder: FlatBufferBuilder, toes: Boolean) = builder.addBoolean(7, toes, false) + @JvmStatic fun endOSCTrackersSetting(builder: FlatBufferBuilder) : Int { val o = builder.endTable() return o diff --git a/protocol/kotlin/src/solarxr_protocol/rpc/SkeletonBone.kt b/protocol/kotlin/src/solarxr_protocol/rpc/SkeletonBone.kt index 85cdac0e..43b17d62 100644 --- a/protocol/kotlin/src/solarxr_protocol/rpc/SkeletonBone.kt +++ b/protocol/kotlin/src/solarxr_protocol/rpc/SkeletonBone.kt @@ -27,7 +27,13 @@ class SkeletonBone private constructor() { const val HANDZ: UByte = 19u const val ELBOWOFFSET: UByte = 20u const val UPPERCHEST: UByte = 21u - val names : Array = arrayOf("NONE", "HEAD", "NECK", "CHEST", "CHEST_OFFSET", "WAIST", "HIP", "HIP_OFFSET", "HIPS_WIDTH", "UPPER_LEG", "LOWER_LEG", "FOOT_LENGTH", "FOOT_SHIFT", "SKELETON_OFFSET", "SHOULDERS_DISTANCE", "SHOULDERS_WIDTH", "UPPER_ARM", "LOWER_ARM", "HAND_Y", "HAND_Z", "ELBOW_OFFSET", "UPPER_CHEST") + const val LEFTTOESABDUCTORHALLUCIS: UByte = 22u + const val LEFTTOESDIGITORUMBREVIS: UByte = 23u + const val LEFTTOESABDUCTORDIGITIMINIMI: UByte = 24u + const val RIGHTTOESABDUCTORHALLUCIS: UByte = 25u + const val RIGHTTOESDIGITORUMBREVIS: UByte = 26u + const val RIGHTTOESABDUCTORDIGITIMINIMI: UByte = 27u + val names : Array = arrayOf("NONE", "HEAD", "NECK", "CHEST", "CHEST_OFFSET", "WAIST", "HIP", "HIP_OFFSET", "HIPS_WIDTH", "UPPER_LEG", "LOWER_LEG", "FOOT_LENGTH", "FOOT_SHIFT", "SKELETON_OFFSET", "SHOULDERS_DISTANCE", "SHOULDERS_WIDTH", "UPPER_ARM", "LOWER_ARM", "HAND_Y", "HAND_Z", "ELBOW_OFFSET", "UPPER_CHEST", "LEFT_TOES_ABDUCTOR_HALLUCIS", "LEFT_TOES_DIGITORUM_BREVIS", "LEFT_TOES_ABDUCTOR_DIGITI_MINIMI", "RIGHT_TOES_ABDUCTOR_HALLUCIS", "RIGHT_TOES_DIGITORUM_BREVIS", "RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI") @JvmStatic fun name(e: Int) : String = names[e] } diff --git a/protocol/kotlin/src/solarxr_protocol/rpc/SteamVRTrackersSetting.kt b/protocol/kotlin/src/solarxr_protocol/rpc/SteamVRTrackersSetting.kt index 5befe9f2..8b9cb2e3 100644 --- a/protocol/kotlin/src/solarxr_protocol/rpc/SteamVRTrackersSetting.kt +++ b/protocol/kotlin/src/solarxr_protocol/rpc/SteamVRTrackersSetting.kt @@ -71,6 +71,16 @@ class SteamVRTrackersSetting : Table() { val o = __offset(32) return if(o != 0) 0.toByte() != bb.get(o + bb_pos) else false } + val leftToes : Boolean + get() { + val o = __offset(34) + return if(o != 0) 0.toByte() != bb.get(o + bb_pos) else false + } + val rightToes : Boolean + get() { + val o = __offset(36) + return if(o != 0) 0.toByte() != bb.get(o + bb_pos) else false + } companion object { @JvmStatic fun validateVersion() = Constants.FLATBUFFERS_22_10_26() @@ -82,8 +92,10 @@ class SteamVRTrackersSetting : Table() { return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) } @JvmStatic - fun createSteamVRTrackersSetting(builder: FlatBufferBuilder, waist: Boolean, chest: Boolean, automaticTrackerToggle: Boolean, leftFoot: Boolean, rightFoot: Boolean, leftKnee: Boolean, rightKnee: Boolean, leftElbow: Boolean, rightElbow: Boolean, leftHand: Boolean, rightHand: Boolean) : Int { - builder.startTable(15) + fun createSteamVRTrackersSetting(builder: FlatBufferBuilder, waist: Boolean, chest: Boolean, automaticTrackerToggle: Boolean, leftFoot: Boolean, rightFoot: Boolean, leftKnee: Boolean, rightKnee: Boolean, leftElbow: Boolean, rightElbow: Boolean, leftHand: Boolean, rightHand: Boolean, leftToes: Boolean, rightToes: Boolean) : Int { + builder.startTable(17) + addRightToes(builder, rightToes) + addLeftToes(builder, leftToes) addRightHand(builder, rightHand) addLeftHand(builder, leftHand) addRightElbow(builder, rightElbow) @@ -98,7 +110,7 @@ class SteamVRTrackersSetting : Table() { return endSteamVRTrackersSetting(builder) } @JvmStatic - fun startSteamVRTrackersSetting(builder: FlatBufferBuilder) = builder.startTable(15) + fun startSteamVRTrackersSetting(builder: FlatBufferBuilder) = builder.startTable(17) @JvmStatic fun addWaist(builder: FlatBufferBuilder, waist: Boolean) = builder.addBoolean(0, waist, false) @JvmStatic @@ -122,6 +134,10 @@ class SteamVRTrackersSetting : Table() { @JvmStatic fun addRightHand(builder: FlatBufferBuilder, rightHand: Boolean) = builder.addBoolean(14, rightHand, false) @JvmStatic + fun addLeftToes(builder: FlatBufferBuilder, leftToes: Boolean) = builder.addBoolean(15, leftToes, false) + @JvmStatic + fun addRightToes(builder: FlatBufferBuilder, rightToes: Boolean) = builder.addBoolean(16, rightToes, false) + @JvmStatic fun endSteamVRTrackersSetting(builder: FlatBufferBuilder) : Int { val o = builder.endTable() return o diff --git a/protocol/rust/src/generated/mod.rs b/protocol/rust/src/generated/mod.rs index 30bf4861..60487370 100644 --- a/protocol/rust/src/generated/mod.rs +++ b/protocol/rust/src/generated/mod.rs @@ -87,6 +87,8 @@ pub mod solarxr_protocol { pub use self::tracker_status_generated::*; mod magnetometer_status_generated; pub use self::magnetometer_status_generated::*; + mod rest_calibration_status_generated; + pub use self::rest_calibration_status_generated::*; mod hz_f32_generated; pub use self::hz_f32_generated::*; mod transaction_id_generated; diff --git a/protocol/rust/src/generated/solarxr_protocol/data_feed/tracker/tracker_info_generated.rs b/protocol/rust/src/generated/solarxr_protocol/data_feed/tracker/tracker_info_generated.rs index a53ebd36..a96f44ae 100644 --- a/protocol/rust/src/generated/solarxr_protocol/data_feed/tracker/tracker_info_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/data_feed/tracker/tracker_info_generated.rs @@ -40,6 +40,7 @@ impl<'a> TrackerInfo<'a> { pub const VT_IS_HMD: flatbuffers::VOffsetT = 26; pub const VT_MAGNETOMETER: flatbuffers::VOffsetT = 28; pub const VT_DATA_SUPPORT: flatbuffers::VOffsetT = 30; + pub const VT_REST_CALIBRATION_STATUS: flatbuffers::VOffsetT = 32; #[inline] pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { @@ -57,6 +58,7 @@ impl<'a> TrackerInfo<'a> { if let Some(x) = args.mounting_orientation { builder.add_mounting_orientation(x); } if let Some(x) = args.poll_rate { builder.add_poll_rate(x); } builder.add_imu_type(args.imu_type); + builder.add_rest_calibration_status(args.rest_calibration_status); builder.add_data_support(args.data_support); builder.add_magnetometer(args.magnetometer); builder.add_is_hmd(args.is_hmd); @@ -181,6 +183,13 @@ impl<'a> TrackerInfo<'a> { // which contains a valid value in this slot unsafe { self._tab.get::(TrackerInfo::VT_DATA_SUPPORT, Some(super::super::datatypes::hardware_info::TrackerDataType::ROTATION)).unwrap()} } + #[inline] + pub fn rest_calibration_status(&self) -> super::super::datatypes::RestCalibrationStatus { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(TrackerInfo::VT_REST_CALIBRATION_STATUS, Some(super::super::datatypes::RestCalibrationStatus::NOT_SUPPORTED)).unwrap()} + } } impl flatbuffers::Verifiable for TrackerInfo<'_> { @@ -204,6 +213,7 @@ impl flatbuffers::Verifiable for TrackerInfo<'_> { .visit_field::("is_hmd", Self::VT_IS_HMD, false)? .visit_field::("magnetometer", Self::VT_MAGNETOMETER, false)? .visit_field::("data_support", Self::VT_DATA_SUPPORT, false)? + .visit_field::("rest_calibration_status", Self::VT_REST_CALIBRATION_STATUS, false)? .finish(); Ok(()) } @@ -223,6 +233,7 @@ pub struct TrackerInfoArgs<'a> { pub is_hmd: bool, pub magnetometer: super::super::datatypes::MagnetometerStatus, pub data_support: super::super::datatypes::hardware_info::TrackerDataType, + pub rest_calibration_status: super::super::datatypes::RestCalibrationStatus, } impl<'a> Default for TrackerInfoArgs<'a> { #[inline] @@ -242,6 +253,7 @@ impl<'a> Default for TrackerInfoArgs<'a> { is_hmd: false, magnetometer: super::super::datatypes::MagnetometerStatus::NOT_SUPPORTED, data_support: super::super::datatypes::hardware_info::TrackerDataType::ROTATION, + rest_calibration_status: super::super::datatypes::RestCalibrationStatus::NOT_SUPPORTED, } } } @@ -308,6 +320,10 @@ impl<'a: 'b, 'b> TrackerInfoBuilder<'a, 'b> { self.fbb_.push_slot::(TrackerInfo::VT_DATA_SUPPORT, data_support, super::super::datatypes::hardware_info::TrackerDataType::ROTATION); } #[inline] + pub fn add_rest_calibration_status(&mut self, rest_calibration_status: super::super::datatypes::RestCalibrationStatus) { + self.fbb_.push_slot::(TrackerInfo::VT_REST_CALIBRATION_STATUS, rest_calibration_status, super::super::datatypes::RestCalibrationStatus::NOT_SUPPORTED); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TrackerInfoBuilder<'a, 'b> { let start = _fbb.start_table(); TrackerInfoBuilder { @@ -339,6 +355,7 @@ impl core::fmt::Debug for TrackerInfo<'_> { ds.field("is_hmd", &self.is_hmd()); ds.field("magnetometer", &self.magnetometer()); ds.field("data_support", &self.data_support()); + ds.field("rest_calibration_status", &self.rest_calibration_status()); ds.finish() } } diff --git a/protocol/rust/src/generated/solarxr_protocol/datatypes/body_part_generated.rs b/protocol/rust/src/generated/solarxr_protocol/datatypes/body_part_generated.rs index a4654c1c..dee70b9d 100644 --- a/protocol/rust/src/generated/solarxr_protocol/datatypes/body_part_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/datatypes/body_part_generated.rs @@ -12,10 +12,10 @@ use super::*; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MIN_BODY_PART: u8 = 0; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] -pub const ENUM_MAX_BODY_PART: u8 = 54; +pub const ENUM_MAX_BODY_PART: u8 = 60; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] #[allow(non_camel_case_types)] -pub const ENUM_VALUES_BODY_PART: [BodyPart; 53] = [ +pub const ENUM_VALUES_BODY_PART: [BodyPart; 59] = [ BodyPart::NONE, BodyPart::HEAD, BodyPart::NECK, @@ -69,6 +69,12 @@ pub const ENUM_VALUES_BODY_PART: [BodyPart; 53] = [ BodyPart::RIGHT_LITTLE_PROXIMAL, BodyPart::RIGHT_LITTLE_INTERMEDIATE, BodyPart::RIGHT_LITTLE_DISTAL, + BodyPart::LEFT_TOES_ABDUCTOR_HALLUCIS, + BodyPart::LEFT_TOES_DIGITORUM_BREVIS, + BodyPart::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + BodyPart::RIGHT_TOES_ABDUCTOR_HALLUCIS, + BodyPart::RIGHT_TOES_DIGITORUM_BREVIS, + BodyPart::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; /// Different parts of the body. Maps to each possible non-tracker bone in the skeleton. @@ -131,9 +137,15 @@ impl BodyPart { pub const RIGHT_LITTLE_PROXIMAL: Self = Self(52); pub const RIGHT_LITTLE_INTERMEDIATE: Self = Self(53); pub const RIGHT_LITTLE_DISTAL: Self = Self(54); + pub const LEFT_TOES_ABDUCTOR_HALLUCIS: Self = Self(55); + pub const LEFT_TOES_DIGITORUM_BREVIS: Self = Self(56); + pub const LEFT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(57); + pub const RIGHT_TOES_ABDUCTOR_HALLUCIS: Self = Self(58); + pub const RIGHT_TOES_DIGITORUM_BREVIS: Self = Self(59); + pub const RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(60); pub const ENUM_MIN: u8 = 0; - pub const ENUM_MAX: u8 = 54; + pub const ENUM_MAX: u8 = 60; pub const ENUM_VALUES: &'static [Self] = &[ Self::NONE, Self::HEAD, @@ -188,6 +200,12 @@ impl BodyPart { Self::RIGHT_LITTLE_PROXIMAL, Self::RIGHT_LITTLE_INTERMEDIATE, Self::RIGHT_LITTLE_DISTAL, + Self::LEFT_TOES_ABDUCTOR_HALLUCIS, + Self::LEFT_TOES_DIGITORUM_BREVIS, + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS, + Self::RIGHT_TOES_DIGITORUM_BREVIS, + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { @@ -245,6 +263,12 @@ impl BodyPart { Self::RIGHT_LITTLE_PROXIMAL => Some("RIGHT_LITTLE_PROXIMAL"), Self::RIGHT_LITTLE_INTERMEDIATE => Some("RIGHT_LITTLE_INTERMEDIATE"), Self::RIGHT_LITTLE_DISTAL => Some("RIGHT_LITTLE_DISTAL"), + Self::LEFT_TOES_ABDUCTOR_HALLUCIS => Some("LEFT_TOES_ABDUCTOR_HALLUCIS"), + Self::LEFT_TOES_DIGITORUM_BREVIS => Some("LEFT_TOES_DIGITORUM_BREVIS"), + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("LEFT_TOES_ABDUCTOR_DIGITI_MINIMI"), + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS => Some("RIGHT_TOES_ABDUCTOR_HALLUCIS"), + Self::RIGHT_TOES_DIGITORUM_BREVIS => Some("RIGHT_TOES_DIGITORUM_BREVIS"), + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI"), _ => None, } } diff --git a/protocol/rust/src/generated/solarxr_protocol/datatypes/rest_calibration_status_generated.rs b/protocol/rust/src/generated/solarxr_protocol/datatypes/rest_calibration_status_generated.rs new file mode 100644 index 00000000..717b88e3 --- /dev/null +++ b/protocol/rust/src/generated/solarxr_protocol/datatypes/rest_calibration_status_generated.rs @@ -0,0 +1,100 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MIN_REST_CALIBRATION_STATUS: u8 = 0; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MAX_REST_CALIBRATION_STATUS: u8 = 2; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +#[allow(non_camel_case_types)] +pub const ENUM_VALUES_REST_CALIBRATION_STATUS: [RestCalibrationStatus; 3] = [ + RestCalibrationStatus::NOT_SUPPORTED, + RestCalibrationStatus::NOT_CALIBRATED, + RestCalibrationStatus::CALIBRATED, +]; + +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +pub struct RestCalibrationStatus(pub u8); +#[allow(non_upper_case_globals)] +impl RestCalibrationStatus { + pub const NOT_SUPPORTED: Self = Self(0); + pub const NOT_CALIBRATED: Self = Self(1); + pub const CALIBRATED: Self = Self(2); + + pub const ENUM_MIN: u8 = 0; + pub const ENUM_MAX: u8 = 2; + pub const ENUM_VALUES: &'static [Self] = &[ + Self::NOT_SUPPORTED, + Self::NOT_CALIBRATED, + Self::CALIBRATED, + ]; + /// Returns the variant's name or "" if unknown. + pub fn variant_name(self) -> Option<&'static str> { + match self { + Self::NOT_SUPPORTED => Some("NOT_SUPPORTED"), + Self::NOT_CALIBRATED => Some("NOT_CALIBRATED"), + Self::CALIBRATED => Some("CALIBRATED"), + _ => None, + } + } +} +impl core::fmt::Debug for RestCalibrationStatus { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + if let Some(name) = self.variant_name() { + f.write_str(name) + } else { + f.write_fmt(format_args!("", self.0)) + } + } +} +impl<'a> flatbuffers::Follow<'a> for RestCalibrationStatus { + type Inner = Self; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + let b = flatbuffers::read_scalar_at::(buf, loc); + Self(b) + } +} + +impl flatbuffers::Push for RestCalibrationStatus { + type Output = RestCalibrationStatus; + #[inline] + unsafe fn push(&self, dst: &mut [u8], _written_len: usize) { + flatbuffers::emplace_scalar::(dst, self.0); + } +} + +impl flatbuffers::EndianScalar for RestCalibrationStatus { + type Scalar = u8; + #[inline] + fn to_little_endian(self) -> u8 { + self.0.to_le() + } + #[inline] + #[allow(clippy::wrong_self_convention)] + fn from_little_endian(v: u8) -> Self { + let b = u8::from_le(v); + Self(b) + } +} + +impl<'a> flatbuffers::Verifiable for RestCalibrationStatus { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + u8::run_verifier(v, pos) + } +} + +impl flatbuffers::SimpleToVerifyInSlice for RestCalibrationStatus {} diff --git a/protocol/rust/src/generated/solarxr_protocol/datatypes/tracker_role_generated.rs b/protocol/rust/src/generated/solarxr_protocol/datatypes/tracker_role_generated.rs index d64badc3..6dec0033 100644 --- a/protocol/rust/src/generated/solarxr_protocol/datatypes/tracker_role_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/datatypes/tracker_role_generated.rs @@ -12,10 +12,10 @@ use super::*; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MIN_TRACKER_ROLE: u8 = 0; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] -pub const ENUM_MAX_TRACKER_ROLE: u8 = 21; +pub const ENUM_MAX_TRACKER_ROLE: u8 = 27; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] #[allow(non_camel_case_types)] -pub const ENUM_VALUES_TRACKER_ROLE: [TrackerRole; 22] = [ +pub const ENUM_VALUES_TRACKER_ROLE: [TrackerRole; 28] = [ TrackerRole::NONE, TrackerRole::WAIST, TrackerRole::LEFT_FOOT, @@ -38,6 +38,12 @@ pub const ENUM_VALUES_TRACKER_ROLE: [TrackerRole; 22] = [ TrackerRole::HMD, TrackerRole::BEACON, TrackerRole::GENERIC_CONTROLLER, + TrackerRole::LEFT_TOES_ABDUCTOR_HALLUCIS, + TrackerRole::LEFT_TOES_DIGITORUM_BREVIS, + TrackerRole::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + TrackerRole::RIGHT_TOES_ABDUCTOR_HALLUCIS, + TrackerRole::RIGHT_TOES_DIGITORUM_BREVIS, + TrackerRole::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; /// Possible tracker roles @@ -71,9 +77,15 @@ impl TrackerRole { pub const HMD: Self = Self(19); pub const BEACON: Self = Self(20); pub const GENERIC_CONTROLLER: Self = Self(21); + pub const LEFT_TOES_ABDUCTOR_HALLUCIS: Self = Self(22); + pub const LEFT_TOES_DIGITORUM_BREVIS: Self = Self(23); + pub const LEFT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(24); + pub const RIGHT_TOES_ABDUCTOR_HALLUCIS: Self = Self(25); + pub const RIGHT_TOES_DIGITORUM_BREVIS: Self = Self(26); + pub const RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(27); pub const ENUM_MIN: u8 = 0; - pub const ENUM_MAX: u8 = 21; + pub const ENUM_MAX: u8 = 27; pub const ENUM_VALUES: &'static [Self] = &[ Self::NONE, Self::WAIST, @@ -97,6 +109,12 @@ impl TrackerRole { Self::HMD, Self::BEACON, Self::GENERIC_CONTROLLER, + Self::LEFT_TOES_ABDUCTOR_HALLUCIS, + Self::LEFT_TOES_DIGITORUM_BREVIS, + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS, + Self::RIGHT_TOES_DIGITORUM_BREVIS, + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { @@ -123,6 +141,12 @@ impl TrackerRole { Self::HMD => Some("HMD"), Self::BEACON => Some("BEACON"), Self::GENERIC_CONTROLLER => Some("GENERIC_CONTROLLER"), + Self::LEFT_TOES_ABDUCTOR_HALLUCIS => Some("LEFT_TOES_ABDUCTOR_HALLUCIS"), + Self::LEFT_TOES_DIGITORUM_BREVIS => Some("LEFT_TOES_DIGITORUM_BREVIS"), + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("LEFT_TOES_ABDUCTOR_DIGITI_MINIMI"), + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS => Some("RIGHT_TOES_ABDUCTOR_HALLUCIS"), + Self::RIGHT_TOES_DIGITORUM_BREVIS => Some("RIGHT_TOES_DIGITORUM_BREVIS"), + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI"), _ => None, } } diff --git a/protocol/rust/src/generated/solarxr_protocol/rpc/osctrackers_setting_generated.rs b/protocol/rust/src/generated/solarxr_protocol/rpc/osctrackers_setting_generated.rs index 21543dcc..7465dbf8 100644 --- a/protocol/rust/src/generated/solarxr_protocol/rpc/osctrackers_setting_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/rpc/osctrackers_setting_generated.rs @@ -32,6 +32,7 @@ impl<'a> OSCTrackersSetting<'a> { pub const VT_FEET: flatbuffers::VOffsetT = 12; pub const VT_ELBOWS: flatbuffers::VOffsetT = 14; pub const VT_HANDS: flatbuffers::VOffsetT = 16; + pub const VT_TOES: flatbuffers::VOffsetT = 18; #[inline] pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { @@ -43,6 +44,7 @@ impl<'a> OSCTrackersSetting<'a> { args: &'args OSCTrackersSettingArgs ) -> flatbuffers::WIPOffset> { let mut builder = OSCTrackersSettingBuilder::new(_fbb); + builder.add_toes(args.toes); builder.add_hands(args.hands); builder.add_elbows(args.elbows); builder.add_feet(args.feet); @@ -103,6 +105,13 @@ impl<'a> OSCTrackersSetting<'a> { // which contains a valid value in this slot unsafe { self._tab.get::(OSCTrackersSetting::VT_HANDS, Some(false)).unwrap()} } + #[inline] + pub fn toes(&self) -> bool { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(OSCTrackersSetting::VT_TOES, Some(false)).unwrap()} + } } impl flatbuffers::Verifiable for OSCTrackersSetting<'_> { @@ -119,6 +128,7 @@ impl flatbuffers::Verifiable for OSCTrackersSetting<'_> { .visit_field::("feet", Self::VT_FEET, false)? .visit_field::("elbows", Self::VT_ELBOWS, false)? .visit_field::("hands", Self::VT_HANDS, false)? + .visit_field::("toes", Self::VT_TOES, false)? .finish(); Ok(()) } @@ -131,6 +141,7 @@ pub struct OSCTrackersSettingArgs { pub feet: bool, pub elbows: bool, pub hands: bool, + pub toes: bool, } impl<'a> Default for OSCTrackersSettingArgs { #[inline] @@ -143,6 +154,7 @@ impl<'a> Default for OSCTrackersSettingArgs { feet: false, elbows: false, hands: false, + toes: false, } } } @@ -181,6 +193,10 @@ impl<'a: 'b, 'b> OSCTrackersSettingBuilder<'a, 'b> { self.fbb_.push_slot::(OSCTrackersSetting::VT_HANDS, hands, false); } #[inline] + pub fn add_toes(&mut self, toes: bool) { + self.fbb_.push_slot::(OSCTrackersSetting::VT_TOES, toes, false); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> OSCTrackersSettingBuilder<'a, 'b> { let start = _fbb.start_table(); OSCTrackersSettingBuilder { @@ -205,6 +221,7 @@ impl core::fmt::Debug for OSCTrackersSetting<'_> { ds.field("feet", &self.feet()); ds.field("elbows", &self.elbows()); ds.field("hands", &self.hands()); + ds.field("toes", &self.toes()); ds.finish() } } diff --git a/protocol/rust/src/generated/solarxr_protocol/rpc/skeleton_bone_generated.rs b/protocol/rust/src/generated/solarxr_protocol/rpc/skeleton_bone_generated.rs index b8125bb1..a518cca3 100644 --- a/protocol/rust/src/generated/solarxr_protocol/rpc/skeleton_bone_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/rpc/skeleton_bone_generated.rs @@ -12,10 +12,10 @@ use super::*; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MIN_SKELETON_BONE: u8 = 0; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] -pub const ENUM_MAX_SKELETON_BONE: u8 = 21; +pub const ENUM_MAX_SKELETON_BONE: u8 = 27; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] #[allow(non_camel_case_types)] -pub const ENUM_VALUES_SKELETON_BONE: [SkeletonBone; 22] = [ +pub const ENUM_VALUES_SKELETON_BONE: [SkeletonBone; 28] = [ SkeletonBone::NONE, SkeletonBone::HEAD, SkeletonBone::NECK, @@ -38,6 +38,12 @@ pub const ENUM_VALUES_SKELETON_BONE: [SkeletonBone; 22] = [ SkeletonBone::HAND_Z, SkeletonBone::ELBOW_OFFSET, SkeletonBone::UPPER_CHEST, + SkeletonBone::LEFT_TOES_ABDUCTOR_HALLUCIS, + SkeletonBone::LEFT_TOES_DIGITORUM_BREVIS, + SkeletonBone::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + SkeletonBone::RIGHT_TOES_ABDUCTOR_HALLUCIS, + SkeletonBone::RIGHT_TOES_DIGITORUM_BREVIS, + SkeletonBone::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] @@ -67,9 +73,15 @@ impl SkeletonBone { pub const HAND_Z: Self = Self(19); pub const ELBOW_OFFSET: Self = Self(20); pub const UPPER_CHEST: Self = Self(21); + pub const LEFT_TOES_ABDUCTOR_HALLUCIS: Self = Self(22); + pub const LEFT_TOES_DIGITORUM_BREVIS: Self = Self(23); + pub const LEFT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(24); + pub const RIGHT_TOES_ABDUCTOR_HALLUCIS: Self = Self(25); + pub const RIGHT_TOES_DIGITORUM_BREVIS: Self = Self(26); + pub const RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI: Self = Self(27); pub const ENUM_MIN: u8 = 0; - pub const ENUM_MAX: u8 = 21; + pub const ENUM_MAX: u8 = 27; pub const ENUM_VALUES: &'static [Self] = &[ Self::NONE, Self::HEAD, @@ -93,6 +105,12 @@ impl SkeletonBone { Self::HAND_Z, Self::ELBOW_OFFSET, Self::UPPER_CHEST, + Self::LEFT_TOES_ABDUCTOR_HALLUCIS, + Self::LEFT_TOES_DIGITORUM_BREVIS, + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI, + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS, + Self::RIGHT_TOES_DIGITORUM_BREVIS, + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { @@ -119,6 +137,12 @@ impl SkeletonBone { Self::HAND_Z => Some("HAND_Z"), Self::ELBOW_OFFSET => Some("ELBOW_OFFSET"), Self::UPPER_CHEST => Some("UPPER_CHEST"), + Self::LEFT_TOES_ABDUCTOR_HALLUCIS => Some("LEFT_TOES_ABDUCTOR_HALLUCIS"), + Self::LEFT_TOES_DIGITORUM_BREVIS => Some("LEFT_TOES_DIGITORUM_BREVIS"), + Self::LEFT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("LEFT_TOES_ABDUCTOR_DIGITI_MINIMI"), + Self::RIGHT_TOES_ABDUCTOR_HALLUCIS => Some("RIGHT_TOES_ABDUCTOR_HALLUCIS"), + Self::RIGHT_TOES_DIGITORUM_BREVIS => Some("RIGHT_TOES_DIGITORUM_BREVIS"), + Self::RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI => Some("RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI"), _ => None, } } diff --git a/protocol/rust/src/generated/solarxr_protocol/rpc/steam_vrtrackers_setting_generated.rs b/protocol/rust/src/generated/solarxr_protocol/rpc/steam_vrtrackers_setting_generated.rs index 77165e29..3dea7ff2 100644 --- a/protocol/rust/src/generated/solarxr_protocol/rpc/steam_vrtrackers_setting_generated.rs +++ b/protocol/rust/src/generated/solarxr_protocol/rpc/steam_vrtrackers_setting_generated.rs @@ -36,6 +36,8 @@ impl<'a> SteamVRTrackersSetting<'a> { pub const VT_RIGHT_ELBOW: flatbuffers::VOffsetT = 28; pub const VT_LEFT_HAND: flatbuffers::VOffsetT = 30; pub const VT_RIGHT_HAND: flatbuffers::VOffsetT = 32; + pub const VT_LEFT_TOES: flatbuffers::VOffsetT = 34; + pub const VT_RIGHT_TOES: flatbuffers::VOffsetT = 36; #[inline] pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { @@ -47,6 +49,8 @@ impl<'a> SteamVRTrackersSetting<'a> { args: &'args SteamVRTrackersSettingArgs ) -> flatbuffers::WIPOffset> { let mut builder = SteamVRTrackersSettingBuilder::new(_fbb); + builder.add_right_toes(args.right_toes); + builder.add_left_toes(args.left_toes); builder.add_right_hand(args.right_hand); builder.add_left_hand(args.left_hand); builder.add_right_elbow(args.right_elbow); @@ -139,6 +143,20 @@ impl<'a> SteamVRTrackersSetting<'a> { // which contains a valid value in this slot unsafe { self._tab.get::(SteamVRTrackersSetting::VT_RIGHT_HAND, Some(false)).unwrap()} } + #[inline] + pub fn left_toes(&self) -> bool { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(SteamVRTrackersSetting::VT_LEFT_TOES, Some(false)).unwrap()} + } + #[inline] + pub fn right_toes(&self) -> bool { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(SteamVRTrackersSetting::VT_RIGHT_TOES, Some(false)).unwrap()} + } } impl flatbuffers::Verifiable for SteamVRTrackersSetting<'_> { @@ -159,6 +177,8 @@ impl flatbuffers::Verifiable for SteamVRTrackersSetting<'_> { .visit_field::("right_elbow", Self::VT_RIGHT_ELBOW, false)? .visit_field::("left_hand", Self::VT_LEFT_HAND, false)? .visit_field::("right_hand", Self::VT_RIGHT_HAND, false)? + .visit_field::("left_toes", Self::VT_LEFT_TOES, false)? + .visit_field::("right_toes", Self::VT_RIGHT_TOES, false)? .finish(); Ok(()) } @@ -175,6 +195,8 @@ pub struct SteamVRTrackersSettingArgs { pub right_elbow: bool, pub left_hand: bool, pub right_hand: bool, + pub left_toes: bool, + pub right_toes: bool, } impl<'a> Default for SteamVRTrackersSettingArgs { #[inline] @@ -191,6 +213,8 @@ impl<'a> Default for SteamVRTrackersSettingArgs { right_elbow: false, left_hand: false, right_hand: false, + left_toes: false, + right_toes: false, } } } @@ -245,6 +269,14 @@ impl<'a: 'b, 'b> SteamVRTrackersSettingBuilder<'a, 'b> { self.fbb_.push_slot::(SteamVRTrackersSetting::VT_RIGHT_HAND, right_hand, false); } #[inline] + pub fn add_left_toes(&mut self, left_toes: bool) { + self.fbb_.push_slot::(SteamVRTrackersSetting::VT_LEFT_TOES, left_toes, false); + } + #[inline] + pub fn add_right_toes(&mut self, right_toes: bool) { + self.fbb_.push_slot::(SteamVRTrackersSetting::VT_RIGHT_TOES, right_toes, false); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> SteamVRTrackersSettingBuilder<'a, 'b> { let start = _fbb.start_table(); SteamVRTrackersSettingBuilder { @@ -273,6 +305,8 @@ impl core::fmt::Debug for SteamVRTrackersSetting<'_> { ds.field("right_elbow", &self.right_elbow()); ds.field("left_hand", &self.left_hand()); ds.field("right_hand", &self.right_hand()); + ds.field("left_toes", &self.left_toes()); + ds.field("right_toes", &self.right_toes()); ds.finish() } } diff --git a/protocol/typescript/src/all_generated.ts b/protocol/typescript/src/all_generated.ts index 7a0fad77..a0a7fc7e 100644 --- a/protocol/typescript/src/all_generated.ts +++ b/protocol/typescript/src/all_generated.ts @@ -26,6 +26,7 @@ export { HzF32, HzF32T } from './solarxr-protocol/datatypes/hz-f32.js'; export { Ipv4Address, Ipv4AddressT } from './solarxr-protocol/datatypes/ipv4-address.js'; export { LogData, LogDataT } from './solarxr-protocol/datatypes/log-data.js'; export { MagnetometerStatus } from './solarxr-protocol/datatypes/magnetometer-status.js'; +export { RestCalibrationStatus } from './solarxr-protocol/datatypes/rest-calibration-status.js'; export { StringTable, StringTableT } from './solarxr-protocol/datatypes/string-table.js'; export { Temperature, TemperatureT } from './solarxr-protocol/datatypes/temperature.js'; export { TrackerId, TrackerIdT } from './solarxr-protocol/datatypes/tracker-id.js'; diff --git a/protocol/typescript/src/solarxr-protocol/data-feed/tracker/tracker-info.ts b/protocol/typescript/src/solarxr-protocol/data-feed/tracker/tracker-info.ts index 29c386aa..fdc18316 100644 --- a/protocol/typescript/src/solarxr-protocol/data-feed/tracker/tracker-info.ts +++ b/protocol/typescript/src/solarxr-protocol/data-feed/tracker/tracker-info.ts @@ -5,6 +5,7 @@ import * as flatbuffers from 'flatbuffers'; import { BodyPart } from '../../../solarxr-protocol/datatypes/body-part.js'; import { HzF32, HzF32T } from '../../../solarxr-protocol/datatypes/hz-f32.js'; import { MagnetometerStatus } from '../../../solarxr-protocol/datatypes/magnetometer-status.js'; +import { RestCalibrationStatus } from '../../../solarxr-protocol/datatypes/rest-calibration-status.js'; import { ImuType } from '../../../solarxr-protocol/datatypes/hardware-info/imu-type.js'; import { TrackerDataType } from '../../../solarxr-protocol/datatypes/hardware-info/tracker-data-type.js'; import { Quat, QuatT } from '../../../solarxr-protocol/datatypes/math/quat.js'; @@ -143,8 +144,13 @@ dataSupport():TrackerDataType { return offset ? this.bb!.readUint8(this.bb_pos + offset) : TrackerDataType.ROTATION; } +restCalibrationStatus():RestCalibrationStatus { + const offset = this.bb!.__offset(this.bb_pos, 32); + return offset ? this.bb!.readUint8(this.bb_pos + offset) : RestCalibrationStatus.NOT_SUPPORTED; +} + static startTrackerInfo(builder:flatbuffers.Builder) { - builder.startObject(14); + builder.startObject(15); } static addImuType(builder:flatbuffers.Builder, imuType:ImuType) { @@ -203,6 +209,10 @@ static addDataSupport(builder:flatbuffers.Builder, dataSupport:TrackerDataType) builder.addFieldInt8(13, dataSupport, TrackerDataType.ROTATION); } +static addRestCalibrationStatus(builder:flatbuffers.Builder, restCalibrationStatus:RestCalibrationStatus) { + builder.addFieldInt8(14, restCalibrationStatus, RestCalibrationStatus.NOT_SUPPORTED); +} + static endTrackerInfo(builder:flatbuffers.Builder):flatbuffers.Offset { const offset = builder.endObject(); return offset; @@ -224,7 +234,8 @@ unpack(): TrackerInfoT { (this.mountingResetOrientation() !== null ? this.mountingResetOrientation()!.unpack() : null), this.isHmd(), this.magnetometer(), - this.dataSupport() + this.dataSupport(), + this.restCalibrationStatus() ); } @@ -244,6 +255,7 @@ unpackTo(_o: TrackerInfoT): void { _o.isHmd = this.isHmd(); _o.magnetometer = this.magnetometer(); _o.dataSupport = this.dataSupport(); + _o.restCalibrationStatus = this.restCalibrationStatus(); } } @@ -262,7 +274,8 @@ constructor( public mountingResetOrientation: QuatT|null = null, public isHmd: boolean = false, public magnetometer: MagnetometerStatus = MagnetometerStatus.NOT_SUPPORTED, - public dataSupport: TrackerDataType = TrackerDataType.ROTATION + public dataSupport: TrackerDataType = TrackerDataType.ROTATION, + public restCalibrationStatus: RestCalibrationStatus = RestCalibrationStatus.NOT_SUPPORTED ){} @@ -285,6 +298,7 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset { TrackerInfo.addIsHmd(builder, this.isHmd); TrackerInfo.addMagnetometer(builder, this.magnetometer); TrackerInfo.addDataSupport(builder, this.dataSupport); + TrackerInfo.addRestCalibrationStatus(builder, this.restCalibrationStatus); return TrackerInfo.endTrackerInfo(builder); } diff --git a/protocol/typescript/src/solarxr-protocol/datatypes/body-part.ts b/protocol/typescript/src/solarxr-protocol/datatypes/body-part.ts index 86d40a25..ec0792f0 100644 --- a/protocol/typescript/src/solarxr-protocol/datatypes/body-part.ts +++ b/protocol/typescript/src/solarxr-protocol/datatypes/body-part.ts @@ -57,5 +57,11 @@ export enum BodyPart { RIGHT_RING_DISTAL = 51, RIGHT_LITTLE_PROXIMAL = 52, RIGHT_LITTLE_INTERMEDIATE = 53, - RIGHT_LITTLE_DISTAL = 54 + RIGHT_LITTLE_DISTAL = 54, + LEFT_TOES_ABDUCTOR_HALLUCIS = 55, + LEFT_TOES_DIGITORUM_BREVIS = 56, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 57, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 58, + RIGHT_TOES_DIGITORUM_BREVIS = 59, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 60 } diff --git a/protocol/typescript/src/solarxr-protocol/datatypes/rest-calibration-status.ts b/protocol/typescript/src/solarxr-protocol/datatypes/rest-calibration-status.ts new file mode 100644 index 00000000..32a654d7 --- /dev/null +++ b/protocol/typescript/src/solarxr-protocol/datatypes/rest-calibration-status.ts @@ -0,0 +1,7 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export enum RestCalibrationStatus { + NOT_SUPPORTED = 0, + NOT_CALIBRATED = 1, + CALIBRATED = 2 +} diff --git a/protocol/typescript/src/solarxr-protocol/datatypes/tracker-role.ts b/protocol/typescript/src/solarxr-protocol/datatypes/tracker-role.ts index 950178dd..f1ebf504 100644 --- a/protocol/typescript/src/solarxr-protocol/datatypes/tracker-role.ts +++ b/protocol/typescript/src/solarxr-protocol/datatypes/tracker-role.ts @@ -28,5 +28,11 @@ export enum TrackerRole { KEYBOARD = 18, HMD = 19, BEACON = 20, - GENERIC_CONTROLLER = 21 + GENERIC_CONTROLLER = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27 } diff --git a/protocol/typescript/src/solarxr-protocol/rpc/osctrackers-setting.ts b/protocol/typescript/src/solarxr-protocol/rpc/osctrackers-setting.ts index 3519d494..1c5fc4dd 100644 --- a/protocol/typescript/src/solarxr-protocol/rpc/osctrackers-setting.ts +++ b/protocol/typescript/src/solarxr-protocol/rpc/osctrackers-setting.ts @@ -57,8 +57,13 @@ hands():boolean { return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; } +toes():boolean { + const offset = this.bb!.__offset(this.bb_pos, 18); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; +} + static startOSCTrackersSetting(builder:flatbuffers.Builder) { - builder.startObject(7); + builder.startObject(8); } static addHead(builder:flatbuffers.Builder, head:boolean) { @@ -89,12 +94,16 @@ static addHands(builder:flatbuffers.Builder, hands:boolean) { builder.addFieldInt8(6, +hands, +false); } +static addToes(builder:flatbuffers.Builder, toes:boolean) { + builder.addFieldInt8(7, +toes, +false); +} + static endOSCTrackersSetting(builder:flatbuffers.Builder):flatbuffers.Offset { const offset = builder.endObject(); return offset; } -static createOSCTrackersSetting(builder:flatbuffers.Builder, head:boolean, chest:boolean, waist:boolean, knees:boolean, feet:boolean, elbows:boolean, hands:boolean):flatbuffers.Offset { +static createOSCTrackersSetting(builder:flatbuffers.Builder, head:boolean, chest:boolean, waist:boolean, knees:boolean, feet:boolean, elbows:boolean, hands:boolean, toes:boolean):flatbuffers.Offset { OSCTrackersSetting.startOSCTrackersSetting(builder); OSCTrackersSetting.addHead(builder, head); OSCTrackersSetting.addChest(builder, chest); @@ -103,6 +112,7 @@ static createOSCTrackersSetting(builder:flatbuffers.Builder, head:boolean, chest OSCTrackersSetting.addFeet(builder, feet); OSCTrackersSetting.addElbows(builder, elbows); OSCTrackersSetting.addHands(builder, hands); + OSCTrackersSetting.addToes(builder, toes); return OSCTrackersSetting.endOSCTrackersSetting(builder); } @@ -114,7 +124,8 @@ unpack(): OSCTrackersSettingT { this.knees(), this.feet(), this.elbows(), - this.hands() + this.hands(), + this.toes() ); } @@ -127,6 +138,7 @@ unpackTo(_o: OSCTrackersSettingT): void { _o.feet = this.feet(); _o.elbows = this.elbows(); _o.hands = this.hands(); + _o.toes = this.toes(); } } @@ -138,7 +150,8 @@ constructor( public knees: boolean = false, public feet: boolean = false, public elbows: boolean = false, - public hands: boolean = false + public hands: boolean = false, + public toes: boolean = false ){} @@ -150,7 +163,8 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset { this.knees, this.feet, this.elbows, - this.hands + this.hands, + this.toes ); } } diff --git a/protocol/typescript/src/solarxr-protocol/rpc/skeleton-bone.ts b/protocol/typescript/src/solarxr-protocol/rpc/skeleton-bone.ts index 2d7474fd..882aba65 100644 --- a/protocol/typescript/src/solarxr-protocol/rpc/skeleton-bone.ts +++ b/protocol/typescript/src/solarxr-protocol/rpc/skeleton-bone.ts @@ -22,5 +22,11 @@ export enum SkeletonBone { HAND_Y = 18, HAND_Z = 19, ELBOW_OFFSET = 20, - UPPER_CHEST = 21 + UPPER_CHEST = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27 } diff --git a/protocol/typescript/src/solarxr-protocol/rpc/steam-vrtrackers-setting.ts b/protocol/typescript/src/solarxr-protocol/rpc/steam-vrtrackers-setting.ts index 6824ea93..7814c8e3 100644 --- a/protocol/typescript/src/solarxr-protocol/rpc/steam-vrtrackers-setting.ts +++ b/protocol/typescript/src/solarxr-protocol/rpc/steam-vrtrackers-setting.ts @@ -77,8 +77,18 @@ rightHand():boolean { return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; } +leftToes():boolean { + const offset = this.bb!.__offset(this.bb_pos, 34); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; +} + +rightToes():boolean { + const offset = this.bb!.__offset(this.bb_pos, 36); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; +} + static startSteamVRTrackersSetting(builder:flatbuffers.Builder) { - builder.startObject(15); + builder.startObject(17); } static addWaist(builder:flatbuffers.Builder, waist:boolean) { @@ -125,12 +135,20 @@ static addRightHand(builder:flatbuffers.Builder, rightHand:boolean) { builder.addFieldInt8(14, +rightHand, +false); } +static addLeftToes(builder:flatbuffers.Builder, leftToes:boolean) { + builder.addFieldInt8(15, +leftToes, +false); +} + +static addRightToes(builder:flatbuffers.Builder, rightToes:boolean) { + builder.addFieldInt8(16, +rightToes, +false); +} + static endSteamVRTrackersSetting(builder:flatbuffers.Builder):flatbuffers.Offset { const offset = builder.endObject(); return offset; } -static createSteamVRTrackersSetting(builder:flatbuffers.Builder, waist:boolean, chest:boolean, automaticTrackerToggle:boolean, leftFoot:boolean, rightFoot:boolean, leftKnee:boolean, rightKnee:boolean, leftElbow:boolean, rightElbow:boolean, leftHand:boolean, rightHand:boolean):flatbuffers.Offset { +static createSteamVRTrackersSetting(builder:flatbuffers.Builder, waist:boolean, chest:boolean, automaticTrackerToggle:boolean, leftFoot:boolean, rightFoot:boolean, leftKnee:boolean, rightKnee:boolean, leftElbow:boolean, rightElbow:boolean, leftHand:boolean, rightHand:boolean, leftToes:boolean, rightToes:boolean):flatbuffers.Offset { SteamVRTrackersSetting.startSteamVRTrackersSetting(builder); SteamVRTrackersSetting.addWaist(builder, waist); SteamVRTrackersSetting.addChest(builder, chest); @@ -143,6 +161,8 @@ static createSteamVRTrackersSetting(builder:flatbuffers.Builder, waist:boolean, SteamVRTrackersSetting.addRightElbow(builder, rightElbow); SteamVRTrackersSetting.addLeftHand(builder, leftHand); SteamVRTrackersSetting.addRightHand(builder, rightHand); + SteamVRTrackersSetting.addLeftToes(builder, leftToes); + SteamVRTrackersSetting.addRightToes(builder, rightToes); return SteamVRTrackersSetting.endSteamVRTrackersSetting(builder); } @@ -158,7 +178,9 @@ unpack(): SteamVRTrackersSettingT { this.leftElbow(), this.rightElbow(), this.leftHand(), - this.rightHand() + this.rightHand(), + this.leftToes(), + this.rightToes() ); } @@ -175,6 +197,8 @@ unpackTo(_o: SteamVRTrackersSettingT): void { _o.rightElbow = this.rightElbow(); _o.leftHand = this.leftHand(); _o.rightHand = this.rightHand(); + _o.leftToes = this.leftToes(); + _o.rightToes = this.rightToes(); } } @@ -190,7 +214,9 @@ constructor( public leftElbow: boolean = false, public rightElbow: boolean = false, public leftHand: boolean = false, - public rightHand: boolean = false + public rightHand: boolean = false, + public leftToes: boolean = false, + public rightToes: boolean = false ){} @@ -206,7 +232,9 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset { this.leftElbow, this.rightElbow, this.leftHand, - this.rightHand + this.rightHand, + this.leftToes, + this.rightToes ); } } diff --git a/schema/data_feed/tracker.fbs b/schema/data_feed/tracker.fbs index a5ffd48b..669ade6d 100644 --- a/schema/data_feed/tracker.fbs +++ b/schema/data_feed/tracker.fbs @@ -114,4 +114,6 @@ table TrackerInfo { /// Indicates what type of data the tracker sends (note: it always ends up being rotation in the end) data_support: solarxr_protocol.datatypes.hardware_info.TrackerDataType; + + rest_calibration_status: solarxr_protocol.datatypes.RestCalibrationStatus; } diff --git a/schema/datatypes/datatypes.fbs b/schema/datatypes/datatypes.fbs index bb388612..51325c04 100644 --- a/schema/datatypes/datatypes.fbs +++ b/schema/datatypes/datatypes.fbs @@ -92,6 +92,12 @@ enum TrackerRole: uint8 { HMD = 19, BEACON = 20, GENERIC_CONTROLLER = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27 } @@ -151,6 +157,12 @@ enum BodyPart: uint8 { RIGHT_LITTLE_PROXIMAL = 52, RIGHT_LITTLE_INTERMEDIATE = 53, RIGHT_LITTLE_DISTAL = 54, + LEFT_TOES_ABDUCTOR_HALLUCIS = 55, + LEFT_TOES_DIGITORUM_BREVIS = 56, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 57, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 58, + RIGHT_TOES_DIGITORUM_BREVIS = 59, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 60 } enum TrackerStatus: uint8 { @@ -187,3 +199,9 @@ enum MagnetometerStatus: uint8 { DISABLED = 1, ENABLED = 2, } + +enum RestCalibrationStatus: uint8 { + NOT_SUPPORTED = 0, + NOT_CALIBRATED = 1, + CALIBRATED = 2, +} diff --git a/schema/rpc.fbs b/schema/rpc.fbs index 61c81864..a105865d 100644 --- a/schema/rpc.fbs +++ b/schema/rpc.fbs @@ -211,6 +211,9 @@ table SteamVRTrackersSetting { left_hand: bool; right_hand: bool; + + left_toes: bool; + right_toes: bool; } table FilteringSettings { @@ -265,6 +268,7 @@ table OSCTrackersSetting { feet: bool; elbows: bool; hands: bool; + toes: bool; } table TapDetectionSettings { @@ -362,6 +366,12 @@ enum SkeletonBone: uint8 { HAND_Z = 19, ELBOW_OFFSET = 20, UPPER_CHEST = 21, + LEFT_TOES_ABDUCTOR_HALLUCIS = 22, + LEFT_TOES_DIGITORUM_BREVIS = 23, + LEFT_TOES_ABDUCTOR_DIGITI_MINIMI = 24, + RIGHT_TOES_ABDUCTOR_HALLUCIS = 25, + RIGHT_TOES_DIGITORUM_BREVIS = 26, + RIGHT_TOES_ABDUCTOR_DIGITI_MINIMI = 27 } table SkeletonPart {