tvh_write(lfe->lfe_dvr_pipe.wr, "c", 1);
}
+static void
+linuxdvb_frontend_create_mux_instance
+ ( mpegts_input_t *mi, mpegts_mux_t *mm )
+{
+ tvh_hardware_t *th;
+ linuxdvb_adapter_t *la;
+ linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t *)mi, *lfe2;
+ char ubuf[UUID_HEX_SIZE];
+
+ idnode_uuid_as_str(&lfe->ti_id, ubuf);
+ mpegts_input_create_mux_instance(mi, mm);
+ /* create the instances for the slaves */
+ LIST_FOREACH(th, &tvh_hardware, th_link) {
+ if (!idnode_is_instance(&th->th_id, &linuxdvb_adapter_class)) continue;
+ la = (linuxdvb_adapter_t*)th;
+ LIST_FOREACH(lfe2, &la->la_frontends, lfe_link)
+ if (lfe2->lfe_master && strcmp(lfe2->lfe_master, ubuf) == 0)
+ mpegts_input_create_mux_instance((mpegts_input_t *)lfe2, mm);
+ }
+}
+
static idnode_set_t *
linuxdvb_frontend_network_list ( mpegts_input_t *mi )
{
lfe->lfe_dvr_path = strdup(dvr_path);
/* Input callbacks */
- lfe->ti_wizard_get = linuxdvb_frontend_wizard_get;
- lfe->ti_wizard_set = linuxdvb_frontend_wizard_set;
- lfe->mi_is_enabled = linuxdvb_frontend_is_enabled;
- lfe->mi_warm_mux = linuxdvb_frontend_warm_mux;
- lfe->mi_start_mux = linuxdvb_frontend_start_mux;
- lfe->mi_stop_mux = linuxdvb_frontend_stop_mux;
- lfe->mi_network_list = linuxdvb_frontend_network_list;
- lfe->mi_update_pids = linuxdvb_frontend_update_pids;
- lfe->mi_enabled_updated = linuxdvb_frontend_enabled_updated;
- lfe->mi_empty_status = mpegts_input_empty_status;
+ lfe->ti_wizard_get = linuxdvb_frontend_wizard_get;
+ lfe->ti_wizard_set = linuxdvb_frontend_wizard_set;
+ lfe->mi_is_enabled = linuxdvb_frontend_is_enabled;
+ lfe->mi_warm_mux = linuxdvb_frontend_warm_mux;
+ lfe->mi_start_mux = linuxdvb_frontend_start_mux;
+ lfe->mi_stop_mux = linuxdvb_frontend_stop_mux;
+ lfe->mi_network_list = linuxdvb_frontend_network_list;
+ lfe->mi_update_pids = linuxdvb_frontend_update_pids;
+ lfe->mi_create_mux_instance = linuxdvb_frontend_create_mux_instance;
+ lfe->mi_enabled_updated = linuxdvb_frontend_enabled_updated;
+ lfe->mi_empty_status = mpegts_input_empty_status;
/* Adapter link */
lfe->lfe_adapter = la;
s->s_dvb_mux->mm_stop(s->s_dvb_mux, 0, SM_CODE_OK);
}
-static void
+void
mpegts_input_create_mux_instance
( mpegts_input_t *mi, mpegts_mux_t *mm )
{
LIST_FOREACH(tii, &mi->mi_mux_instances, tii_input_link)
if (((mpegts_mux_instance_t *)tii)->mmi_mux == mm) break;
if (!tii)
- (void)mpegts_mux_instance_create(mpegts_mux_instance, NULL, mi, mm);
+ mpegts_mux_instance_create(mpegts_mux_instance, NULL, mi, mm);
}
static void