beamformer_parameters.h (2203B)
1 /* See LICENSE for license details. */ 2 3 /* TODO(rnp): 4 * [ ]: Upload previously exported data for display. maybe this is a UI thing but doing it 5 * programatically would be nice. 6 * [ ]: Add interface for multi frame upload. RF upload already uses an offset into SM so 7 * that part works fine. We just need a way of specify a multi frame upload. (Data must 8 * be organized for simple offset access per frame). 9 */ 10 11 typedef struct { 12 uint64_t shader_count; 13 uint32_t shader_ids[BeamformerMaxComputeShaderStages]; 14 /* NOTE(rnp): this wants to be iterated on both dimensions. it depends entirely on which 15 * visualization method you want to use. the coalescing function wants both directions */ 16 float times[32][BeamformerMaxComputeShaderStages]; 17 float rf_time_deltas[32]; 18 } BeamformerComputeStatsTable; 19 20 #define BEAMFORMER_LIVE_IMAGING_DIRTY_FLAG_LIST \ 21 X(ImagePlaneOffsets, 0) \ 22 X(TransmitPower, 1) \ 23 X(TGCControlPoints, 2) \ 24 X(SaveData, 3) \ 25 X(SaveNameTag, 4) \ 26 X(StopImaging, 5) \ 27 X(AcquisitionKind, 6) \ 28 29 /* NOTE(rnp): if this exceeds 32 you need to fix the flag handling code */ 30 31 #define BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST \ 32 X(active, uint32_t, , 1) \ 33 X(save_enabled, uint32_t, , 1) \ 34 X(save_active, uint32_t, , 1) \ 35 X(acquisition_kind, uint32_t, , 1) \ 36 X(acquisition_kind_enabled_flags, uint64_t, , 1) \ 37 X(transmit_power, float, , 1) \ 38 X(image_plane_offsets, float, [BeamformerViewPlaneTag_Count], BeamformerViewPlaneTag_Count) \ 39 X(tgc_control_points, float, [8], 8) \ 40 X(save_name_tag_length, int32_t, , 1) \ 41 X(save_name_tag, char, [128], 128) 42 43 #define X(name, type, size, ...) type name size; 44 typedef struct {BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST} BeamformerLiveImagingParameters; 45 #undef X