ngscopeclient v0.2.2
Loading...
Searching...
No Matches
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
ProtocolAnalyzerDialog Class Reference

UI for the history system. More...

#include <ProtocolAnalyzerDialog.h>

Inheritance diagram for ProtocolAnalyzerDialog:
Inheritance graph
[legend]
Collaboration diagram for ProtocolAnalyzerDialog:
Collaboration graph
[legend]

Public Member Functions

 ProtocolAnalyzerDialog (PacketDecoder *filter, std::shared_ptr< PacketManager > mgr, Session *session, MainWindow *wnd)
 
virtual bool DoRender () override
 Renders the dialog and handles UI events.
 
virtual bool Render () override
 Renders the dialog and handles UI events.
 
bool PollForSelectionChanges ()
 Returns true if a new waveform was selected this frame.
 
TimePoint GetSelectedWaveformTimestamp ()
 
PacketDecoderGetFilter ()
 
void OnWaveformLoaded (TimePoint t)
 Called when a new waveform arrives.
 
void OnCursorMoved (int64_t offset)
 Notifies the dialog that a cursor has been moved.
 
const std::string & GetFilterExpression ()
 
void SetFilterExpression (const std::string &f)
 
- Public Member Functions inherited from Dialog
 Dialog (const std::string &title, const std::string &id, ImVec2 defaultSize=ImVec2(300, 100), Session *session=nullptr, MainWindow *parent=nullptr)
 
void RenderAsChild ()
 Runs the dialog's contents directly into a parent window.
 
const std::string & GetID ()
 
std::string GetTitleAndID ()
 
template<typename T >
bool renderEditableProperty (float width, const string &label, string &currentValue, T &committedValue, Unit unit, const char *tooltip, optional< ImVec4 > optcolor, bool allow7SegmentDisplay, bool explicitApply)
 Render an editable numeric value.
 
- Public Member Functions inherited from SinkNode
virtual void Refresh (vk::raii::CommandBuffer &cmdBuf, std::shared_ptr< QueueHandle > queue) override
 
- Public Member Functions inherited from FlowGraphNode
void DetachInputs ()
 Disconnects all inputs from the node without releasing them.
 
size_t GetInputCount ()
 Get the number of input ports.
 
std::string GetInputName (size_t i)
 
void SetInput (size_t i, StreamDescriptor stream, bool force=false)
 Connects a stream to the input of this node.
 
void SetInput (const std::string &name, StreamDescriptor stream, bool force=false)
 
virtual bool ValidateChannel (size_t i, StreamDescriptor stream)
 Check if a stream is allowed to be connected to the given input.
 
bool HasInput (StreamDescriptor desc)
 Checks if the given stream is connected to at least one of our inputs.
 
StreamDescriptor GetInput (size_t i)
 Gets the descriptor for one of our inputs.
 
std::shared_ptr< InputConstraintGetInputConstraints (size_t i)
 Get the constraints on one of our inputs.
 
FilterParameterGetParameter (std::string s)
 
bool HasParameter (std::string s)
 Checks if we have a parameter with a given name.
 
ParameterMapType::iterator GetParamBegin ()
 Returns an iterator to the beginning of our parameter map.
 
ParameterMapType::iterator GetParamEnd ()
 Returns an iterator to the end of our parameter map.
 
size_t GetParamCount ()
 Returns the number of parameter we have.
 
virtual YAML::Node SerializeConfiguration (IDTable &table)
 Serializes this trigger's configuration to a YAML string.
 
virtual void LoadParameters (const YAML::Node &node, IDTable &table)
 Load configuration from a save file.
 
virtual void LoadInputs (const YAML::Node &node, IDTable &table)
 
bool IsDownstreamOf (std::set< FlowGraphNode * > nodes)
 Determines if this node is downstream of any of the specified other nodes.
 
virtual uint32_t GetExecutionCapabilitiesMask ()
 Returns a bitmask of ExecutionCapabilities fields.
 
bool HasMessages () const
 Checks if this graph has any messages.
 
const std::vector< FlowGraphNodeMessage > & GetMessages () const
 Walking through any messages.
 
const FlowGraphNodeMessageGetMostSevereMessage () const
 
void AddSink (size_t stream, FlowGraphNode *node)
 
void RemoveSink (size_t stream, FlowGraphNode *node)
 
const std::set< FlowGraphNode * > & GetSinks (size_t stream)
 
sigc::signal< void()> signal_parametersChanged ()
 
