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 }