From: Jaroslav Kysela Date: Thu, 31 Oct 2019 14:33:17 +0000 (+0100) Subject: tvhpoll: add event helpers, code cleanups X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=912078267423fd54d52ee31e645cc778323fdd2b;p=thirdparty%2Ftvheadend.git tvhpoll: add event helpers, code cleanups --- diff --git a/src/input/mpegts/satip/satip_frontend.c b/src/input/mpegts/satip/satip_frontend.c index c11a1c766..5b0057c82 100644 --- a/src/input/mpegts/satip/satip_frontend.c +++ b/src/input/mpegts/satip/satip_frontend.c @@ -1832,27 +1832,16 @@ new_tune: } /* Setup poll */ - memset(ev, 0, sizeof(ev)); nfds = 0; if ((rtsp_flags & SATIP_SETUP_TCP) == 0) { - ev[nfds].events = TVHPOLL_IN; - ev[nfds].fd = rtp->fd; - ev[nfds].ptr = rtp; - nfds++; - ev[nfds].events = TVHPOLL_IN; - ev[nfds].fd = rtcp->fd; - ev[nfds].ptr = rtcp; - nfds++; + tvhpoll_event(&ev[nfds++], rtp->fd, TVHPOLL_IN, rtp); + tvhpoll_event(&ev[nfds++], rtcp->fd, TVHPOLL_IN, rtcp); } else { rtsp->hc_io_size = 128 * 1024; rtsp->hc_rtp_data_received = satip_frontend_rtp_data_received; } - if (i) { - ev[nfds].events = TVHPOLL_IN; - ev[nfds].fd = rtsp->hc_fd; - ev[nfds].ptr = rtsp; - nfds++; - } + if (i) + tvhpoll_event(&ev[nfds++], rtsp->hc_fd, TVHPOLL_IN, rtsp); tvhpoll_add(efd, ev, nfds); rtsp->hc_efd = efd; @@ -2125,13 +2114,12 @@ new_tune: udp_multirecv_free(&um); lfe->sf_curmux = NULL; - memset(ev, 0, sizeof(ev)); nfds = 0; if ((rtsp_flags & SATIP_SETUP_TCP) == 0) { - ev[nfds++].fd = rtp->fd; - ev[nfds++].fd = rtcp->fd; + tvhpoll_event1(&ev[nfds++], rtp->fd); + tvhpoll_event1(&ev[nfds++], rtcp->fd); } - ev[nfds++].fd = lfe->sf_dvr_pipe.rd; + tvhpoll_event1(&ev[nfds++], lfe->sf_dvr_pipe.rd); tvhpoll_rem(efd, ev, nfds); if (exit_flag) { diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index 03f021d34..bee3df6b0 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -171,13 +171,9 @@ tvhdhomerun_frontend_input_thread ( void *aux ) /* the poll set includes the sockfd and the pipe for IPC */ efd = tvhpoll_create(2); - memset(ev, 0, sizeof(ev)); - ev[0].events = TVHPOLL_IN; - ev[0].fd = sockfd; - ev[0].ptr = hfe; - ev[1].events = TVHPOLL_IN; - ev[1].fd = hfe->hf_input_thread_pipe.rd; - ev[1].ptr = &hfe->hf_input_thread_pipe; + tvhpoll_event(ev+0, sockfd, TVHPOLL_IN, hfe); + tvhpoll_event(ev+1, hfe->hf_input_thread_pipe.rd, TVHPOLL_IN, + &hfe->hf_input_thread_pipe); r = tvhpoll_add(efd, ev, 2); if(r < 0) diff --git a/src/spawn.c b/src/spawn.c index b6ccb41f9..516168f6a 100644 --- a/src/spawn.c +++ b/src/spawn.c @@ -119,13 +119,8 @@ spawn_pipe_thread(void *aux) tvhpoll_t *efd = tvhpoll_create(2); int nfds; - memset(ev, 0, sizeof(ev)); - ev[0].events = TVHPOLL_IN; - ev[0].fd = spawn_pipe_info.rd; - ev[0].ptr = &spawn_pipe_info; - ev[1].events = TVHPOLL_IN; - ev[1].fd = spawn_pipe_error.rd; - ev[1].ptr = &spawn_pipe_error; + tvhpoll_event(ev+0, spawn_pipe_info.rd, TVHPOLL_IN, &spawn_pipe_info); + tvhpoll_event(ev+1, spawn_pipe_error.rd, TVHPOLL_IN, &spawn_pipe_error); tvhpoll_add(efd, ev, 2); while (atomic_get(&spawn_pipe_running)) { diff --git a/src/timeshift/timeshift_reader.c b/src/timeshift/timeshift_reader.c index 6867cff71..6339a9485 100644 --- a/src/timeshift/timeshift_reader.c +++ b/src/timeshift/timeshift_reader.c @@ -541,9 +541,7 @@ void *timeshift_reader ( void *p ) tvhpoll_event_t ev = { 0 }; pd = tvhpoll_create(1); - ev.fd = ts->rd_pipe.rd; - ev.events = TVHPOLL_IN; - tvhpoll_add(pd, &ev, 1); + tvhpoll_add1(pd, ts->rd_pipe.rd, TVHPOLL_IN, NULL); /* Output */ while (run) { diff --git a/src/tvhpoll.h b/src/tvhpoll.h index 8f3b74b78..a76970b90 100644 --- a/src/tvhpoll.h +++ b/src/tvhpoll.h @@ -38,6 +38,19 @@ typedef struct tvhpoll_event #define TVHPOLL_ERR 0x08 #define TVHPOLL_HUP 0x10 +static inline +tvhpoll_event_t *tvhpoll_event + (tvhpoll_event_t *ev, int fd, uint32_t events, void *ptr) +{ + ev->fd = fd; ev->events = events; ev->ptr = ptr; return ev; +} + +static inline +tvhpoll_event_t *tvhpoll_event1(tvhpoll_event_t *ev, int fd) +{ + ev->fd = fd; ev->events = 0; ev->ptr = NULL; return ev; +} + tvhpoll_t *tvhpoll_create(size_t num); void tvhpoll_destroy(tvhpoll_t *tp); void tvhpoll_set_trace(tvhpoll_t *tp, int subsys, int trace); diff --git a/src/upnp.c b/src/upnp.c index 8623da1e6..8842aab32 100644 --- a/src/upnp.c +++ b/src/upnp.c @@ -138,13 +138,8 @@ upnp_thread( void *aux ) if (unicast == NULL || unicast == UDP_FATAL_ERROR) goto error; - memset(&ev, 0, sizeof(ev)); - ev[0].fd = multicast->fd; - ev[0].events = TVHPOLL_IN; - ev[0].ptr = multicast; - ev[1].fd = unicast->fd; - ev[1].events = TVHPOLL_IN; - ev[1].ptr = unicast; + tvhpoll_event(ev+0, multicast->fd, TVHPOLL_IN, multicast); + tvhpoll_event(ev+1, unicast->fd, TVHPOLL_IN, unicast); tvhpoll_add(poll, ev, 2); delay_ms = 0;