package hardcaml_waveterm

  1. Overview
  2. Docs
val get_wave_width : (Base.Int.t * Wave.t) -> Base.Int.t * Base.Int.t

get width code and actual width in chars

val get_wave_height : (Base.Int.t * Wave.t) -> Base.Int.t * Base.Int.t

get height code and actual height in chars

val get_max_signal_width : Waves.t -> Base.Int.t

max width of name window

val get_max_value_width : Waves.t -> Base.Int.t

max width of values window. Needs to evaluate the entire waveform.

val get_estimated_max_value_width : Waves.t -> Base.Int.t

gets an estimate fo the max with of values. Inaccruate for the constructors U, S and F.

val get_max_cycles : Waves.t -> Base.Int.t

max no of wave cycles

val get_max_signals : Waves.t -> Base.Int.t

max no of wave cycles

val get_max_wave_width : Waves.t -> Base.Int.t

max width of wave window

val get_max_wave_height : Waves.t -> Base.Int.t -> Base.Int.t

max height of wave window

val draw_clock_cycle : ctx:Draw.In_memory.ctx -> style:Draw.In_memory.style -> bounds:Draw.rect -> w:Base.Int.t -> h:Base.Int.t -> c:Base.Int.t -> Base.Unit.t

draws one clock cycle

val draw_clock_cycles : ctx:Draw.In_memory.ctx -> style:Draw.In_memory.style -> bounds:Draw.rect -> w:Base.Int.t -> waw:Base.Int.t -> h:Base.Int.t -> cnt:Base.Int.t -> Base.Unit.t

draws cnt clock cycles

val draw_binary_data : ctx:Draw.In_memory.ctx -> style:Draw.In_memory.style -> bounds:Draw.rect -> w:Base.Int.t -> h:Base.Int.t -> data:Data.t -> off:Base.Int.t -> Base.Unit.t

draw binary waveform data

val draw_data : ctx:Draw.In_memory.ctx -> style:Draw.In_memory.style -> bounds:Draw.rect -> to_str:(Hardcaml.Bits.t -> Base.String.t) -> alignment:Wave_format.alignment -> w:Base.Int.t -> h:Base.Int.t -> data:Data.t -> off:Base.Int.t -> Base.Unit.t

draw arbitrary waveform data

type !'a0 draw_item = ?style:Draw.Style.t -> ctx:Draw.In_memory.ctx -> bounds:Draw.rect -> Waves.t -> 'a
val with_border : draw:'a draw_item -> label:Base.String.t -> ?border:Draw.Style.t -> 'a draw_item
val draw_cursor : ctx:Draw.In_memory.ctx -> bounds:Draw.rect -> state:Waves.t -> Base.Unit.t

draw cursor

val draw_wave : Base.Unit.t draw_item

draw waveforms

val draw_signals : Base.Unit.t draw_item

draw signal names

val draw_values : Base.Int.t draw_item

draw signal values

val draw_status : Base.Unit.t draw_item
val draw_ui : ?style:Styles.t -> ?bounds:Bounds.t -> ctx:Draw.In_memory.ctx -> Waves.t -> Base.Unit.t

draw standard user inferface (names, values, waveforms left to right

type pick = Make(Draw.In_memory).pick =
  1. | Wave of Base.Int.t * Base.Int.t
  2. | Value of Base.Int.t
  3. | Signal of Base.Int.t
  4. | Status
  5. | No_pick
val pick : bounds:Bounds.t -> r:Base.Int.t -> c:Base.Int.t -> Waves.t -> pick