diff options
Diffstat (limited to 'src/DabMultiplexer.cpp')
| -rw-r--r-- | src/DabMultiplexer.cpp | 27 | 
1 files changed, 15 insertions, 12 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp index 3fe3078..90d3d02 100644 --- a/src/DabMultiplexer.cpp +++ b/src/DabMultiplexer.cpp @@ -67,11 +67,9 @@ const unsigned short BitRateTable[64] = {  };  DabMultiplexer::DabMultiplexer( -        std::shared_ptr<BaseRemoteController> rc,          boost::property_tree::ptree pt) :      RemoteControllable("mux"),      m_pt(pt), -    m_rc(rc),      timestamp(0),      MNSC_increment_time(false),      sync(0x49C5F8), @@ -79,8 +77,8 @@ DabMultiplexer::DabMultiplexer(      ensemble(std::make_shared<dabEnsemble>()),      fig_carousel(ensemble)  { -    RC_ADD_PARAMETER(carousel, -            "Set to 1 to use the new carousel"); +    RC_ADD_PARAMETER(frames, +            "Show number of frames generated [read-only]");  }  void DabMultiplexer::set_edi_config(const edi_configuration_t& new_edi_conf) @@ -135,10 +133,10 @@ void DabMultiplexer::set_edi_config(const edi_configuration_t& new_edi_conf)  // Run a set of checks on the configuration  void DabMultiplexer::prepare()  { -    parse_ptree(m_pt, ensemble, m_rc); +    parse_ptree(m_pt, ensemble); -    this->enrol_at(m_rc); -    ensemble->enrol_at(m_rc); +    rcs.enrol(this); +    rcs.enrol(ensemble.get());      prepare_subchannels();      prepare_services_components(); @@ -236,7 +234,7 @@ void DabMultiplexer::prepare_services_components()              throw MuxInitException();          } -        service->enrol_at(m_rc); +        rcs.enrol(service.get());          // Adjust components type for DAB+          while (component != ensemble->components.end()) { @@ -296,8 +294,7 @@ void DabMultiplexer::prepare_services_components()          component->packet.id = cur_packetid++; -        component->enrol_at(m_rc); - +        rcs.enrol(component);      }  } @@ -796,7 +793,12 @@ void DabMultiplexer::print_info(void)  void DabMultiplexer::set_parameter(const std::string& parameter,                 const std::string& value)  { -    if (0) { +    if (parameter == "frames") { +        stringstream ss; +        ss << "Parameter '" << parameter << +            "' of " << get_rc_name() << +            " is read-only"; +        throw ParameterError(ss.str());      }      else {          stringstream ss; @@ -810,7 +812,8 @@ void DabMultiplexer::set_parameter(const std::string& parameter,  const std::string DabMultiplexer::get_parameter(const std::string& parameter) const  {      stringstream ss; -    if (0) { +    if (parameter == "frames") { +        ss << currentFrame;      }      else {          ss << "Parameter '" << parameter <<  | 
