112class IONGSMSChunkData
115 IONGSMSChunkData(
const GnssMetadata::Chunk& chunk,
const std::vector<std::string>& stream_ids, std::size_t output_stream_offset);
119 IONGSMSChunkData(
const IONGSMSChunkData& rhl) =
delete;
120 IONGSMSChunkData& operator=(
const IONGSMSChunkData& rhl) =
delete;
122 IONGSMSChunkData(IONGSMSChunkData&& rhl) =
delete;
123 IONGSMSChunkData& operator=(IONGSMSChunkData&& rhl) =
delete;
125 std::size_t read_from_buffer(uint8_t* buffer, std::size_t offset);
127 void write_to_output(gr_vector_void_star& outputs, std::vector<int>& output_items);
129 std::size_t output_stream_count()
const;
130 std::size_t output_stream_item_size(std::size_t stream_index)
const;
131 std::size_t output_stream_item_rate(std::size_t stream_index)
const;
134 template <
typename WT>
135 void unpack_words(gr_vector_void_star& outputs, std::vector<int>& output_items);
137 template <
typename WT>
138 std::size_t write_stream_samples(
140 const GnssMetadata::Lump& lump,
141 const GnssMetadata::IonStream& stream,
142 GnssMetadata::StreamEncoding stream_encoding,
145 template <
typename WT,
typename OT>
146 void write_n_samples(
148 GnssMetadata::Lump::LumpShift lump_shift,
149 uint8_t sample_bitsize,
150 std::size_t sample_count,
151 GnssMetadata::StreamEncoding stream_encoding,
154 template <
typename Sample>
155 static void decode_sample(uint8_t sample_bitsize, Sample* sample, GnssMetadata::StreamEncoding encoding);
157 const GnssMetadata::Chunk& chunk_;
160 uint8_t padding_bitsize_;
161 std::size_t output_stream_count_;
162 std::vector<std::size_t> output_stream_item_size_;
163 std::vector<std::size_t> output_stream_item_rate_;
165 struct stream_metadata_t
167 const GnssMetadata::Lump& lump;
168 const GnssMetadata::IonStream& stream;
169 GnssMetadata::StreamEncoding stream_encoding;
170 int output_index = -1;
173 const GnssMetadata::Lump& lump_,
174 const GnssMetadata::IonStream& stream_,
175 GnssMetadata::StreamEncoding stream_encoding_,
176 int output_index_ = -1) : lump(lump_),
178 stream_encoding(stream_encoding_),
179 output_index(output_index_)
183 std::vector<stream_metadata_t> streams_;