sigc::signal< void()> signal_inputsChanged ()
 

Protected Types

enum  { FORMAT_HEX , FORMAT_ASCII , FORMAT_HEXDUMP }
 Output data format.
 

Protected Member Functions

void DoDataColumn (Packet *pack, FontWithSize dataFont, std::vector< RowData > &rows, size_t nrow)
 Handles the "data" column for packets.
 
void DoImageColumn (PacketDecoder *f, Packet *pack, std::vector< RowData > &rows, size_t nrow)
 Handles the "image" column for packets.
 
- Protected Member Functions inherited from Dialog
bool TextInputWithExplicitApply (const std::string &label, std::string &currentValue, std::string &committedValue)
 
bool IntInputWithImplicitApply (const std::string &label, int &currentValue, int &committedValue)
 
bool UnitInputWithExplicitApply (const std::string &label, std::string &currentValue, float &committedValue, Unit unit)
 Input box for a floating point value with an associated unit and an "apply" button.
 
void renderNumericValue (const std::string &value, bool &clicked, bool &hovered, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false, float digitHeight=0, bool clickable=true)
 Render a numeric value.
 
void renderReadOnlyProperty (float width, const std::string &label, const std::string &value, const char *tooltip=nullptr)
 Render a read-only instrument property value.
 
template<typename T >
bool renderEditableProperty (float width, const std::string &label, std::string &currentValue, T &committedValue, Unit unit, const char *tooltip=nullptr, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false, bool explicitApply=false)
 
template<typename T >
bool renderEditablePropertyWithExplicitApply (float width, const std::string &label, std::string &currentValue, T &committedValue, Unit unit, const char *tooltip=nullptr, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false)
 Render an editable numeric value with explicit apply (if the input value needs to explicitly be applied by clicking the apply button)
 
void renderBadge (float width, ImVec4 color, const std::string &label)
 Render a badge with text inside.
 
void RenderErrorPopup ()
 Popup message when we fail to connect.
 
void ShowErrorPopup (const std::string &title, const std::string &msg)
 Opens the error popup.
 
void Render7SegmentDigit (ImDrawList *drawList, uint8_t digit, ImVec2 size, ImVec2 position, float thikness, ImU32 colorOn, ImU32 colorOff)
 Render a single digit in 7 segment display style.
 
void Render7SegmentValue (const std::string &value, ImVec4 color, float digitHeight)
 Render a numeric value with a 7 segment display style.
 
void Render7SegmentValue (const std::string &value, ImVec4 color, float digitHeight, bool &clicked, bool &hovered, bool clickable=true)
 Render a numeric value with a 7 segment display style.
 
- Protected Member Functions inherited from SinkNode
void RefreshInputNames ()
 Regenerate the list of inputs so that each port has a unique, monotonic name.
 
virtual void RemoveStream (size_t i)
 Remove a stream connected to one of our inputs but DOES NOT free the reference.
 
void ClearEmptyInputs ()
 Removes any empty spaces from m_inputs.
 
size_t GetStreamPosition (StreamDescriptor desc)
 Get the position of the provided Stream in this SinkNode.
 
void MoveStream (StreamDescriptor desc, size_t newPosition)
 Move a stream to another position in this plot.
 
- Protected Member Functions inherited from FlowGraphNode
virtual void OnInputChanged (size_t i)
 Called when a new input is connected to the node.
 
WaveformBaseGetInputWaveform (size_t i)
 Gets the waveform attached to the specified input.
 
SparseAnalogWaveformGetSparseAnalogInputWaveform (size_t i)
 Gets the analog waveform attached to the specified input.
 
UniformAnalogWaveformGetUniformAnalogInputWaveform (size_t i)
 Gets the analog waveform attached to the specified input.
 
SparseDigitalWaveformGetSparseDigitalInputWaveform (size_t i)
 Gets the digital waveform attached to the specified input.
 
UniformDigitalWaveformGetUniformDigitalInputWaveform (size_t i)
 Gets the digital waveform attached to the specified input.
 
virtual void CreateInput (const std::string &name)
 Gets the digital bus waveform attached to the specified input.
 
template<class T , class... Args>
void CreateInput (const std::string &name, Args &&... args)
 
std::string GetInputDisplayName (size_t i)
 Gets the display name for one of our inputs.
 
void ClearMessages ()
 Remove any messages left over from the last graph refresh.
 
void AddMessage (const FlowGraphNodeMessage &msg)
 Attach a new message to the node.
 
