This was due to failure to properly reported which adapters have
been enabled. There are other problems with the capmt setup code
that really need addressing, but I don't have the time right now!
if (bind(*socket, (const struct sockaddr*)&serv_addr, sizeof(serv_addr)) != 0)
{
- perror("[CapmtServer] ERROR binding to ca0");
+ tvherror("capmt", "failed to bind to ca0 (port %d)", port);
return 0;
}
else
return 0;
}
+/*
+ * Enabled
+ */
+static int
+linuxdvb_adapter_is_enabled ( mpegts_input_t *mi )
+{
+ linuxdvb_adapter_t *la = (linuxdvb_adapter_t*)mi;
+ linuxdvb_hardware_t *lh;
+
+ LIST_FOREACH(lh, &la->lh_children, lh_parent_link)
+ if (lh->mi_is_enabled && lh->mi_is_enabled((mpegts_input_t*)lh))
+ return 1;
+ return 0;
+}
+
/*
* Create
*/
}
LIST_INSERT_HEAD(&ld->lh_children, (linuxdvb_hardware_t*)la, lh_parent_link);
- la->lh_parent = (linuxdvb_hardware_t*)ld;
- la->mi_enabled = 1;
+ la->lh_parent = (linuxdvb_hardware_t*)ld;
+ la->mi_is_enabled = linuxdvb_adapter_is_enabled;
+ la->mi_enabled = 1;
/* No conf */
if (!conf)