Skip to content

Commit 7f551df

Browse files
committed
Create SchemaRecord wrapper types for all schemas
Add XXRecord root_type wrapper tables for MCAP serialization: - HandPoseRecord, ControllerSnapshotRecord, HeadPoseRecord, FullBodyPosePicoRecord, Generic3AxisPedalOutputRecord, LocomotionCommandRecord, FrameMetadataRecord - Rename ControllerData to ControllerSnapshotRecord - Update tracker schema names and binary schema references - Update serialize() methods to pack into Record builders - Add static_assert VT_DATA checks in C++ tests
1 parent 1b9a7b2 commit 7f551df

26 files changed

+156
-70
lines changed

src/core/deviceio/cpp/controller_tracker.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,9 +364,9 @@ Timestamp ControllerTracker::Impl::serialize(flatbuffers::FlatBufferBuilder& bui
364364

365365
const ControllerSnapshot& snapshot = (channel_index == 0) ? left_controller_ : right_controller_;
366366

367-
ControllerDataBuilder data_builder(builder);
368-
data_builder.add_data(&snapshot);
369-
builder.Finish(data_builder.Finish());
367+
ControllerSnapshotRecordBuilder record_builder(builder);
368+
record_builder.add_data(&snapshot);
369+
builder.Finish(record_builder.Finish());
370370

371371
return snapshot.timestamp();
372372
}

src/core/deviceio/cpp/frame_metadata_tracker_oak.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,11 @@ class FrameMetadataTrackerOak::Impl : public ITrackerImpl
6262
}
6363

6464
const auto& data = m_streams[channel_index].data;
65-
auto offset = FrameMetadataOak::Pack(builder, &data);
66-
builder.Finish(offset);
65+
auto data_offset = FrameMetadataOak::Pack(builder, &data);
66+
67+
FrameMetadataOakRecordBuilder record_builder(builder);
68+
record_builder.add_data(data_offset);
69+
builder.Finish(record_builder.Finish());
6770

6871
if (data.timestamp)
6972
return *data.timestamp;
@@ -122,13 +125,13 @@ std::string_view FrameMetadataTrackerOak::get_name() const
122125

123126
std::string_view FrameMetadataTrackerOak::get_schema_name() const
124127
{
125-
return "core.FrameMetadataOak";
128+
return "core.FrameMetadataOakRecord";
126129
}
127130

128131
std::string_view FrameMetadataTrackerOak::get_schema_text() const
129132
{
130-
return std::string_view(
131-
reinterpret_cast<const char*>(FrameMetadataOakBinarySchema::data()), FrameMetadataOakBinarySchema::size());
133+
return std::string_view(reinterpret_cast<const char*>(FrameMetadataOakRecordBinarySchema::data()),
134+
FrameMetadataOakRecordBinarySchema::size());
132135
}
133136

134137
const FrameMetadataOakT& FrameMetadataTrackerOak::get_stream_data(const DeviceIOSession& session, size_t stream_index) const

src/core/deviceio/cpp/full_body_tracker_pico.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,11 @@ const FullBodyPosePicoT& FullBodyTrackerPicoImpl::get_body_pose() const
179179

