From 3fec2653ff0b9f651eb48de1929c4f447a391d99 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Thu, 26 Sep 2013 23:09:38 +0100 Subject: [PATCH] service: some additional fields as per user request --- src/input/mpegts/mpegts_service.c | 22 +++++++++++++++++++++- src/service.c | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 3e84d82f..dfaa1a2d 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -41,12 +41,32 @@ mpegts_service_class_get_mux ( void *ptr ) return &s; } +static const void * +mpegts_service_class_get_network ( void *ptr ) +{ + static char buf[512], *s = buf; + mpegts_service_t *ms = ptr; + mpegts_network_t *mn = ms->s_dvb_mux ? ms->s_dvb_mux->mm_network : NULL; + if (mn && mn->mn_display_name) + mn->mn_display_name(mn, buf, sizeof(buf)); + else + *buf = 0; + return &s; +} + const idclass_t mpegts_service_class = { .ic_super = &service_class, .ic_class = "mpegts_service", .ic_caption = "MPEGTS Service", .ic_properties = (const property_t[]){ + { + .type = PT_STR, + .id = "network", + .name = "Network", + .opts = PO_RDONLY | PO_NOSAVE, + .get = mpegts_service_class_get_network, + }, { .type = PT_STR, .id = "multiplex", @@ -93,7 +113,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "dvb_servicetype", .name = "Service Type", - .opts = PO_RDONLY || PO_HIDDEN, + .opts = PO_RDONLY | PO_HIDDEN, .off = offsetof(mpegts_service_t, s_dvb_servicetype), }, { diff --git a/src/service.c b/src/service.c index c8b3748a..61539006 100644 --- a/src/service.c +++ b/src/service.c @@ -150,6 +150,17 @@ service_class_get_title ( idnode_t *self ) return ret; } +static const void * +service_class_encrypted_get ( void *p ) +{ + static int t; + service_t *s = p; + pthread_mutex_lock(&s->s_stream_mutex); + t = service_is_encrypted(s); + pthread_mutex_unlock(&s->s_stream_mutex); + return &t; +} + const idclass_t service_class = { .ic_class = "service", .ic_caption = "Service", @@ -173,6 +184,13 @@ const idclass_t service_class = { .rend = service_class_channel_rend, .opts = PO_NOSAVE }, + { + .type = PT_BOOL, + .id = "encrypted", + .name = "Encrypted", + .get = service_class_encrypted_get, + .opts = PO_NOSAVE | PO_RDONLY + }, {} } };