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 #else
14 #include <stdint.h>
15 #endif
16 
17 typedef struct ISMRMRD_WaveformHeader
18 {
19  uint16_t version;
21  uint64_t flags;
23  uint32_t measurement_uid;
25  uint32_t scan_counter;
27  uint32_t time_stamp;
31  uint16_t channels;
35  uint16_t waveform_id;
38 
39 typedef struct ISMRMRD_Waveform
40 {
42  uint32_t *data;
44 
45 
46 EXPORTISMRMRD int ismrmrd_make_consistent_waveform(ISMRMRD_Waveform* wav);
47 EXPORTISMRMRD int ismrmrd_size_of_waveform_data(const ISMRMRD_Waveform* wav);
48 EXPORTISMRMRD ISMRMRD_Waveform* ismrmrd_create_waveform();
49 EXPORTISMRMRD int ismrmrd_free_waveform(ISMRMRD_Waveform*);
50 EXPORTISMRMRD int ismrmrd_init_waveform(ISMRMRD_Waveform*);
51 EXPORTISMRMRD int ismrmrd_init_waveformheader(ISMRMRD_WaveformHeader* header);
52 EXPORTISMRMRD int ismrmrd_copy_waveform(ISMRMRD_Waveform* dest, const ISMRMRD_Waveform* src);
53 
54 #ifdef __cplusplus
55 }
56  struct EXPORTISMRMRD WaveformHeader : public ISMRMRD_WaveformHeader {
57 
58  // Flag methods
59  bool isFlagSet(const uint64_t val);
60  void setFlag(const uint64_t val);
61  void clearFlag(const uint64_t val);
62  void clearAllFlags();
63 
64  };
65  struct EXPORTISMRMRD Waveform : public ISMRMRD_Waveform {
66  Waveform();
67  Waveform(const Waveform &other);
68  Waveform(Waveform&& other);
69  Waveform(uint16_t number_of_samples, uint16_t available_channels);
70  ~Waveform();
71  Waveform & operator=(const Waveform &other);
72  Waveform & operator=(Waveform &&other);
73 
74  uint32_t* begin_data();
75  uint32_t* end_data();
76  const uint32_t* begin_data() const;
77  const uint32_t* end_data() const;
78  size_t size() const;
79  };
80 }
81 
82 
83 #endif
84 #endif //ISMRMRD_WAVEFORM_H_H
ISMRMRD::ISMRMRD_WaveformHeader
Definition: waveform.h:17
ISMRMRD::ISMRMRD_WaveformHeader::time_stamp
uint32_t time_stamp
Definition: waveform.h:27
ISMRMRD::ISMRMRD_Waveform
Definition: waveform.h:39
ISMRMRD::ISMRMRD_WaveformHeader::channels
uint16_t channels
Definition: waveform.h:31
ISMRMRD::ISMRMRD_WaveformHeader::flags
uint64_t flags
Definition: waveform.h:21
ISMRMRD::ISMRMRD_WaveformHeader::waveform_id
uint16_t waveform_id
Definition: waveform.h:35
ISMRMRD::ISMRMRD_WaveformHeader::measurement_uid
uint32_t measurement_uid
Definition: waveform.h:23
ISMRMRD::ISMRMRD_WaveformHeader::version
uint16_t version
Definition: waveform.h:19
ISMRMRD::ISMRMRD_WaveformHeader::number_of_samples
uint16_t number_of_samples
Definition: waveform.h:29
ISMRMRD::WaveformHeader
Definition: waveform.h:56
ISMRMRD::ISMRMRD_WaveformHeader::scan_counter
uint32_t scan_counter
Definition: waveform.h:25
ISMRMRD::ISMRMRD_WaveformHeader::sample_time_us
float sample_time_us
Definition: waveform.h:33
ISMRMRD::Waveform
Definition: waveform.h:65
ISMRMRD
Definition: dataset.h:17