summaryrefslogtreecommitdiffstats
path: root/src/DabMultiplexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/DabMultiplexer.cpp')
-rw-r--r--src/DabMultiplexer.cpp27
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 <<