FreeCalypso > hg > themwi-interim
comparison mtctest/main.c @ 8:a902ccbf6bbc
mtctest: introduce general user command structure
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Jun 2024 02:48:55 +0000 |
parents | 33d8b3177540 |
children | 395c56969bc4 |
comparison
equal
deleted
inserted
replaced
7:d0b86b144577 | 8:a902ccbf6bbc |
---|---|
11 #include <syslog.h> | 11 #include <syslog.h> |
12 #include <unistd.h> | 12 #include <unistd.h> |
13 #include <themwi/rtp/rtp_alloc_simple.h> | 13 #include <themwi/rtp/rtp_alloc_simple.h> |
14 | 14 |
15 extern int mtc_socket; | 15 extern int mtc_socket; |
16 extern int disconnect_mode; | |
17 extern struct rtp_alloc_simple rtp_info; | 16 extern struct rtp_alloc_simple rtp_info; |
18 | 17 |
19 struct timeval cur_event_time; | 18 struct timeval cur_event_time; |
20 | |
21 static void | |
22 drain_stdin() | |
23 { | |
24 char buf[256]; | |
25 | |
26 read(0, buf, sizeof buf); | |
27 } | |
28 | 19 |
29 main(argc, argv) | 20 main(argc, argv) |
30 char **argv; | 21 char **argv; |
31 { | 22 { |
32 extern int optind; | 23 extern int optind; |
62 max_fd = rtp_info.gsm_rtp_fd; | 53 max_fd = rtp_info.gsm_rtp_fd; |
63 if (rtp_info.gsm_rtcp_fd > mtc_socket) | 54 if (rtp_info.gsm_rtcp_fd > mtc_socket) |
64 max_fd = rtp_info.gsm_rtcp_fd; | 55 max_fd = rtp_info.gsm_rtcp_fd; |
65 for (;;) { | 56 for (;;) { |
66 FD_ZERO(&fds); | 57 FD_ZERO(&fds); |
58 FD_SET(0, &fds); | |
67 FD_SET(mtc_socket, &fds); | 59 FD_SET(mtc_socket, &fds); |
68 FD_SET(rtp_info.gsm_rtp_fd, &fds); | 60 FD_SET(rtp_info.gsm_rtp_fd, &fds); |
69 FD_SET(rtp_info.gsm_rtcp_fd, &fds); | 61 FD_SET(rtp_info.gsm_rtcp_fd, &fds); |
70 if (!disconnect_mode) | |
71 FD_SET(0, &fds); | |
72 c = select(max_fd+1, &fds, 0, 0, 0); | 62 c = select(max_fd+1, &fds, 0, 0, 0); |
73 if (c < 0) { | 63 if (c < 0) { |
74 if (errno == EINTR) | 64 if (errno == EINTR) |
75 continue; | 65 continue; |
76 perror("select"); | 66 perror("select"); |
77 exit(1); | 67 exit(1); |
78 } | 68 } |
79 gettimeofday(&cur_event_time, 0); | 69 gettimeofday(&cur_event_time, 0); |
70 if (FD_ISSET(0, &fds)) | |
71 select_stdin(); | |
80 if (FD_ISSET(mtc_socket, &fds)) | 72 if (FD_ISSET(mtc_socket, &fds)) |
81 mtc_socket_select(); | 73 mtc_socket_select(); |
82 if (!disconnect_mode && FD_ISSET(0, &fds)) { | |
83 drain_stdin(); | |
84 send_disconnect_req(); | |
85 } | |
86 if (FD_ISSET(rtp_info.gsm_rtp_fd, &fds)) | 74 if (FD_ISSET(rtp_info.gsm_rtp_fd, &fds)) |
87 rtp_rx_select(); | 75 rtp_rx_select(); |
88 if (FD_ISSET(rtp_info.gsm_rtcp_fd, &fds)) | 76 if (FD_ISSET(rtp_info.gsm_rtcp_fd, &fds)) |
89 rtcp_rx_select(); | 77 rtcp_rx_select(); |
90 } | 78 } |