180180
Timestamp FullBodyTrackerPicoImpl::serialize(flatbuffers::FlatBufferBuilder& builder, size_t /*channel_index*/) const
181181
{
182-
auto offset = FullBodyPosePico::Pack(builder, &body_pose_);
183-
builder.Finish(offset);
182+
auto data_offset = FullBodyPosePico::Pack(builder, &body_pose_);
183+
184+
FullBodyPosePicoRecordBuilder record_builder(builder);
185+
record_builder.add_data(data_offset);
186+
builder.Finish(record_builder.Finish());
184187

185188
if (body_pose_.timestamp)
186189
{

src/core/deviceio/cpp/generic_3axis_pedal_tracker.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Generic3AxisPedalTracker::Impl : public ITrackerImpl
2828
// Try to read new data from tensor stream
2929
if (m_schema_reader.read_buffer(m_buffer))
3030
{
31-
auto fb = GetGeneric3AxisPedalOutput(m_buffer.data());
31+
auto fb = flatbuffers::GetRoot<Generic3AxisPedalOutput>(m_buffer.data());
3232
if (fb)
3333
{
3434
fb->UnPackTo(&m_data);
@@ -42,8 +42,12 @@ class Generic3AxisPedalTracker::Impl : public ITrackerImpl
4242

4343
Timestamp serialize(flatbuffers::FlatBufferBuilder& builder, size_t /*channel_index*/) const override
4444
{
45-
auto offset = Generic3AxisPedalOutput::Pack(builder, &m_data);
46-
builder.Finish(offset);
45+
auto data_offset = Generic3AxisPedalOutput::Pack(builder, &m_data);
46+
47+
Generic3AxisPedalOutputRecordBuilder record_builder(builder);
48+
record_builder.add_data(data_offset);
49+
builder.Finish(record_builder.Finish());
50+
4751
return m_data.timestamp ? *m_data.timestamp : Timestamp{};
4852
}
4953

@@ -82,13 +86,13 @@ std::string_view Generic3AxisPedalTracker::get_name() const
8286

8387
std::string_view Generic3AxisPedalTracker::get_schema_name() const
8488
{
85-
return "core.Generic3AxisPedalOutput";
89+
return "core.Generic3AxisPedalOutputRecord";
8690
}
8791

8892
std::string_view Generic3AxisPedalTracker::get_schema_text() const
8993
{
90-
return std::string_view(reinterpret_cast<const char*>(Generic3AxisPedalOutputBinarySchema::data()),
91-
Generic3AxisPedalOutputBinarySchema::size());
94+
return std::string_view(reinterpret_cast<const char*>(Generic3AxisPedalOutputRecordBinarySchema::data()),
95+
Generic3AxisPedalOutputRecordBinarySchema::size());
9296
}
9397

9498
const SchemaTrackerConfig& Generic3AxisPedalTracker::get_config() const

src/core/deviceio/cpp/hand_tracker.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,11 @@ Timestamp HandTracker::Impl::serialize(flatbuffers::FlatBufferBuilder& builder,
9999

100100
const HandPoseT& hand = (channel_index == 0) ? left_hand_ : right_hand_;
101101

102-
auto offset = HandPose::Pack(builder, &hand);
103-
builder.Finish(offset);
102+
auto data_offset = HandPose::Pack(builder, &hand);
103+
104+
HandPoseRecordBuilder record_builder(builder);
105+
record_builder.add_data(data_offset);
106+
builder.Finish(record_builder.Finish());
104107

105108
if (hand.timestamp)
106109
{

src/core/deviceio/cpp/head_tracker.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,11 @@ const HeadPoseT& HeadTracker::Impl::get_head() const
7575

7676
Timestamp HeadTracker::Impl::serialize(flatbuffers::FlatBufferBuilder& builder, size_t /*channel_index*/) const
7777
{
78-
auto offset = HeadPose::Pack(builder, &head_);
79-
builder.Finish(offset);
78+
auto data_offset = HeadPose::Pack(builder, &head_);
79+
80+
HeadPoseRecordBuilder record_builder(builder);
81+
record_builder.add_data(data_offset);
82+
builder.Finish(record_builder.Finish());
8083

8184
if (head_.timestamp)
8285
{

src/core/deviceio/cpp/inc/deviceio/controller_tracker.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ class ControllerTracker : public ITracker
3434

3535
std::string_view get_schema_text() const override
3636
{
37-
return std::string_view(
38-
reinterpret_cast<const char*>(ControllerDataBinarySchema::data()), ControllerDataBinarySchema::size());
37+
return std::string_view(reinterpret_cast<const char*>(ControllerSnapshotRecordBinarySchema::data()),
38+
ControllerSnapshotRecordBinarySchema::size());
3939
}
4040

4141
std::vector<std::string> get_record_channels() const override
@@ -49,7 +49,7 @@ class ControllerTracker : public ITracker
4949

5050
private:
5151
static constexpr const char* TRACKER_NAME = "ControllerTracker";
52-
static constexpr const char* SCHEMA_NAME = "core.ControllerData";
52+
static constexpr const char* SCHEMA_NAME = "core.ControllerSnapshotRecord";
5353

5454
std::shared_ptr<ITrackerImpl> create_tracker(const OpenXRSessionHandles& handles) const override;
5555

src/core/deviceio/cpp/inc/deviceio/full_body_tracker_pico.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ class FullBodyTrackerPico : public ITracker
3232

3333
std::string_view get_schema_name() const override
3434
{
35-
return "core.FullBodyPosePico";
35+
return "core.FullBodyPosePicoRecord";
3636
}
3737

3838
std::string_view get_schema_text() const override
3939
{
40-
return std::string_view(
41-
reinterpret_cast<const char*>(FullBodyPosePicoBinarySchema::data()), FullBodyPosePicoBinarySchema::size());
40+
return std::string_view(reinterpret_cast<const char*>(FullBodyPosePicoRecordBinarySchema::data()),
41+
FullBodyPosePicoRecordBinarySchema::size());
4242
}
4343

4444
std::vector<std::string> get_record_channels() const override

src/core/deviceio/cpp/inc/deviceio/hand_tracker.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class HandTracker : public ITracker
3333
std::string_view get_schema_text() const override
3434
{
3535
return std::string_view(
36-
reinterpret_cast<const char*>(HandPoseBinarySchema::data()), HandPoseBinarySchema::size());
36+
reinterpret_cast<const char*>(HandPoseRecordBinarySchema::data()), HandPoseRecordBinarySchema::size());
3737
}
3838

3939
std::vector<std::string> get_record_channels() const override
@@ -50,7 +50,7 @@ class HandTracker : public ITracker
5050

5151
private:
5252
static constexpr const char* TRACKER_NAME = "HandTracker";
53-
static constexpr const char* SCHEMA_NAME = "core.HandPose";
53+
static constexpr const char* SCHEMA_NAME = "core.HandPoseRecord";
5454

5555
std::shared_ptr<ITrackerImpl> create_tracker(const OpenXRSessionHandles& handles) const override;
5656

src/core/deviceio/cpp/inc/deviceio/head_tracker.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class HeadTracker : public ITracker
3434
std::string_view get_schema_text() const override
3535
{
3636
return std::string_view(
37-
reinterpret_cast<const char*>(HeadPoseBinarySchema::data()), HeadPoseBinarySchema::size());
37+
reinterpret_cast<const char*>(HeadPoseRecordBinarySchema::data()), HeadPoseRecordBinarySchema::size());
3838
}
3939

4040
std::vector<std::string> get_record_channels() const override
@@ -47,7 +47,7 @@ class HeadTracker : public ITracker
4747

4848
private:
4949
static constexpr const char* TRACKER_NAME = "HeadTracker";
50-
static constexpr const char* SCHEMA_NAME = "core.HeadPose";
50+
static constexpr const char* SCHEMA_NAME = "core.HeadPoseRecord";
5151

5252
std::shared_ptr<ITrackerImpl> create_tracker(const OpenXRSessionHandles& handles) const override;
5353

0 commit comments

Comments
 (0)