ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

beamformer_core.meta (3139B)


      1 // See LICENSE for license details.
      2 @Flags PanelFlags
      3 {
      4 	List
      5 	NeedsFrame
      6 	HasSettings
      7 }
      8 
      9 @Struct PanelInfo
     10 {
     11 	[display     STR]
     12 	[string      STR]
     13 	[description STR]
     14 	[flags       PanelFlags]
     15 }
     16 
     17 @Table([name display string list needs_frame has_settings description]) PanelTable
     18 {
     19 	[Nil       `` nil   0 0 0 ``]
     20 	[Split     `` split 0 0 0 ``]
     21 	[TabGroup  `` group 0 0 0 ``]
     22 
     23 	[ComputeBarGraph     `Compute Bar Graph` compute_bar_graph  1 0 0 `Bar graph showing portions of compute occupied by each stage.`]
     24 	[ComputeStats        `Compute Stats`     compute_stats      1 0 0 `Average stats about beamforming computations.`]
     25 	[FrameViewLive       `Frame View`        frame_view_live    1 0 1 `Latest frame with selected tag.`]
     26 	[FrameViewCopy       `Frame View (Copy)` frame_view_copy    0 1 1 `Copy of an old frame. Useful for comparisons.`]
     27 	[FrameViewXPlane     `3D X-Plane`        frame_view_xplane  1 0 1 `3D Cross Plane View.`]
     28 	[LiveImagingControls `Live Controls`     live_controls      1 0 0 `Imaging system controls.`]
     29 	[ParameterListing    `Parameter Listing` parameters_listing 1 0 1 `Editable parameter set used for beamforming.`]
     30 }
     31 @Expand(PanelTable) @Enumeration(`$(name)`) PanelKind
     32 @Emit
     33 {
     34 	`read_only global BeamformerPanelInfo beamformer_panel_infos[] = {`
     35 	@Expand(PanelTable) `	{str8_comp("$(display)"), str8_comp("$(string)"), str8_comp("$(description)"), ($(list)*BeamformerPanelFlags_List)|($(needs_frame)*BeamformerPanelFlags_NeedsFrame)|($(has_settings)*BeamformerPanelFlags_HasSettings)},`
     36 	`};`
     37 }
     38 
     39 @Table ([type name upper]) RegistersTable
     40 {
     41 	[STR string           String        ]
     42 	[U64 tree_node        TreeNode      ]
     43 	[U64 window           Window        ]
     44 	[U64 frame            Frame         ]
     45 
     46 	[U64 frame_view       FrameView     ]
     47 
     48 	// NOTE(rnp): Panel Movement and Splitting
     49 	[U64 split_axis       SplitAxis     ]
     50 	[U64 split_left_tree  SplitLeftTree ]
     51 	[U64 split_right_tree SplitRightTree]
     52 
     53 	[U64 drop_target_tree DropTargetTree]
     54 	[U64 drop_child_index DropChildIndex]
     55 }
     56 @Expand(RegistersTable) @Struct([`$(name)` `$(type)`]) Registers
     57 @Expand(RegistersTable) @Enumeration(`$(upper)`)       RegisterSlot
     58 
     59 @Emit
     60 {
     61 	`#define beamformer_registers_init_literal \`
     62 	@Expand(RegistersTable) `	.$(name)$(|)= beamformer_registers()->$(name), \`
     63 }
     64 
     65 @Struct CommandInfo
     66 {
     67 	[string      STR]
     68 	[display     STR]
     69 	[description STR]
     70 }
     71 
     72 @Table([kind string display_string description]) CommandTable
     73 {
     74 	// NOTE(rnp): tab commands
     75 	[CloseTab  `close_tab`  `Close Tab`  `Closes currently active tab.`]
     76 	[FocusTab  `focus_tab`  `Focus Tab`  `Focus the currently selected tab in its group.`]
     77 	[MoveTab   `move_tab`   `Move Tab`   `Moves an exisiting tab to a different group/split.`]
     78 	[OpenTab   `open_tab`   `Open Tab`   `Opens a new tab with a specified view.`]
     79 	[SplitTree `split_tree` `Split Tree` `Splits the UI into two new splits.`]
     80 }
     81 
     82 @Enumeration CommandKind
     83 {
     84 	Nil
     85 	@Expand(CommandTable) `$(kind)`
     86 }
     87 
     88 @Emit
     89 {
     90 	`read_only global BeamformerCommandInfo beamformer_command_infos[] = {`
     91 	`	{0},`
     92 	@Expand(CommandTable) `	{str8_comp("$(string)"), str8_comp("$(display_string)"), str8_comp("$(description)")},`
     93 	`};`
     94 }