From 58f33fa1d62971832dd76de494aaca776117f98d Mon Sep 17 00:00:00 2001 From: mannol Date: Sun, 23 Mar 2014 22:54:56 +0100 Subject: [PATCH] Merge upstream --- src/audio_call.c | 29 +++++++++++++++++++++++++++-- src/chat.c | 5 +++-- src/chat_commands.c | 1 + src/chat_commands.h | 1 + src/execute.c | 1 + 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/audio_call.c b/src/audio_call.c index f6ecd6b..2d8043d 100644 --- a/src/audio_call.c +++ b/src/audio_call.c @@ -498,7 +498,7 @@ void cmd_call(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA return; on_error: - wprintw(window, "%s %d\n", error_str, argc); + wprintw(window, "%s\n", error_str); } void cmd_answer(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) @@ -526,6 +526,31 @@ on_error: wprintw(window, "%s\n", error_str); } +void cmd_reject(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) +{ + const char* error_str; + + if (argc != 0) { error_str = "Invalid syntax!"; goto on_error; } + + if ( !ASettins.av ) { error_str = "Audio not supported!"; goto on_error; } + + ToxAvError error = toxav_reject(ASettins.av, "Why not?"); + + if ( error != ErrorNone ) { + if ( error == ErrorInvalidState ) error_str = "Cannot reject in invalid state!"; + else if ( error == ErrorNoCall ) error_str = "No incomming call!"; + else error_str = "Internal error!"; + + goto on_error; + } + + /* Callback will print status... */ + + return; +on_error: + wprintw(window, "%s\n", error_str); +} + void cmd_hangup(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { const char* error_str; @@ -557,7 +582,7 @@ void cmd_cancel(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[ if ( !ASettins.av ) { error_str = "Audio not supported!"; goto on_error; } - ToxAvError error = toxav_hangup(ASettins.av); + ToxAvError error = toxav_cancel(ASettins.av, self->num, "Only those who appreciate small things know the beauty of life"); if ( error != ErrorNone ) { if ( error == ErrorNoCall ) error_str = "No call!"; diff --git a/src/chat.c b/src/chat.c index 814f0f1..ca1666a 100644 --- a/src/chat.c +++ b/src/chat.c @@ -47,7 +47,7 @@ extern ToxicFriend friends[MAX_FRIENDS_NUM]; extern struct _Winthread Winthread; #ifdef _SUPPORT_AUDIO - #define AC_NUM_CHAT_COMMANDS 22 + #define AC_NUM_CHAT_COMMANDS 23 #else #define AC_NUM_CHAT_COMMANDS 18 #endif /* _SUPPORT_AUDIO */ @@ -78,6 +78,7 @@ static const uint8_t chat_cmd_list[AC_NUM_CHAT_COMMANDS][MAX_CMDNAME_SIZE] = { { "/call" }, { "/cancel" }, { "/answer" }, + { "/reject" }, { "/hangup" }, #endif /* _SUPPORT_AUDIO */ @@ -349,7 +350,7 @@ void chat_onInvite (ToxWindow *self, ToxAv *av) ChatContext *ctx = self->chatwin; wprintw(ctx->history, "Incoming audio call!\n" - "Answer: \"/answer\" \"/cancel\"\n"); + "Answer: \"/answer\" \"/reject\"\n"); alert_window(self, WINDOW_ALERT_0, true); } diff --git a/src/chat_commands.c b/src/chat_commands.c index c51a251..fc13c4f 100644 --- a/src/chat_commands.c +++ b/src/chat_commands.c @@ -57,6 +57,7 @@ void cmd_chat_help(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*arg wprintw(window, " /call : Audio call\n"); wprintw(window, " /cancel : Cancel call\n"); wprintw(window, " /answer : Answer incomming call\n"); + wprintw(window, " /reject : Reject incomming call\n"); wprintw(window, " /hangup : Hangup active call\n"); #endif /* _SUPPORT_AUDIO */ diff --git a/src/chat_commands.h b/src/chat_commands.h index f5caf1d..76ecd64 100644 --- a/src/chat_commands.h +++ b/src/chat_commands.h @@ -30,6 +30,7 @@ void cmd_sendfile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_S #ifdef _SUPPORT_AUDIO void cmd_call(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_answer(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_reject(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_hangup(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); void cmd_cancel(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); #endif /* _SUPPORT_AUDIO */ diff --git a/src/execute.c b/src/execute.c index 71e5958..18b1302 100644 --- a/src/execute.c +++ b/src/execute.c @@ -70,6 +70,7 @@ static struct cmd_func chat_commands[] = { { "/call", cmd_call }, { "/cancel", cmd_cancel }, { "/answer", cmd_answer }, + { "/reject", cmd_reject }, { "/hangup", cmd_hangup }, #endif /* _SUPPORT_AUDIO */ };