void AddMessage (Severity severity, const std::string &title, const std::string &message)
 Attach a new message to the node.
 
void AddErrorMessage (const std::string &err)
 Add a new error message.
 
void AddErrorMessage (const std::string &title, const std::string &err)
 Add a new error message with a title.
 

Protected Attributes

std::shared_ptr< PacketManagerm_mgr
 
bool m_waveformChanged
 True if a new waveform in the dialog was selected this frame.
 
TimePoint m_lastSelectedWaveform
 Timestamp of the previously selected waveform.
 
Packetm_selectedPacket
 Currently selected packet.
 
enum ProtocolAnalyzerDialog:: { ... }  m_dataFormat
 Output data format.
 
bool m_needToScrollToSelectedPacket
 True if the selected packet should be scrolled to.
 
bool m_firstDataBlockOfFrame
 True the first time DoDataColumn() is called in a given frame.
 
size_t m_bytesPerLine
 The number of bytes per line we can display with the current column setup.
 
std::string m_filterExpression
 Filter expression we're typing.
 
std::string m_committedFilterExpression
 Filter expression we're actually using.
 
- Protected Attributes inherited from Dialog
bool m_open
 
std::string m_id
 
std::string m_title
 
ImVec2 m_defaultSize
 
std::string m_errorPopupTitle
 
std::string m_errorPopupMessage
 
Sessionm_session
 optional reference to session
 
MainWindowm_parent
 optional reference to parent MainWindow
 
ImGuiID m_editedItemId = 0
 Id of the item currently beeing edited.
 
ImGuiID m_lastEditedItemId = 0
 Id of the last edited item.
 
- Protected Attributes inherited from FlowGraphNode
std::vector< std::shared_ptr< InputDescriptor > > m_inputs
 Input ports.
 
std::vector< std::set< FlowGraphNode * > > m_sinks
 The nodes (if any) that each of our streams drives.
 
ParameterMapType m_parameters
 
sigc::signal< void()> m_parametersChangedSignal
 Signal emitted when the set of parameters changes.
 
sigc::signal< void()> m_inputsChangedSignal
 Signal emitted when the set of inputs changes.
 
std::vector< FlowGraphNodeMessagem_messages
 

Additional Inherited Members

- Public Types inherited from FlowGraphNode
enum class  ExecutionCapabilities {
  None = 0 , CommandBufferAppend = 1 , CommandBufferTailCall = 2 , VulkanOnly = 4 ,
  DynamicShader = 8
}
 
typedef std::map< std::string, FilterParameterParameterMapType
 Short name for a map of strings to parameters.
 
- Static Public Member Functions inherited from Dialog
static bool Combo (const std::string &label, const std::vector< std::string > &items, int &selection, bool *open=nullptr)
 Displays a combo box from a vector<string>
 
static bool UnitInputWithImplicitApply (const std::string &label, std::string &currentValue, float &committedValue, Unit unit)
 Input box for a floating point value with an associated unit.
 
static bool UnitInputWithImplicitApply (const std::string &label, std::string &currentValue, double &committedValue, Unit unit)
 Input box for a double precision floating point value with an associated unit.
 
static bool UnitInputWithImplicitApply (const std::string &label, std::string &currentValue, int64_t &committedValue, Unit unit)
 Input box for an integer value with an associated unit.
 
static bool TextInputWithImplicitApply (const std::string &label, std::string &currentValue, std::string &committedValue)
 
static void Tooltip (const std::string &str, bool allowDisabled=false)
 Helper based on imgui demo for displaying tooltip text over the previously rendered widget.
 
static void HelpMarker (const std::string &str)
 
static void HelpMarker (const std::string &header, const std::vector< std::string > &bullets)
 

Detailed Description

UI for the history system.

Member Function Documentation

◆ DoRender()

bool ProtocolAnalyzerDialog::DoRender ( )
overridevirtual

Renders the dialog and handles UI events.

Returns
True if we should continue showing the dialog False if it's been closed

Implements Dialog.

◆ PollForSelectionChanges()

bool ProtocolAnalyzerDialog::PollForSelectionChanges ( )
inline

Returns true if a new waveform was selected this frame.

Returns false if only a new packet was selected, but within the same waveform

◆ Render()

bool ProtocolAnalyzerDialog::Render ( )
overridevirtual

Renders the dialog and handles UI events.

Returns
True if we should continue showing the dialog False if it's been closed

Reimplemented from Dialog.


The documentation for this class was generated from the following files: