]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvhpoll: add event helpers, code cleanups
authorJaroslav Kysela <perex@perex.cz>
Thu, 31 Oct 2019 14:33:17 +0000 (15:33 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Oct 2019 14:33:17 +0000 (15:33 +0100)
src/input/mpegts/satip/satip_frontend.c
src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c
src/spawn.c
src/timeshift/timeshift_reader.c
src/tvhpoll.h
src/upnp.c

index c11a1c76609f4cd543a33c443620387f3b480b03..5b0057c82d72f460baf542d0d113686ddbc9baa5 100644 (file)
@@ -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) {
index 03f021d34253997f8b6728199c45d84add5cb0cc..bee3df6b055df62c1dac9b64fb97e94f9d7824dc 100644 (file)
@@ -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)
index b6ccb41f97a9f9615c99cffe9404cd981c0b82f9..516168f6a933e8962b74eb94794d3119ad453a09 100644 (file)
@@ -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)) {
index 6867cff713238651391452c5b33ee365b044905f..6339a948550b8f36207eb38372780331f1d78814 100644 (file)
@@ -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) {
index 8f3b74b78b31190dff3fc421be460fb7a95426ac..a76970b90247c33f860390fcd011a0e864d367a3 100644 (file)
@@ -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);
index 8623da1e6251b181454ef94746d9d181679e2538..8842aab32f4329e72aa26d436373dd7a4880012f 100644 (file)
@@ -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;