Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
trax::MultiPlug Struct Referenceabstract

A MultiPlug provides a variable number of actual Plugs to one input slot. More...

#include <C:/Trend/Development/Trax3/Code/trax/Plug.h>

Inheritance diagram for trax::MultiPlug:

Public Member Functions

virtual PlugMake (SocketRegistry *pRegistry=nullptr)=0
 Creates a clone for the plug.
virtual PlugUnplugged (SocketRegistry *pRegistry=nullptr)=0
virtual void Release (Plug &plug)=0
 Tells the MultiPlug that the plug clone is no longer needed.
virtual void Clear ()=0
 Releases all the clone plugs.
Public Member Functions inherited from trax::Plug
virtual const char * TypeName () const noexcept=0
virtual JackPlugged () const noexcept=0
 Is this Plug already plugged into a jack?
virtual bool IsCyclic () const noexcept=0
virtual const PlugTail () const =0
 receives the tail (last element) of a Plug chain.
virtual PlugTail ()=0
 receives the tail (last element) of a Plug chain.
virtual JackJackOnPulse () noexcept=0
 Get a Jack that triggers a pulse if the Plug receives a pulse.
virtual const JackJackOnPulse () const noexcept=0
 Get a Jack that triggers a pulse if the Plug receives a pulse.
virtual PlugEnumeratorParent () const noexcept=0
virtual void Remove () noexcept=0
Public Member Functions inherited from trax::Identified< Plug >
virtual const std::string & Reference (const std::string &name) const=0
 Gets a reference that was set for this object by name.
virtual const std::vector< char const * > & ReferenceNames (const std::string &namePart) const=0
 Searches for all reference names that countain namePart as substring in the name.
virtual IDType ID () const noexcept=0
 Identified (const Identified &)=delete
Identified & operator= (const Identified &)=delete
Public Member Functions inherited from trax::PlugEnumerator
virtual int CountPlugs () const =0
PlugGetPlug (int idx)
const PlugGetPlug (int idx) const

Protected Member Functions

virtual void Release () noexcept
Protected Member Functions inherited from trax::Plug
virtual void Pulse (bool) noexcept
virtual void ConnectTo (Jack &) noexcept
Protected Member Functions inherited from trax::PlugEnumerator
 PlugEnumerator (const PlugEnumerator &)=default
 PlugEnumerator (PlugEnumerator &&)=default
PlugEnumerator & operator= (const PlugEnumerator &)=default
PlugEnumerator & operator= (PlugEnumerator &&)=default
virtual const Plug_GetPlug (int idx) const =0
 to be implemented for an object that provides plugs.

Additional Inherited Members

Public Types inherited from trax::PlugEnumerator
typedef PlugEnumerator collection_type
typedef Plug value_type

Detailed Description

A MultiPlug provides a variable number of actual Plugs to one input slot.

If a clone plug gets pulsed it will pulse the base plug and thereby the target object.

Member Function Documentation

◆ Make()

virtual Plug & trax::MultiPlug::Make ( SocketRegistry * pRegistry = nullptr)
pure virtual

Creates a clone for the plug.

Parameters
pRegistryIf not nullptr, the function registers a plug clone
Returns
A reference to the newly created plug.

◆ Release() [1/2]

virtual void trax::Plug::Release ( )
inlineprotectedvirtualnoexcept

Reimplemented from trax::Plug.

◆ Release() [2/2]

virtual void trax::MultiPlug::Release ( Plug & plug)
pure virtual

Tells the MultiPlug that the plug clone is no longer needed.

This will invalidate the index assignment to all plug clones.

◆ Unplugged()

virtual Plug & trax::MultiPlug::Unplugged ( SocketRegistry * pRegistry = nullptr)
pure virtual
Returns
The base plug if it is free, otherwise a clone is created and returned.
Parameters
pRegistryIf not nullptr, the function registers a plug clone

The documentation for this struct was generated from the following file:
  • C:/Trend/Development/Trax3/Code/trax/Plug.h