ISMRMRD
ISMRM Raw Data Format
waveform.h
1 //
2 // Created by dch on 26/02/18.
3 //
4 
5 #ifndef ISMRMRD_WAVEFORM_H
6 #define ISMRMRD_WAVEFORM_H
7 
8 #include "export.h"
9 #ifdef __cplusplus
10 #include <cstdint>
11 namespace ISMRMRD {
12 extern "C" {
13 #endif
14 
15 typedef struct ISMRMRD_WaveformHeader
16 {
17  uint16_t version;
19  uint64_t flags;
21  uint32_t measurement_uid;
23  uint32_t scan_counter;
25  uint32_t time_stamp;
29  uint16_t channels;
33  uint16_t waveform_id;
36 
37 typedef struct ISMRMRD_Waveform
38 {
40  uint32_t *data;
42 
43 
44 EXPORTISMRMRD int ismrmrd_make_consistent_waveform(ISMRMRD_Waveform* wav);
45 EXPORTISMRMRD int ismrmrd_size_of_waveform_data(const ISMRMRD_Waveform* wav);
46 EXPORTISMRMRD ISMRMRD_Waveform* ismrmrd_create_waveform();
47 EXPORTISMRMRD int ismrmrd_free_waveform(ISMRMRD_Waveform*);
48 EXPORTISMRMRD int ismrmrd_init_waveform(ISMRMRD_Waveform*);
49 EXPORTISMRMRD int ismrmrd_init_waveformheader(ISMRMRD_WaveformHeader* header);
50 EXPORTISMRMRD int ismrmrd_copy_waveform(ISMRMRD_Waveform* dest, const ISMRMRD_Waveform* src);
51 
52 #ifdef __cplusplus
53 }
54  struct EXPORTISMRMRD WaveformHeader : public ISMRMRD_WaveformHeader {
55 
56  // Flag methods
57  bool isFlagSet(const uint64_t val);
58  void setFlag(const uint64_t val);
59  void clearFlag(const uint64_t val);
60  void clearAllFlags();
61 
62  };
63  struct EXPORTISMRMRD Waveform : public ISMRMRD_Waveform {
64  Waveform();
65  Waveform(const Waveform &other);
66  Waveform(Waveform&& other);
67  Waveform(uint16_t number_of_samples, uint16_t available_channels);
68  ~Waveform();
69  Waveform & operator=(const Waveform &other);
70  Waveform & operator=(Waveform &&other);
71 
72  uint32_t* begin_data();
73  uint32_t* end_data();
74  size_t size() const;
75  };
76 }
77 
78 
79 #endif
80 #endif //ISMRMRD_WAVEFORM_H_H
ISMRMRD::ISMRMRD_WaveformHeader
Definition: waveform.h:15
ISMRMRD::ISMRMRD_WaveformHeader::time_stamp
uint32_t time_stamp
Definition: waveform.h:25
ISMRMRD::ISMRMRD_Waveform
Definition: waveform.h:37
ISMRMRD::ISMRMRD_WaveformHeader::channels
uint16_t channels
Definition: waveform.h:29
ISMRMRD::ISMRMRD_WaveformHeader::flags
uint64_t flags
Definition: waveform.h:19
ISMRMRD::ISMRMRD_WaveformHeader::waveform_id
uint16_t waveform_id
Definition: waveform.h:33
ISMRMRD::ISMRMRD_WaveformHeader::measurement_uid
uint32_t measurement_uid
Definition: waveform.h:21
ISMRMRD::ISMRMRD_WaveformHeader::version
uint16_t version
Definition: waveform.h:17
ISMRMRD::ISMRMRD_WaveformHeader::number_of_samples
uint16_t number_of_samples
Definition: waveform.h:27
ISMRMRD::WaveformHeader
Definition: waveform.h:54
ISMRMRD::ISMRMRD_WaveformHeader::scan_counter
uint32_t scan_counter
Definition: waveform.h:23
ISMRMRD::ISMRMRD_WaveformHeader::sample_time_us
float sample_time_us
Definition: waveform.h:31
ISMRMRD::Waveform
Definition: waveform.h:63
ISMRMRD
Definition: dataset.h:17