tEnsure calls are answered properly - ratox - FIFO based tox client
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 3be4e82638e4a917f7acf2b15bcf04a34fd6626c
 (DIR) parent 35cc6c1e09ad25246ddac31da0735aeb7912463f
 (HTM) Author: z3bra <contactatz3bradotorg>
       Date:   Tue,  8 Nov 2016 23:39:58 +0100
       
       Ensure calls are answered properly
       
       Diffstat:
         M ratox.c                             |      10 ++++------
       
       1 file changed, 4 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/ratox.c b/ratox.c
       t@@ -130,7 +130,6 @@ enum {
        };
        
        struct call {
       -        int      num;
                int      state;
                uint8_t *frame;
                ssize_t  n;
       t@@ -486,7 +485,7 @@ sendfriendcalldata(struct friend *f)
                        nanosleep(&diff, NULL);
                }
                clock_gettime(CLOCK_MONOTONIC, &f->av.lastsent);
       -        if (!toxav_audio_send_frame(toxav, f->av.num, buf, pcm, AUDIOCHANNELS, AUDIOCHANNELS, NULL))
       +        if (!toxav_audio_send_frame(toxav, f->num, buf, pcm, AUDIOCHANNELS, AUDIOCHANNELS, NULL))
                        weprintf("Failed to send audio frame\n");
        }
        
       t@@ -1298,7 +1297,6 @@ friendcreate(uint32_t frnum)
                dprintf(f->fd[FCALL_STATE], "none\n");
        
                f->av.state = 0;
       -        f->av.num = -1;
        
                TAILQ_INSERT_TAIL(&friendhead, f, entry);
        
       t@@ -1582,7 +1580,7 @@ loop(void)
        
                                        if (f->tx.state == TRANSFER_NONE)
                                                FD_APPEND(f->fd[FFILE_IN]);
       -                                if (f->av.state & TRANSMITTING)
       +                                if (!f->av.state)
                                                FD_APPEND(f->fd[FCALL_IN]);
                                }
                                FD_APPEND(f->fd[FREMOVE]);
       t@@ -1655,7 +1653,7 @@ loop(void)
                        TAILQ_FOREACH(f, &friendhead, entry) {
                                if (tox_friend_get_connection_status(tox, f->num, NULL) == 0)
                                        continue;
       -                        if (!f->av.state)
       +                        if (f->av.state)
                                        continue;
        
                                fd = fifoopen(f->dirfd, ffiles[FCALL_OUT]);
       t@@ -1672,7 +1670,7 @@ loop(void)
                                if (!(f->av.state & INCOMING))
                                        continue;
        
       -                        if (!toxav_answer(toxav, f->av.num, AUDIOBITRATE, VIDEOBITRATE, NULL)) {
       +                        if (!toxav_answer(toxav, f->num, AUDIOBITRATE, VIDEOBITRATE, NULL)) {
                                        weprintf("Failed to answer call\n");
                                        if (!toxav_call_control(toxav, f->num, TOXAV_CALL_CONTROL_CANCEL, NULL))
                                                weprintf("Failed to reject call\n");