36#ifndef FlowGraphNode_h
37#define FlowGraphNode_h
63 size_t GetInputCount();
64 std::string GetInputName(
size_t i);
90 {
return (m_parameters.find(s) != m_parameters.end()); }
94 {
return m_parameters.begin(); }
98 {
return m_parameters.end(); }
102 {
return m_parameters.size(); }
115 virtual void LoadInputs(
const YAML::Node& node,
IDTable& table);
137 virtual void Refresh(vk::raii::CommandBuffer& cmdBuf, std::shared_ptr<QueueHandle> queue);
185 sigc::signal<void()> signal_parametersChanged()
188 sigc::signal<void()> signal_inputsChanged()
Declaration of FilterParameter.
A parameter to a filter.
Definition: FilterParameter.h:86
Abstract base class for a node in the signal flow graph.
Definition: FlowGraphNode.h:54
void CreateInput(const std::string &name)
Creates and names an input signal.
Definition: FlowGraphNode.cpp:279
StreamDescriptor GetInput(size_t i)
Gets the descriptor for one of our inputs.
Definition: FlowGraphNode.cpp:249
bool HasParameter(std::string s)
Checks if we have a parameter with a given name.
Definition: FlowGraphNode.h:89
ParameterMapType::iterator GetParamEnd()
Returns an iterator to the end of our parameter map.
Definition: FlowGraphNode.h:97
ParameterMapType::iterator GetParamBegin()
Returns an iterator to the beginning of our parameter map.
Definition: FlowGraphNode.h:93
virtual YAML::Node SerializeConfiguration(IDTable &table)
Serializes this trigger's configuration to a YAML string.
Definition: FlowGraphNode.cpp:317
std::vector< StreamDescriptor > m_inputs
The channel (if any) connected to each of our inputs.
Definition: FlowGraphNode.h:178
sigc::signal< void()> m_parametersChangedSignal
Signal emitted when the set of parameters changes.
Definition: FlowGraphNode.h:194
SparseAnalogWaveform * GetSparseAnalogInputWaveform(size_t i)
Gets the analog waveform attached to the specified input.
Definition: FlowGraphNode.h:150
size_t GetParamCount()
Returns the number of parameter we have.
Definition: FlowGraphNode.h:101
SparseDigitalWaveform * GetSparseDigitalInputWaveform(size_t i)
Gets the digital waveform attached to the specified input.
Definition: FlowGraphNode.h:158
std::string GetInputDisplayName(size_t i)
Gets the display name for one of our inputs.
Definition: FlowGraphNode.cpp:265
WaveformBase * GetInputWaveform(size_t i)
Gets the waveform attached to the specified input.
Definition: FlowGraphNode_inlines.h:51
bool IsDownstreamOf(std::set< FlowGraphNode * > nodes)
Determines if this node is downstream of any of the specified other nodes.
Definition: FlowGraphNode.cpp:298
sigc::signal< void()> m_inputsChangedSignal
Signal emitted when the set of inputs changes.
Definition: FlowGraphNode.h:197
std::map< std::string, FilterParameter > ParameterMapType
Short name for a map of strings to parameters.
Definition: FlowGraphNode.h:80
std::vector< std::string > m_signalNames
Names of signals we take as input.
Definition: FlowGraphNode.h:175
UniformAnalogWaveform * GetUniformAnalogInputWaveform(size_t i)
Gets the analog waveform attached to the specified input.
Definition: FlowGraphNode.h:154
virtual void Refresh()
Evaluates a filter graph node.
Definition: FlowGraphNode.cpp:87
virtual void OnInputChanged(size_t i)
Called when a new input is connected to the node.
Definition: FlowGraphNode.cpp:149
void SetInput(size_t i, StreamDescriptor stream, bool force=false)
Connects a stream to the input of this node.
Definition: FlowGraphNode.cpp:161
virtual DataLocation GetInputLocation()
Gets the desired location of the nodes's input data.
Definition: FlowGraphNode.cpp:110
SparseDigitalBusWaveform * GetSparseDigitalBusInputWaveform(size_t i)
Gets the digital bus waveform attached to the specified input.
Definition: FlowGraphNode.h:166
UniformDigitalWaveform * GetUniformDigitalInputWaveform(size_t i)
Gets the digital waveform attached to the specified input.
Definition: FlowGraphNode.h:162
void DetachInputs()
Disconnects all inputs from the node without releasing them.
Definition: FlowGraphNode.cpp:72
virtual void LoadParameters(const YAML::Node &node, IDTable &table)
Load configuration from a save file.
Definition: FlowGraphNode.cpp:350
Bidirectional table mapping integer IDs in scopesession files to object pointers.
Definition: IDTable.h:49
A single channel on an oscilloscope.
Definition: OscilloscopeChannel.h:49
Descriptor for a single stream coming off a channel.
Definition: StreamDescriptor.h:46