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