void (*mi_stop_mux) (mpegts_input_t*,mpegts_mux_instance_t*);
void (*mi_open_service) (mpegts_input_t*,mpegts_service_t*);
void (*mi_close_service) (mpegts_input_t*,mpegts_service_t*);
+ void (*mi_create_mux_instance) (mpegts_input_t*,mpegts_mux_t*);
const idclass_t *(*mi_network_class) (mpegts_input_t *mi);
mpegts_network_t *(*mi_network_create) (mpegts_input_t *mi, htsmsg_t *c);
};
static void
linuxdvb_mux_create_instances ( mpegts_mux_t *mm )
{
- extern const idclass_t mpegts_mux_instance_class;
mpegts_input_t *mi;
- mpegts_mux_instance_t *mmi;
- LIST_FOREACH(mi, &mm->mm_network->mn_inputs, mi_network_link) {
- LIST_FOREACH(mmi, &mi->mi_mux_instances, mmi_input_link)
- if (mmi->mmi_mux == mm) break;
- if (!mmi)
- mmi = mpegts_mux_instance_create(mpegts_mux_instance, NULL, mi, mm);
- // TODO: we might eventually want to keep history!
- }
+ LIST_FOREACH(mi, &mm->mm_network->mn_inputs, mi_network_link)
+ mi->mi_create_mux_instance(mi, mm);
}
static void
{
}
+static void
+mpegts_input_create_mux_instance
+ ( mpegts_input_t *mi, mpegts_mux_t *mm )
+{
+ extern const idclass_t mpegts_mux_instance_class;
+ mpegts_mux_instance_t *mmi;
+ LIST_FOREACH(mmi, &mi->mi_mux_instances, mmi_input_link)
+ if (mmi->mmi_mux == mm) break;
+ if (!mmi)
+ (void)mpegts_mux_instance_create(mpegts_mux_instance, NULL, mi, mm);
+}
+
/* **************************************************************************
* Data processing
* *************************************************************************/
idnode_load(&mi->mi_id, c);
/* Defaults */
- mi->mi_is_enabled = mpegts_input_is_enabled;
- mi->mi_display_name = mpegts_input_display_name;
- mi->mi_is_free = mpegts_input_is_free;
- mi->mi_current_weight = mpegts_input_current_weight;
- mi->mi_start_mux = mpegts_input_start_mux;
- mi->mi_stop_mux = mpegts_input_stop_mux;
- mi->mi_open_service = mpegts_input_open_service;
- mi->mi_close_service = mpegts_input_close_service;
- mi->mi_network_class = mpegts_input_network_class;
- mi->mi_network_create = mpegts_input_network_create;
+ mi->mi_is_enabled = mpegts_input_is_enabled;
+ mi->mi_display_name = mpegts_input_display_name;
+ mi->mi_is_free = mpegts_input_is_free;
+ mi->mi_current_weight = mpegts_input_current_weight;
+ mi->mi_start_mux = mpegts_input_start_mux;
+ mi->mi_stop_mux = mpegts_input_stop_mux;
+ mi->mi_open_service = mpegts_input_open_service;
+ mi->mi_close_service = mpegts_input_close_service;
+ mi->mi_network_class = mpegts_input_network_class;
+ mi->mi_network_create = mpegts_input_network_create;
+ mi->mi_create_mux_instance = mpegts_input_create_mux_instance;
/* Index */
mi->mi_instance = ++mpegts_input_idx;