X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FJack.hh;h=9d5718677adc4b34f694aae74c4a48d6308360ed;hb=d1d92fb783dc558dcf7bdc34ee933c10e1c8d227;hp=03c32782c7c7f6a4245b72db1311fe1857915df7;hpb=d677b6337f001480fccd73889bab3d62e719826b;p=senf.git diff --git a/PPI/Jack.hh b/PPI/Jack.hh index 03c3278..9d57186 100644 --- a/PPI/Jack.hh +++ b/PPI/Jack.hh @@ -30,6 +30,7 @@ #include #include #include "Connectors.hh" +#include "Setup.hh" //#include "Jack.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -41,7 +42,7 @@ namespace connector { /** \brief Connector Jack base class \see \ref ppi_jacks */ class Jack - : private boost::noncopyable + : private boost::noncopyable, private ppi::detail::DisableStandardConnect {}; /** \brief Jack referencing an ActiveInput @@ -54,8 +55,11 @@ namespace connector { GenericActiveInput & connector(); ///< Get referenced connector + void reset(GenericActiveInput & input); ///< Change connector + /**< Will update any existing connection accordingly */ + private: - GenericActiveInput & input_; + GenericActiveInput * input_; }; /** \brief Jack referencing an ActiveOutput @@ -68,8 +72,11 @@ namespace connector { GenericActiveOutput & connector(); ///< Get referenced connector + void reset(GenericActiveOutput & output); ///< Change connector + /**< Will update any existing connection accordingly */ + private: - GenericActiveOutput & output_; + GenericActiveOutput * output_; }; /** \brief Jack referencing a PassiveInput @@ -82,8 +89,11 @@ namespace connector { GenericPassiveInput & connector(); ///< Get referenced connector + void reset(GenericPassiveInput & input); ///< Change connector + /**< Will update any existing connection accordingly */ + private: - GenericPassiveInput & input_; + GenericPassiveInput * input_; }; /** \brief Jack referencing a PassiveOutput @@ -96,8 +106,11 @@ namespace connector { GenericPassiveOutput & connector(); ///< Get referenced connector + void reset(GenericPassiveOutput & output); ///< Change connector + /**< Will update any existing connection accordingly */ + private: - GenericPassiveOutput & output_; + GenericPassiveOutput * output_; }; /** \brief Jack with packet type referencing an ActiveInput @@ -112,6 +125,12 @@ namespace connector { explicit ActiveInputJack(ActiveInputJack & input); explicit ActiveInputJack(ActiveInputJack<> & input); + + void reset(ActiveInput & input); + void reset(ActiveInput<> & input); + + void reset(ActiveInputJack & input); + void reset(ActiveInputJack<> & input); }; #ifndef DOXYGEN @@ -121,8 +140,11 @@ namespace connector { : public GenericActiveInputJack { public: - explicit ActiveInputJack(ActiveInput<> & input); - explicit ActiveInputJack(ActiveInputJack & input); + explicit ActiveInputJack(GenericActiveInput & input); + explicit ActiveInputJack(GenericActiveInputJack input); + + void reset(GenericActiveInput & input); + void reset(GenericActiveInputJack input); }; #endif @@ -139,6 +161,12 @@ namespace connector { explicit ActiveOutputJack(ActiveOutputJack & output); explicit ActiveOutputJack(ActiveOutputJack<> & output); + + void reset(ActiveOutput & output); + void reset(ActiveOutput<> & output); + + void reset(ActiveOutputJack & output); + void reset(ActiveOutputJack<> & output); }; #ifndef DOXYGEN @@ -148,8 +176,11 @@ namespace connector { : public GenericActiveOutputJack { public: - explicit ActiveOutputJack(ActiveOutput<> & output); - explicit ActiveOutputJack(ActiveOutputJack & output); + explicit ActiveOutputJack(GenericActiveOutput & output); + explicit ActiveOutputJack(GenericActiveOutputJack & output); + + void reset(GenericActiveOutput & output); + void reset(GenericActiveOutputJack & output); }; #endif @@ -166,6 +197,12 @@ namespace connector { explicit PassiveInputJack(PassiveInputJack & input); explicit PassiveInputJack(PassiveInputJack<> & input); + + void reset(PassiveInput & input); + void reset(PassiveInput<> & input); + + void reset(PassiveInputJack & input); + void reset(PassiveInputJack<> & input); }; #ifndef DOXYGEN @@ -175,8 +212,11 @@ namespace connector { : public GenericPassiveInputJack { public: - explicit PassiveInputJack(PassiveInput<> & input); - explicit PassiveInputJack(PassiveInputJack & input); + explicit PassiveInputJack(GenericPassiveInput & input); + explicit PassiveInputJack(GenericPassiveInputJack & input); + + void reset(GenericPassiveInput & input); + void reset(GenericPassiveInputJack & input); }; #endif @@ -193,6 +233,12 @@ namespace connector { explicit PassiveOutputJack(PassiveOutputJack & output); explicit PassiveOutputJack(PassiveOutputJack<> & output); + + void reset(PassiveOutput & output); + void reset(PassiveOutput<> & output); + + void reset(PassiveOutputJack & output); + void reset(PassiveOutputJack<> & output); }; #ifndef DOXYGEN @@ -202,8 +248,11 @@ namespace connector { : public GenericPassiveOutputJack { public: - explicit PassiveOutputJack(PassiveOutput<> & output); - explicit PassiveOutputJack(PassiveOutputJack & output); + explicit PassiveOutputJack(GenericPassiveOutput & output); + explicit PassiveOutputJack(GenericPassiveOutputJack & output); + + void reset(GenericPassiveOutput & output); + void reset(GenericPassiveOutputJack & output); }; #endif