Age | Commit message (Collapse) | Author |
|
Due to a bug in toxcore the call is set to active too early,
leaving room for invocations of sendfriendcalldata() even though
the transmission has not yet been set up in cbcallstart.
Fix this with a small workaround keeping the transmission-state
in the client.
In the long run, this definitely needs to be fixed in toxcore
for consistency.
|
|
Basically the direct calls to cancelcall() should be minimized
and only set off in a callback.
Additionally, tweak other error-cases and don't always quit fatally
but instead provide ways to get out of an error-condition.
|
|
Now it's fun again to work with the code.
|
|
using the udata-void pointers to pass data as a source of information.
|
|
This saves a lot of LOC and is definitely easier to maintain.
|
|
|
|
|
|
|
|
In upcoming commits, these errors will be incorporated into the
logging-system, so they don't look so out of place when issued.
|
|
|
|
When you got a request, but not accepted it via request/out/... and
instead sent a request yourself, it would not remove the FIFO.
This patch fixes this behaviour by iterating through the request-
list and removing the FIFO if it's still existing.
Additionally, actually make it possible to reject requests and
re-add your friends later by managing the internal tox-state
properly.
|
|
Similar style as for detecting broken file transfers.
|
|
if (f->rxstate == TRANSFER_INPROGRESS &&
(fd = openat(f->dirfd, ffiles[FFILE_OUT].name, ffiles[FFILE_OUT].flags, 0666)) == -1 &&
errno == ENXIO) {
...
} else {
close(fd); <--- not always appropriate!
}
|
|
This will trigger the callback and reset toxav internal states
accordingly. In the callback we actually call cancelcall().
|
|
|
|
If not, abort receiving.
|
|
|
|
|
|
No need to try to keep local state, just use toxav_get_call_state().
We now can auto-accept calls by pre-attaching on the call_out FIFO.
|
|
|
|
|
|
Reject calls on both sides to reset states. This still needs
to be tested to see if there's any effect of doing that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I don't know why I missed that
1) of course we have to check tv_sec, not tv_nsec
2) when we do a nanosleep, but use the "now"-val for the lastsent-
time, we obviously keep the wrong time.
This leads to the program thinking more time elapsed than really
has, leading to less nanosleep and thus higher playback-speed.
Now this is fixed, and apart from state-transition issues,
call-receiving now works perfectly. ;)
|
|
Got off a factor of a thousand, this would've never worked.
Now it should handle the calls properly.
|
|
|
|
|
|
|
|
This works, but the audio is a bit muffled up, which takes some
fine-tuning.
Also, not all state-transitions are yet taken into account.
|
|
|
|
|
|
|
|
|