From cf7518d4a7ea2b2528a961f87e5559d7032af21f Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Sun, 16 Jun 2013 15:05:06 +0100 Subject: [PATCH] mpegts: add properties to network/mux for list of children --- src/input/mpegts/mpegts_mux.c | 21 +++++++++++++++ src/input/mpegts/mpegts_network.c | 44 +++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 26d1d2d4..bc92aa50 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -106,6 +106,20 @@ mpegts_mux_class_save ( idnode_t *self ) mm->mm_config_save(mm); } +static const void * +mpegts_mux_class_get_num_svc ( void *ptr ) +{ + static int n; + mpegts_mux_t *mm = ptr; + mpegts_service_t *s; + + n = 0; + LIST_FOREACH(s, &mm->mm_services, s_dvb_mux_link) + n++; + + return &n; +} + const idclass_t mpegts_mux_class = { .ic_class = "mpegts_mux", @@ -146,6 +160,13 @@ const idclass_t mpegts_mux_class = .opts = PO_RDONLY, .off = offsetof(mpegts_mux_t, mm_initial_scan_done), }, + { + .type = PT_INT, + .id = "num_svc", + .name = "# Services", + .opts = PO_RDONLY | PO_NOSAVE, + .get = mpegts_mux_class_get_num_svc, + }, {} } }; diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index 3dde5208..4b22d9c0 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -33,6 +33,36 @@ mpegts_network_class_save mn->mn_config_save(mn); } +static const void * +mpegts_network_class_get_num_mux ( void *ptr ) +{ + static int n; + mpegts_mux_t *mm; + mpegts_network_t *mn = ptr; + + n = 0; + LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) + n++; + + return &n; +} + +static const void * +mpegts_network_class_get_num_svc ( void *ptr ) +{ + static int n; + mpegts_mux_t *mm; + mpegts_service_t *s; + mpegts_network_t *mn = ptr; + + n = 0; + LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) + LIST_FOREACH(s, &mm->mm_services, s_dvb_mux_link) + n++; + + return &n; +} + const idclass_t mpegts_network_class = { .ic_class = "mpegts_network", @@ -63,6 +93,20 @@ const idclass_t mpegts_network_class = .name = "Skip Initial Scan", .off = offsetof(mpegts_network_t, mn_skipinitscan), }, + { + .type = PT_INT, + .id = "num_mux", + .name = "# Muxes", + .opts = PO_RDONLY | PO_NOSAVE, + .get = mpegts_network_class_get_num_mux, + }, + { + .type = PT_INT, + .id = "num_svc", + .name = "# Services", + .opts = PO_RDONLY | PO_NOSAVE, + .get = mpegts_network_class_get_num_svc, + }, {} } };