7#ifndef ISMRMRD_WAVEFORM_H
8#define ISMRMRD_WAVEFORM_H
10#if __cplusplus > 199711L
48#if __cplusplus > 199711L
51static_assert(offsetof(
ISMRMRD_WaveformHeader, version) == 0,
"ISMRMRD WaveformHeader version offset is not correct");
52static_assert(offsetof(
ISMRMRD_WaveformHeader, flags) == 8,
"ISMRMRD WaveformHeader flags offset is not correct");
53static_assert(offsetof(
ISMRMRD_WaveformHeader, measurement_uid) == 16,
"ISMRMRD WaveformHeader measurement_uid offset is not correct");
54static_assert(offsetof(
ISMRMRD_WaveformHeader, scan_counter) == 20,
"ISMRMRD WaveformHeader scan_counter offset is not correct");
55static_assert(offsetof(
ISMRMRD_WaveformHeader, time_stamp) == 24,
"ISMRMRD WaveformHeader time_stamp offset is not correct");
56static_assert(offsetof(
ISMRMRD_WaveformHeader, number_of_samples) == 28,
"ISMRMRD WaveformHeader number_of_samples offset is not correct");
57static_assert(offsetof(
ISMRMRD_WaveformHeader, channels) == 30,
"ISMRMRD WaveformHeader channels offset is not correct");
58static_assert(offsetof(
ISMRMRD_WaveformHeader, sample_time_us) == 32,
"ISMRMRD WaveformHeader sample_time_us offset is not correct");
59static_assert(offsetof(
ISMRMRD_WaveformHeader, waveform_id) == 36,
"ISMRMRD WaveformHeader waveform_id offset is not correct");
82 bool isFlagSet(
const uint64_t val);
83 void setFlag(
const uint64_t val);
84 void clearFlag(
const uint64_t val);
89 #if __cplusplus > 199711L
92 static_assert(std::is_standard_layout<WaveformHeader>::value,
"WaveformHeader is not a standard layout type");
99 Waveform(uint16_t number_of_samples, uint16_t available_channels);
104 uint32_t* begin_data();
105 uint32_t* end_data();
106 const uint32_t* begin_data()
const;
107 const uint32_t* end_data()
const;