From: Robert Cameron Date: Sun, 20 May 2018 19:13:42 +0000 (-0700) Subject: Refactor dvb_cabelcard_config.num/.minor -> .vchannel X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfa75511399ed44cd50d1e507cf720615c3f0624;p=thirdparty%2Ftvheadend.git Refactor dvb_cabelcard_config.num/.minor -> .vchannel --- diff --git a/src/input/mpegts/dvb.h b/src/input/mpegts/dvb.h index 86bc82fd8..6d894b2ac 100644 --- a/src/input/mpegts/dvb.h +++ b/src/input/mpegts/dvb.h @@ -617,8 +617,7 @@ typedef struct dvb_isdbt_config { } dvb_isdbt_config_t; typedef struct dvb_cablecard_config { - uint32_t num; - uint16_t minor; + uint32_t vchannel; char *name; } dvb_cablecard_config_t; diff --git a/src/input/mpegts/dvb_support.c b/src/input/mpegts/dvb_support.c index 77749c5fd..6c0d542a1 100644 --- a/src/input/mpegts/dvb_support.c +++ b/src/input/mpegts/dvb_support.c @@ -1088,15 +1088,9 @@ dvb_mux_conf_str_atsc_t ( dvb_mux_conf_t *dmc, char *buf, size_t bufsize ) static int dvb_mux_conf_str_cablecard(dvb_mux_conf_t *dmc, char *buf, size_t bufsize) { - if (!dmc->u.dmc_fe_cablecard.minor) - return snprintf(buf, bufsize, "%s channel %u", + return snprintf(buf, bufsize, "%s channel %u", dvb_type2str(dmc->dmc_fe_type), - dmc->u.dmc_fe_cablecard.num); - else - return snprintf(buf, bufsize, "%s channel %u.%u", - dvb_type2str(dmc->dmc_fe_type), - dmc->u.dmc_fe_cablecard.num, - dmc->u.dmc_fe_cablecard.minor); + dmc->u.dmc_fe_cablecard.vchannel); } static int diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index c5dea809d..185cdeb6f 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -129,39 +129,6 @@ dvb_mux_class_delsys_set (void *o, const void *v) return 0; } -static const void * -dvb_mux_class_vchan_get(void *o) -{ - dvb_mux_t *lm = (dvb_mux_t *)o; - - if (!lm->lm_tuning.u.dmc_fe_cablecard.minor) - snprintf(prop_sbuf, PROP_SBUF_LEN, "%u", - lm->lm_tuning.u.dmc_fe_cablecard.num); - else - snprintf(prop_sbuf, PROP_SBUF_LEN, "%u.%u", - lm->lm_tuning.u.dmc_fe_cablecard.num, - lm->lm_tuning.u.dmc_fe_cablecard.minor); - return &prop_sbuf_ptr; -} - -static int -dvb_mux_class_vchan_set(void *o, const void *v) -{ - dvb_mux_t *lm = (dvb_mux_t *)o; - int r; - - r = sscanf(v, "%u%*[.-]%hu", - &lm->lm_tuning.u.dmc_fe_cablecard.num, - &lm->lm_tuning.u.dmc_fe_cablecard.minor); - switch (r) { - case 0: - return 1; - case 1: - lm->lm_tuning.u.dmc_fe_cablecard.minor = 0; - } - return 0; -} - const idclass_t dvb_mux_class = { .ic_super = &mpegts_mux_class, @@ -657,12 +624,11 @@ const idclass_t dvb_mux_cablecard_class = .ic_caption = N_("CableCARD multiplex"), .ic_properties = (const property_t[]){ { - .type = PT_STR, + .type = PT_U32, .id = "vchan", .name = N_("Channel"), .desc = N_("The channel on the cable provider's network."), - .get = dvb_mux_class_vchan_get, - .set = dvb_mux_class_vchan_set, + .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_cablecard.vchannel), }, { .type = PT_U32, @@ -1120,14 +1086,9 @@ dvb_mux_display_name ( mpegts_mux_t *mm, char *buf, size_t len ) uint32_t freq = lm->lm_tuning.dmc_fe_freq, freq2; char extra[8], buf2[5], *p; - if (lm->lm_tuning.dmc_fe_type == DVB_TYPE_CABLECARD) { - if (!lm->lm_tuning.u.dmc_fe_cablecard.minor) - snprintf(buf, len, "%u", lm->lm_tuning.u.dmc_fe_cablecard.num); - else - snprintf(buf, len, "%u.%u", - lm->lm_tuning.u.dmc_fe_cablecard.num, - lm->lm_tuning.u.dmc_fe_cablecard.minor); - } else { + if (lm->lm_tuning.dmc_fe_type == DVB_TYPE_CABLECARD) + snprintf(buf, len, "%u", lm->lm_tuning.u.dmc_fe_cablecard.vchannel); + else { if (ln->ln_type == DVB_TYPE_S) { const char *s = dvb_pol2str(lm->lm_tuning.u.dmc_fe_qpsk.polarisation); if (s) extra[0] = *s; diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 503723989..63517efa3 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -47,7 +47,7 @@ dvb_network_class_delete ( idnode_t *in ) char ubuf[UUID_HEX_SIZE]; /* remove config */ - hts_settings_remove("input/dvb/networks/%s", + hts_settings_remove("input/dvb/networks/%s", idnode_uuid_as_str(in, ubuf)); /* Parent delete */ @@ -855,9 +855,7 @@ dvb_network_create_service if (!s->s_dvb_provider && ln->mn_provider_network_name) s->s_dvb_provider = strdup(ln->mn_provider_network_name); if (!s->s_dvb_channel_num) - s->s_dvb_channel_num = lm->lm_tuning.u.dmc_fe_cablecard.num; - if (!s->s_dvb_channel_minor && lm->lm_tuning.u.dmc_fe_cablecard.minor) - s->s_dvb_channel_minor = lm->lm_tuning.u.dmc_fe_cablecard.minor; + s->s_dvb_channel_num = lm->lm_tuning.u.dmc_fe_cablecard.vchannel; if (!s->s_dvb_svcname && lm->lm_tuning.u.dmc_fe_cablecard.name) s->s_dvb_svcname = strdup(lm->lm_tuning.u.dmc_fe_cablecard.name); } @@ -898,7 +896,7 @@ dvb_network_create0 if (!(ln = (dvb_network_t*)mpegts_network_create0((void*)ln, idc, uuid, NULL, conf))) return NULL; - + /* Callbacks */ ln->mn_create_mux = dvb_network_create_mux; ln->mn_create_service = dvb_network_create_service; @@ -984,7 +982,7 @@ void dvb_network_init ( void ) for (i = 0; i < ARRAY_SIZE(dvb_network_classes); i++) mpegts_network_register_builder(dvb_network_classes[i], dvb_network_builder); - + /* Load settings */ if (!(c = hts_settings_load_r(1, "input/dvb/networks"))) return; diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index e14498a09..b872db892 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -434,12 +434,7 @@ static int tvhdhomerun_frontend_tune(tvhdhomerun_frontend_t *hfe, mpegts_mux_ins } break; case DVB_TYPE_CABLECARD: - if (!dmc->u.dmc_fe_cablecard.minor) - snprintf(channel_buf, sizeof(channel_buf), "%u", dmc->u.dmc_fe_cablecard.num); - else - snprintf(channel_buf, sizeof(channel_buf), "%u.%u", - dmc->u.dmc_fe_cablecard.num, - dmc->u.dmc_fe_cablecard.minor); + snprintf(channel_buf, sizeof(channel_buf), "%u", dmc->u.dmc_fe_cablecard.vchannel); break; default: snprintf(channel_buf, sizeof(channel_buf), "auto:%u", dmc->dmc_fe_freq);