X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FJack.cci;h=f40a3e9a761e5d5ef8b244545d7011fa03dce034;hb=164fe477094d42463722584e527a02379ab5d985;hp=143afe7a553a7a3da6d453bf158bda3eea826136;hpb=2eb3c777cc9db271336c226f4eeec6018c196c3e;p=senf.git diff --git a/PPI/Jack.cci b/PPI/Jack.cci index 143afe7..f40a3e9 100644 --- a/PPI/Jack.cci +++ b/PPI/Jack.cci @@ -33,46 +33,171 @@ prefix_ senf::ppi::connector::GenericActiveInputJack:: GenericActiveInputJack(GenericActiveInput & input) - : input_ (input) + : input_ (&input) {} prefix_ senf::ppi::connector::GenericActiveInput & senf::ppi::connector::GenericActiveInputJack::connector() { - return input_; + return *input_; +} + +prefix_ void senf::ppi::connector::GenericActiveInputJack::reset(GenericActiveInput & input) +{ + if (input_->connected()) { + GenericPassiveOutput & peer (input_->peer()); + input_->disconnect(); + connect(peer, input); + } + input_ = & input; } prefix_ senf::ppi::connector::GenericActiveOutputJack:: GenericActiveOutputJack(GenericActiveOutput & output) - : output_ (output) + : output_ (&output) {} prefix_ senf::ppi::connector::GenericActiveOutput & senf::ppi::connector::GenericActiveOutputJack::connector() { - return output_; + return *output_; +} + +prefix_ void senf::ppi::connector::GenericActiveOutputJack::reset(GenericActiveOutput & output) +{ + if (output_->connected()) { + GenericPassiveInput & peer (output_->peer()); + output_->disconnect(); + connect(output, peer); + } + output_ = & output; } prefix_ senf::ppi::connector::GenericPassiveInputJack:: GenericPassiveInputJack(GenericPassiveInput & input) - : input_ (input) + : input_ (&input) {} prefix_ senf::ppi::connector::GenericPassiveInput & senf::ppi::connector::GenericPassiveInputJack::connector() { - return input_; + return *input_; +} + +prefix_ void senf::ppi::connector::GenericPassiveInputJack::reset(GenericPassiveInput & input) +{ + if (input_->connected()) { + GenericActiveOutput & peer (input_->peer()); + input_->disconnect(); + connect(peer, input); + } + input_ = & input; } prefix_ senf::ppi::connector::GenericPassiveOutputJack:: GenericPassiveOutputJack(GenericPassiveOutput & output) - : output_ (output) + : output_ (&output) {} prefix_ senf::ppi::connector::GenericPassiveOutput & senf::ppi::connector::GenericPassiveOutputJack::connector() { - return output_; + return *output_; +} + +prefix_ void +senf::ppi::connector::GenericPassiveOutputJack::reset(GenericPassiveOutput & output) +{ + if (output_->connected()) { + GenericActiveInput & peer (output_->peer()); + output_->disconnect(); + connect(output, peer); + } + output_ = & output; +} + +prefix_ senf::ppi::connector::ActiveInputJack:: +ActiveInputJack(GenericActiveInput & input) + : GenericActiveInputJack (input) +{} + +prefix_ senf::ppi::connector::ActiveInputJack:: +ActiveInputJack(GenericActiveInputJack input) + : GenericActiveInputJack (input.connector()) +{} + +prefix_ void senf::ppi::connector::ActiveInputJack::reset(GenericActiveInput & input) +{ + GenericActiveInputJack::reset(input); +} + +prefix_ void senf::ppi::connector::ActiveInputJack::reset(GenericActiveInputJack input) +{ + GenericActiveInputJack::reset(input.connector()); +} + +prefix_ senf::ppi::connector::ActiveOutputJack:: +ActiveOutputJack(GenericActiveOutput & output) + : GenericActiveOutputJack (output) +{} + +prefix_ senf::ppi::connector::ActiveOutputJack:: +ActiveOutputJack(GenericActiveOutputJack & output) + : GenericActiveOutputJack (output.connector()) +{} + +prefix_ void senf::ppi::connector::ActiveOutputJack::reset(GenericActiveOutput & output) +{ + GenericActiveOutputJack::reset(output); +} + +prefix_ void +senf::ppi::connector::ActiveOutputJack::reset(GenericActiveOutputJack & output) +{ + GenericActiveOutputJack::reset(output.connector()); +} + +prefix_ senf::ppi::connector::PassiveInputJack:: +PassiveInputJack(GenericPassiveInput & input) + : GenericPassiveInputJack (input) +{} + +prefix_ senf::ppi::connector::PassiveInputJack:: +PassiveInputJack(GenericPassiveInputJack & input) + : GenericPassiveInputJack (input.connector()) +{} + +prefix_ void senf::ppi::connector::PassiveInputJack::reset(GenericPassiveInput & input) +{ + GenericPassiveInputJack::reset(input); +} + +prefix_ void +senf::ppi::connector::PassiveInputJack::reset(GenericPassiveInputJack & input) +{ + GenericPassiveInputJack::reset(input.connector()); +} + +prefix_ senf::ppi::connector::PassiveOutputJack:: +PassiveOutputJack(GenericPassiveOutput & output) + : GenericPassiveOutputJack (output) +{} + +prefix_ senf::ppi::connector::PassiveOutputJack:: +PassiveOutputJack(GenericPassiveOutputJack & output) + : GenericPassiveOutputJack (output.connector()) +{} + +prefix_ void +senf::ppi::connector::PassiveOutputJack::reset(GenericPassiveOutput & output) +{ + GenericPassiveOutputJack::reset(output); +} + +prefix_ void +senf::ppi::connector::PassiveOutputJack::reset(GenericPassiveOutputJack & output) +{ + GenericPassiveOutputJack::reset(output.connector()); } prefix_ void senf::ppi::connect(connector::GenericActiveOutputJack & source,