ISMRMRD
ISMRM Raw Data Format
Loading...
Searching...
No Matches
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>
11namespace ISMRMRD {
12extern "C" {
13#else
14#include <stdint.h>
15#endif
16
18{
19 uint16_t version;
21 uint64_t flags;
25 uint32_t scan_counter;
27 uint32_t time_stamp;
31 uint16_t channels;
35 uint16_t waveform_id;
38
39typedef struct ISMRMRD_Waveform
40{
42 uint32_t *data;
44
45
46EXPORTISMRMRD int ismrmrd_make_consistent_waveform(ISMRMRD_Waveform* wav);
47EXPORTISMRMRD int ismrmrd_size_of_waveform_data(const ISMRMRD_Waveform* wav);
48EXPORTISMRMRD ISMRMRD_Waveform* ismrmrd_create_waveform();
49EXPORTISMRMRD int ismrmrd_free_waveform(ISMRMRD_Waveform*);
50EXPORTISMRMRD int ismrmrd_init_waveform(ISMRMRD_Waveform*);
51EXPORTISMRMRD int ismrmrd_init_waveformheader(ISMRMRD_WaveformHeader* header);
52EXPORTISMRMRD 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
Definition waveform.h:18
uint32_t scan_counter
Definition waveform.h:25
uint64_t flags
Definition waveform.h:21
uint16_t number_of_samples
Definition waveform.h:29
uint32_t time_stamp
Definition waveform.h:27
uint16_t channels
Definition waveform.h:31
uint16_t version
Definition waveform.h:19
float sample_time_us
Definition waveform.h:33
uint32_t measurement_uid
Definition waveform.h:23
uint16_t waveform_id
Definition waveform.h:35
Definition waveform.h:40
Definition waveform.h:56
Definition waveform.h:65