mpegts: added some additional routines for network setup
This commit is contained in:
parent
88e866b3f1
commit
38d4ffec95
4 changed files with 58 additions and 2 deletions
|
@ -390,6 +390,7 @@ struct mpegts_input
|
|||
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*);
|
||||
const idclass_t *(*mi_network_class) (mpegts_input_t *mi);
|
||||
};
|
||||
|
||||
#endif /* __TVH_MPEGTS_H__ */
|
||||
|
@ -404,6 +405,8 @@ extern mpegts_network_list_t mpegts_network_all;
|
|||
* Functions
|
||||
* ***************************************************************************/
|
||||
|
||||
extern mpegts_input_list_t mpegts_input_all;
|
||||
|
||||
mpegts_input_t *mpegts_input_create0
|
||||
( mpegts_input_t *mi, const idclass_t *idc, const char *uuid, htsmsg_t *c );
|
||||
|
||||
|
|
|
@ -127,6 +127,25 @@ const idclass_t linuxdvb_frontend_atsc_class =
|
|||
* Class methods
|
||||
* *************************************************************************/
|
||||
|
||||
static const idclass_t *
|
||||
linuxdvb_frontend_network_class ( mpegts_input_t *mi )
|
||||
{
|
||||
linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi;
|
||||
|
||||
switch (lfe->lfe_info.type) {
|
||||
case FE_QPSK:
|
||||
return &linuxdvb_frontend_dvbs_class;
|
||||
case FE_QAM:
|
||||
return &linuxdvb_frontend_dvbc_class;
|
||||
case FE_OFDM:
|
||||
return &linuxdvb_frontend_dvbt_class;
|
||||
case FE_ATSC:
|
||||
return &linuxdvb_frontend_atsc_class;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
linuxdvb_frontend_is_enabled ( mpegts_input_t *mi )
|
||||
{
|
||||
|
@ -672,6 +691,7 @@ linuxdvb_frontend_create0
|
|||
lfe->mi_open_service = linuxdvb_frontend_open_service;
|
||||
lfe->mi_close_service = linuxdvb_frontend_close_service;
|
||||
lfe->lfe_open_pid = linuxdvb_frontend_open_pid;
|
||||
lfe->mi_network_class = linuxdvb_frontend_network_class;
|
||||
|
||||
/* Adapter link */
|
||||
lfe->lh_parent = (linuxdvb_hardware_t*)la;
|
||||
|
|
|
@ -74,8 +74,10 @@ linuxdvb_hardware_class_get_childs ( idnode_t *in )
|
|||
return linuxdvb_hardware_enumerate(&((linuxdvb_hardware_t*)in)->lh_children);
|
||||
}
|
||||
|
||||
extern const idclass_t mpegts_input_class;
|
||||
const idclass_t linuxdvb_hardware_class =
|
||||
{
|
||||
.ic_super = &mpegts_input_class,
|
||||
.ic_class = "linuxdvb_hardware",
|
||||
.ic_caption = "LinuxDVB Hardware",
|
||||
.ic_get_title = linuxdvb_hardware_class_get_title,
|
||||
|
|
|
@ -30,13 +30,31 @@
|
|||
* Class definition
|
||||
* *************************************************************************/
|
||||
|
||||
static const char *
|
||||
mpegts_input_class_get_name ( void *in )
|
||||
{
|
||||
static char buf[256];
|
||||
mpegts_input_t *mi = in;
|
||||
if (mi->mi_display_name)
|
||||
mi->mi_display_name(mi, buf, sizeof(buf));
|
||||
else
|
||||
*buf = 0;
|
||||
return buf;
|
||||
}
|
||||
|
||||
const idclass_t mpegts_input_class =
|
||||
{
|
||||
.ic_class = "mpegts_input",
|
||||
.ic_caption = "MPEGTS Input",
|
||||
.ic_properties = (const property_t[]){
|
||||
{ PROPDEF1("enabled", "Enabled",
|
||||
PT_BOOL, mpegts_input_t, mi_enabled) },
|
||||
{
|
||||
PROPDEF1("enabled", "Enabled", PT_BOOL,
|
||||
mpegts_input_t, mi_enabled)
|
||||
},
|
||||
{
|
||||
PROPDEF0("displayname", "Name", PT_STR, PO_NOSAVE | PO_RDONLY),
|
||||
.str_get = mpegts_input_class_get_name
|
||||
},
|
||||
{}
|
||||
}
|
||||
};
|
||||
|
@ -45,6 +63,13 @@ const idclass_t mpegts_input_class =
|
|||
* Class methods
|
||||
* *************************************************************************/
|
||||
|
||||
static const idclass_t *
|
||||
mpegts_input_network_class (mpegts_input_t *mi)
|
||||
{
|
||||
extern const idclass_t mpegts_network_class;
|
||||
return &mpegts_network_class;
|
||||
}
|
||||
|
||||
static int
|
||||
mpegts_input_is_enabled ( mpegts_input_t *mi )
|
||||
{
|
||||
|
@ -263,6 +288,8 @@ mpegts_input_table_thread ( void *aux )
|
|||
* Creation/Config
|
||||
* *************************************************************************/
|
||||
|
||||
mpegts_input_list_t mpegts_input_all;
|
||||
|
||||
mpegts_input_t*
|
||||
mpegts_input_create0
|
||||
( mpegts_input_t *mi, const idclass_t *class, const char *uuid,
|
||||
|
@ -281,6 +308,7 @@ mpegts_input_create0
|
|||
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;
|
||||
|
||||
/* Init mutex */
|
||||
pthread_mutex_init(&mi->mi_delivery_mutex, NULL);
|
||||
|
@ -292,6 +320,9 @@ mpegts_input_create0
|
|||
/* Init input thread control */
|
||||
mi->mi_thread_pipe.rd = mi->mi_thread_pipe.wr = -1;
|
||||
|
||||
/* Add to global list */
|
||||
LIST_INSERT_HEAD(&mpegts_input_all, mi, mi_global_link);
|
||||
|
||||
return mi;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue