mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-23 01:13:01 +01:00
rename reserved identifiers per C standard
This commit is contained in:
parent
bf54cb36ef
commit
133c0e8d63
@ -29,6 +29,7 @@
|
|||||||
#include "line_info.h"
|
#include "line_info.h"
|
||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
@ -48,27 +49,27 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define _cbend pthread_exit(NULL)
|
#define cbend pthread_exit(NULL)
|
||||||
|
|
||||||
#define MAX_CALLS 10
|
#define MAX_CALLS 10
|
||||||
|
|
||||||
#define frame_size (av_DefaultSettings.audio_sample_rate * av_DefaultSettings.audio_frame_duration / 1000)
|
#define frame_size (av_DefaultSettings.audio_sample_rate * av_DefaultSettings.audio_frame_duration / 1000)
|
||||||
|
|
||||||
typedef struct _Call {
|
typedef struct Call {
|
||||||
pthread_t ttid; /* Transmission thread id */
|
pthread_t ttid; /* Transmission thread id */
|
||||||
_Bool ttas, has_output; /* Transmission thread active status (0 - stopped, 1- running) */
|
bool ttas, has_output; /* Transmission thread active status (0 - stopped, 1- running) */
|
||||||
uint32_t in_idx, out_idx;
|
uint32_t in_idx, out_idx;
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
} Call;
|
} Call;
|
||||||
|
|
||||||
|
|
||||||
void set_call(Call* call, _Bool start)
|
void set_call(Call* call, bool start)
|
||||||
{
|
{
|
||||||
call->in_idx = -1;
|
call->in_idx = -1;
|
||||||
call->out_idx = -1;
|
call->out_idx = -1;
|
||||||
|
|
||||||
if ( start ) {
|
if ( start ) {
|
||||||
call->ttas = _True;
|
call->ttas = true;
|
||||||
pthread_mutex_init(&call->mutex, NULL);
|
pthread_mutex_init(&call->mutex, NULL);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -77,7 +78,7 @@ void set_call(Call* call, _Bool start)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct _ASettings {
|
struct ASettings {
|
||||||
AudioError errors;
|
AudioError errors;
|
||||||
|
|
||||||
ToxAv *av;
|
ToxAv *av;
|
||||||
@ -198,7 +199,7 @@ int start_transmission(ToxWindow *self)
|
|||||||
!toxav_capability_supported(ASettins.av, self->call_idx, AudioEncoding) )
|
!toxav_capability_supported(ASettins.av, self->call_idx, AudioEncoding) )
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
set_call(&ASettins.calls[self->call_idx], _True);
|
set_call(&ASettins.calls[self->call_idx], true);
|
||||||
|
|
||||||
ToxAvCSettings csettings;
|
ToxAvCSettings csettings;
|
||||||
toxav_get_peer_csettings(ASettins.av, self->call_idx, 0, &csettings);
|
toxav_get_peer_csettings(ASettins.av, self->call_idx, 0, &csettings);
|
||||||
@ -208,7 +209,7 @@ int start_transmission(ToxWindow *self)
|
|||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to open input device!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to open input device!");
|
||||||
|
|
||||||
if ( register_device_callback(self->call_idx, ASettins.calls[self->call_idx].in_idx,
|
if ( register_device_callback(self->call_idx, ASettins.calls[self->call_idx].in_idx,
|
||||||
read_device_callback, &self->call_idx, _True) != de_None)
|
read_device_callback, &self->call_idx, true) != de_None)
|
||||||
/* Set VAD as true for all; TODO: Make it more dynamic */
|
/* Set VAD as true for all; TODO: Make it more dynamic */
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to register input handler!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Failed to register input handler!");
|
||||||
|
|
||||||
@ -225,7 +226,7 @@ int stop_transmission(int call_index)
|
|||||||
{
|
{
|
||||||
if ( ASettins.calls[call_index].ttas ) {
|
if ( ASettins.calls[call_index].ttas ) {
|
||||||
toxav_kill_transmission(ASettins.av, call_index);
|
toxav_kill_transmission(ASettins.av, call_index);
|
||||||
ASettins.calls[call_index].ttas = _False;
|
ASettins.calls[call_index].ttas = false;
|
||||||
|
|
||||||
if ( ASettins.calls[call_index].in_idx != -1 )
|
if ( ASettins.calls[call_index].in_idx != -1 )
|
||||||
close_device(input, ASettins.calls[call_index].in_idx);
|
close_device(input, ASettins.calls[call_index].in_idx);
|
||||||
@ -233,7 +234,7 @@ int stop_transmission(int call_index)
|
|||||||
if ( ASettins.calls[call_index].out_idx != -1 )
|
if ( ASettins.calls[call_index].out_idx != -1 )
|
||||||
close_device(output, ASettins.calls[call_index].out_idx);
|
close_device(output, ASettins.calls[call_index].out_idx);
|
||||||
|
|
||||||
set_call(&ASettins.calls[call_index], _False);
|
set_call(&ASettins.calls[call_index], false);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,7 +453,7 @@ void cmd_hangup(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
|
|||||||
if (toxav_get_call_state(ASettins.av, self->call_idx) == av_CallInviting) {
|
if (toxav_get_call_state(ASettins.av, self->call_idx) == av_CallInviting) {
|
||||||
error = toxav_cancel(ASettins.av, self->call_idx, self->num,
|
error = toxav_cancel(ASettins.av, self->call_idx, self->num,
|
||||||
"Only those who appreciate small things know the beauty that is life");
|
"Only those who appreciate small things know the beauty that is life");
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif
|
#endif
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
|
||||||
@ -610,7 +611,7 @@ void cmd_ccur_device(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*a
|
|||||||
open_device(input, selection, &this_call->in_idx, csettings.audio_sample_rate,
|
open_device(input, selection, &this_call->in_idx, csettings.audio_sample_rate,
|
||||||
csettings.audio_frame_duration, csettings.audio_channels);
|
csettings.audio_frame_duration, csettings.audio_channels);
|
||||||
/* Set VAD as true for all; TODO: Make it more dynamic */
|
/* Set VAD as true for all; TODO: Make it more dynamic */
|
||||||
register_device_callback(self->call_idx, this_call->in_idx, read_device_callback, &self->call_idx, _True);
|
register_device_callback(self->call_idx, this_call->in_idx, read_device_callback, &self->call_idx, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _audio_h
|
#ifndef AUDIO_H
|
||||||
#define _audio_h
|
#define AUDIO_H
|
||||||
|
|
||||||
#include <tox/toxav.h>
|
#include <tox/toxav.h>
|
||||||
|
|
||||||
@ -42,4 +42,4 @@ void terminate_audio();
|
|||||||
|
|
||||||
void stop_current_call(ToxWindow *self);
|
void stop_current_call(ToxWindow *self);
|
||||||
|
|
||||||
#endif /* _audio_h */
|
#endif /* AUDIO_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _autocomplete_h
|
#ifndef AUTOCOMPLETE_H
|
||||||
#define _autocomplete_h
|
#define AUTOCOMPLETE_H
|
||||||
|
|
||||||
/* looks for all instances in list that begin with the last entered word in line according to pos,
|
/* looks for all instances in list that begin with the last entered word in line according to pos,
|
||||||
then fills line with the complete word. e.g. "Hello jo" would complete the line
|
then fills line with the complete word. e.g. "Hello jo" would complete the line
|
||||||
@ -39,4 +39,4 @@ int complete_line(ToxWindow *self, const void *list, int n_items, int size);
|
|||||||
return diff between old len and new len of ctx->line, -1 if no matches or > 1 match */
|
return diff between old len and new len of ctx->line, -1 if no matches or > 1 match */
|
||||||
int dir_match(ToxWindow *self, Tox *m, const wchar_t *line);
|
int dir_match(ToxWindow *self, Tox *m, const wchar_t *line);
|
||||||
|
|
||||||
#endif /* #define _autocomplete_h */
|
#endif /* #define AUTOCOMPLETE_H */
|
84
src/chat.c
84
src/chat.c
@ -45,9 +45,9 @@
|
|||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
#include "message_queue.h"
|
#include "message_queue.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include "audio_call.h"
|
#include "audio_call.h"
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
|
|
||||||
extern char *DATA_FILE;
|
extern char *DATA_FILE;
|
||||||
@ -55,19 +55,19 @@ extern char *DATA_FILE;
|
|||||||
extern FileSender file_senders[MAX_FILES];
|
extern FileSender file_senders[MAX_FILES];
|
||||||
extern _Friends Friends;
|
extern _Friends Friends;
|
||||||
|
|
||||||
extern struct _Winthread Winthread;
|
extern struct Winthread Winthread;
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
static void init_infobox(ToxWindow *self);
|
static void init_infobox(ToxWindow *self);
|
||||||
static void kill_infobox(ToxWindow *self);
|
static void kill_infobox(ToxWindow *self);
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#define AC_NUM_CHAT_COMMANDS 26
|
#define AC_NUM_CHAT_COMMANDS 26
|
||||||
#else
|
#else
|
||||||
#define AC_NUM_CHAT_COMMANDS 19
|
#define AC_NUM_CHAT_COMMANDS 19
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
/* Array of chat command names used for tab completion. */
|
/* Array of chat command names used for tab completion. */
|
||||||
static const char chat_cmd_list[AC_NUM_CHAT_COMMANDS][MAX_CMDNAME_SIZE] = {
|
static const char chat_cmd_list[AC_NUM_CHAT_COMMANDS][MAX_CMDNAME_SIZE] = {
|
||||||
@ -91,7 +91,7 @@ static const char chat_cmd_list[AC_NUM_CHAT_COMMANDS][MAX_CMDNAME_SIZE] = {
|
|||||||
{ "/sendfile" },
|
{ "/sendfile" },
|
||||||
{ "/status" },
|
{ "/status" },
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
{ "/call" },
|
{ "/call" },
|
||||||
{ "/answer" },
|
{ "/answer" },
|
||||||
@ -101,12 +101,12 @@ static const char chat_cmd_list[AC_NUM_CHAT_COMMANDS][MAX_CMDNAME_SIZE] = {
|
|||||||
{ "/mute" },
|
{ "/mute" },
|
||||||
{ "/sense" },
|
{ "/sense" },
|
||||||
|
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
};
|
};
|
||||||
|
|
||||||
static void set_self_typingstatus(ToxWindow *self, Tox *m, uint8_t is_typing)
|
static void set_self_typingstatus(ToxWindow *self, Tox *m, uint8_t is_typing)
|
||||||
{
|
{
|
||||||
if (user_settings_->show_typing_self == SHOW_TYPING_OFF)
|
if (user_settings->show_typing_self == SHOW_TYPING_OFF)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ChatContext *ctx = self->chatwin;
|
ChatContext *ctx = self->chatwin;
|
||||||
@ -137,7 +137,7 @@ void kill_chat_window(ToxWindow *self, Tox *m)
|
|||||||
line_info_cleanup(ctx->hst);
|
line_info_cleanup(ctx->hst);
|
||||||
cqueue_cleanup(ctx->cqueue);
|
cqueue_cleanup(ctx->cqueue);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
stop_current_call(self);
|
stop_current_call(self);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ static void chat_onConnectionChange(ToxWindow *self, Tox *m, int32_t num, uint8_
|
|||||||
|
|
||||||
if (status == 1) { /* Friend goes online */
|
if (status == 1) { /* Friend goes online */
|
||||||
statusbar->is_online = true;
|
statusbar->is_online = true;
|
||||||
Friends.list[num].is_typing = user_settings_->show_typing_other == SHOW_TYPING_ON
|
Friends.list[num].is_typing = user_settings->show_typing_other == SHOW_TYPING_ON
|
||||||
? tox_get_is_typing(m, num) : 0;
|
? tox_get_is_typing(m, num) : 0;
|
||||||
chat_resume_file_transfers(m, num);
|
chat_resume_file_transfers(m, num);
|
||||||
|
|
||||||
@ -317,9 +317,9 @@ static void chat_onFileSendRequest(ToxWindow *self, Tox *m, int32_t num, uint8_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* use specified path in config if possible */
|
/* use specified path in config if possible */
|
||||||
if (user_settings_->download_path[0]) {
|
if (user_settings->download_path[0]) {
|
||||||
snprintf(filename_path, sizeof(filename_path), "%s%s", user_settings_->download_path, filename_nopath);
|
snprintf(filename_path, sizeof(filename_path), "%s%s", user_settings->download_path, filename_nopath);
|
||||||
len += strlen(user_settings_->download_path);
|
len += strlen(user_settings->download_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len >= sizeof(Friends.list[num].file_receiver[filenum].filename)) {
|
if (len >= sizeof(Friends.list[num].file_receiver[filenum].filename)) {
|
||||||
@ -582,7 +582,7 @@ static void chat_onGroupInvite(ToxWindow *self, Tox *m, int32_t friendnumber, co
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Av Stuff */
|
/* Av Stuff */
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
void chat_onInvite (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onInvite (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
{
|
{
|
||||||
@ -611,10 +611,10 @@ void chat_onRinging (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
|
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Ringing...type \"/hangup\" to cancel it.");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Ringing...type \"/hangup\" to cancel it.");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
if (self->ringing_sound == -1)
|
if (self->ringing_sound == -1)
|
||||||
sound_notify(self, call_outgoing, NT_LOOP, &self->ringing_sound);
|
sound_notify(self, call_outgoing, NT_LOOP, &self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onStarting (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onStarting (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -626,9 +626,9 @@ void chat_onStarting (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
|
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onEnding (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onEnding (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -640,9 +640,9 @@ void chat_onEnding (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onError (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onError (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -653,9 +653,9 @@ void chat_onError (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Error!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Error!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onStart (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onStart (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -667,9 +667,9 @@ void chat_onStart (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
|
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call started! Type: \"/hangup\" to end it.");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onCancel (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onCancel (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -681,9 +681,9 @@ void chat_onCancel (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call canceled!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onReject (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onReject (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -694,9 +694,9 @@ void chat_onReject (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Rejected!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Rejected!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onEnd (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onEnd (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -708,9 +708,9 @@ void chat_onEnd (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Call ended!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onRequestTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onRequestTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -721,9 +721,9 @@ void chat_onRequestTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No answer!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "No answer!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
void chat_onPeerTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
void chat_onPeerTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
||||||
@ -735,9 +735,9 @@ void chat_onPeerTimeout (ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
self->call_idx = -1;
|
self->call_idx = -1;
|
||||||
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Peer disconnected; call ended!");
|
line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Peer disconnected; call ended!");
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
stop_sound(self->ringing_sound);
|
stop_sound(self->ringing_sound);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_infobox(ToxWindow *self)
|
static void init_infobox(ToxWindow *self)
|
||||||
@ -752,7 +752,7 @@ static void init_infobox(ToxWindow *self)
|
|||||||
|
|
||||||
ctx->infobox.win = newwin(INFOBOX_HEIGHT, INFOBOX_WIDTH + 1, 1, x2 - INFOBOX_WIDTH);
|
ctx->infobox.win = newwin(INFOBOX_HEIGHT, INFOBOX_WIDTH + 1, 1, x2 - INFOBOX_WIDTH);
|
||||||
ctx->infobox.starttime = get_unix_time();
|
ctx->infobox.starttime = get_unix_time();
|
||||||
ctx->infobox.vad_lvl = user_settings_->VAD_treshold;
|
ctx->infobox.vad_lvl = user_settings->VAD_treshold;
|
||||||
ctx->infobox.active = true;
|
ctx->infobox.active = true;
|
||||||
strcpy(ctx->infobox.timestr, "00");
|
strcpy(ctx->infobox.timestr, "00");
|
||||||
}
|
}
|
||||||
@ -822,7 +822,7 @@ static void draw_infobox(ToxWindow *self)
|
|||||||
wrefresh(infobox->win);
|
wrefresh(infobox->win);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
static void send_action(ToxWindow *self, ChatContext *ctx, Tox *m, char *action)
|
static void send_action(ToxWindow *self, ChatContext *ctx, Tox *m, char *action)
|
||||||
{
|
{
|
||||||
@ -1040,7 +1040,7 @@ static void chat_onDraw(ToxWindow *self, Tox *m)
|
|||||||
|
|
||||||
wrefresh(self->window);
|
wrefresh(self->window);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
if (ctx->infobox.active) {
|
if (ctx->infobox.active) {
|
||||||
draw_infobox(self);
|
draw_infobox(self);
|
||||||
wrefresh(self->window);
|
wrefresh(self->window);
|
||||||
@ -1130,7 +1130,7 @@ ToxWindow new_chat(Tox *m, int32_t friendnum)
|
|||||||
ret.onFileData = &chat_onFileData;
|
ret.onFileData = &chat_onFileData;
|
||||||
ret.onReadReceipt = &chat_onReadReceipt;
|
ret.onReadReceipt = &chat_onReadReceipt;
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
ret.onInvite = &chat_onInvite;
|
ret.onInvite = &chat_onInvite;
|
||||||
ret.onRinging = &chat_onRinging;
|
ret.onRinging = &chat_onRinging;
|
||||||
ret.onStarting = &chat_onStarting;
|
ret.onStarting = &chat_onStarting;
|
||||||
@ -1146,7 +1146,7 @@ ToxWindow new_chat(Tox *m, int32_t friendnum)
|
|||||||
ret.call_idx = -1;
|
ret.call_idx = -1;
|
||||||
ret.device_selection[0] = ret.device_selection[1] = -1;
|
ret.device_selection[0] = ret.device_selection[1] = -1;
|
||||||
ret.ringing_sound = -1;
|
ret.ringing_sound = -1;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
ret.active_box = -1;
|
ret.active_box = -1;
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CHAT_H_6489PZ13
|
#ifndef CHAT_H
|
||||||
#define CHAT_H_6489PZ13
|
#define CHAT_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
@ -32,4 +32,4 @@ void chat_close_file_receiver(Tox *m, int filenum, int friendnum, int CTRL);
|
|||||||
void kill_chat_window(ToxWindow *self, Tox *m);
|
void kill_chat_window(ToxWindow *self, Tox *m);
|
||||||
ToxWindow new_chat(Tox *m, int32_t friendnum);
|
ToxWindow new_chat(Tox *m, int32_t friendnum);
|
||||||
|
|
||||||
#endif /* end of include guard: CHAT_H_6489PZ13 */
|
#endif /* end of include guard: CHAT_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _chat_commands_h
|
#ifndef CHAT_COMMANDS_H
|
||||||
#define _chat_commands_h
|
#define CHAT_COMMANDS_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
@ -32,7 +32,7 @@ void cmd_join_group(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR
|
|||||||
void cmd_savefile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_savefile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
void cmd_sendfile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_sendfile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
void cmd_call(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
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_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_reject(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
@ -41,6 +41,6 @@ void cmd_cancel(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZ
|
|||||||
void cmd_ccur_device(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_ccur_device(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
void cmd_mute(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_mute(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
void cmd_sense(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_sense(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#endif /* #define _chat_commands_h */
|
#endif /* #define CHAT_COMMANDS_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _configdir_h
|
#ifndef CONFIGDIR_H
|
||||||
#define _configdir_h
|
#define CONFIGDIR_H
|
||||||
|
|
||||||
#ifndef NSS_BUFLEN_PASSWD
|
#ifndef NSS_BUFLEN_PASSWD
|
||||||
#define NSS_BUFLEN_PASSWD 4096
|
#define NSS_BUFLEN_PASSWD 4096
|
||||||
@ -38,4 +38,4 @@ char *get_user_config_dir(void);
|
|||||||
void get_home_dir(char *home, int size);
|
void get_home_dir(char *home, int size);
|
||||||
int create_user_config_dirs(char *path);
|
int create_user_config_dirs(char *path);
|
||||||
|
|
||||||
#endif /* #define _configdir_h */
|
#endif /* #define CONFIGDIR_H */
|
||||||
|
43
src/device.c
43
src/device.c
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include "audio_call.h"
|
#include "audio_call.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -41,6 +41,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -50,9 +51,9 @@
|
|||||||
#define OPENAL_BUFS 5
|
#define OPENAL_BUFS 5
|
||||||
#define inline__ inline __attribute__((always_inline))
|
#define inline__ inline __attribute__((always_inline))
|
||||||
|
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
typedef struct _Device {
|
typedef struct Device {
|
||||||
ALCdevice *dhndl; /* Handle of device selected/opened */
|
ALCdevice *dhndl; /* Handle of device selected/opened */
|
||||||
ALCcontext *ctx; /* Device context */
|
ALCcontext *ctx; /* Device context */
|
||||||
DataHandleCallback cb; /* Use this to handle data from input device usually */
|
DataHandleCallback cb; /* Use this to handle data from input device usually */
|
||||||
@ -62,13 +63,13 @@ typedef struct _Device {
|
|||||||
uint32_t source, buffers[OPENAL_BUFS]; /* Playback source/buffers */
|
uint32_t source, buffers[OPENAL_BUFS]; /* Playback source/buffers */
|
||||||
size_t ref_count;
|
size_t ref_count;
|
||||||
int32_t selection;
|
int32_t selection;
|
||||||
_Bool enable_VAD;
|
bool enable_VAD;
|
||||||
_Bool muted;
|
bool muted;
|
||||||
pthread_mutex_t mutex[1];
|
pthread_mutex_t mutex[1];
|
||||||
uint32_t sample_rate;
|
uint32_t sample_rate;
|
||||||
uint32_t frame_duration;
|
uint32_t frame_duration;
|
||||||
int32_t sound_mode;
|
int32_t sound_mode;
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
float VAD_treshold; /* 40 is usually recommended value */
|
float VAD_treshold; /* 40 is usually recommended value */
|
||||||
#endif
|
#endif
|
||||||
} Device;
|
} Device;
|
||||||
@ -79,9 +80,9 @@ static int size[2]; /* Size of above containers */
|
|||||||
Device *running[2][MAX_DEVICES]; /* Running devices */
|
Device *running[2][MAX_DEVICES]; /* Running devices */
|
||||||
uint32_t primary_device[2]; /* Primary device */
|
uint32_t primary_device[2]; /* Primary device */
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
static ToxAv* av = NULL;
|
static ToxAv* av = NULL;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
/* q_mutex */
|
/* q_mutex */
|
||||||
#define lock pthread_mutex_lock(&mutex)
|
#define lock pthread_mutex_lock(&mutex)
|
||||||
@ -89,16 +90,16 @@ static ToxAv* av = NULL;
|
|||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
|
|
||||||
|
|
||||||
_Bool thread_running = _True,
|
bool thread_running = true,
|
||||||
thread_paused = _True; /* Thread control */
|
thread_paused = true; /* Thread control */
|
||||||
|
|
||||||
void* thread_poll(void*);
|
void* thread_poll(void*);
|
||||||
/* Meet devices */
|
/* Meet devices */
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
DeviceError init_devices(ToxAv* av_)
|
DeviceError init_devices(ToxAv* av_)
|
||||||
#else
|
#else
|
||||||
DeviceError init_devices()
|
DeviceError init_devices()
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
{
|
{
|
||||||
const char *stringed_device_list;
|
const char *stringed_device_list;
|
||||||
|
|
||||||
@ -134,9 +135,9 @@ DeviceError init_devices()
|
|||||||
if ( pthread_create(&thread_id, NULL, thread_poll, NULL) != 0 || pthread_detach(thread_id) != 0)
|
if ( pthread_create(&thread_id, NULL, thread_poll, NULL) != 0 || pthread_detach(thread_id) != 0)
|
||||||
return de_InternalError;
|
return de_InternalError;
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
av = av_;
|
av = av_;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
return (DeviceError) de_None;
|
return (DeviceError) de_None;
|
||||||
}
|
}
|
||||||
@ -170,7 +171,7 @@ DeviceError device_mute(DeviceType type, uint32_t device_idx)
|
|||||||
return de_None;
|
return de_None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
DeviceError device_set_VAD_treshold(uint32_t device_idx, float value)
|
DeviceError device_set_VAD_treshold(uint32_t device_idx, float value)
|
||||||
{
|
{
|
||||||
if (device_idx >= MAX_DEVICES) return de_InvalidSelection;
|
if (device_idx >= MAX_DEVICES) return de_InvalidSelection;
|
||||||
@ -247,8 +248,8 @@ DeviceError open_device(DeviceType type, int32_t selection, uint32_t* device_idx
|
|||||||
if (type == input) {
|
if (type == input) {
|
||||||
device->dhndl = alcCaptureOpenDevice(devices_names[type][selection],
|
device->dhndl = alcCaptureOpenDevice(devices_names[type][selection],
|
||||||
sample_rate, device->sound_mode, frame_size * 2);
|
sample_rate, device->sound_mode, frame_size * 2);
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
device->VAD_treshold = user_settings_->VAD_treshold;
|
device->VAD_treshold = user_settings->VAD_treshold;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -287,7 +288,7 @@ DeviceError open_device(DeviceType type, int32_t selection, uint32_t* device_idx
|
|||||||
|
|
||||||
if (type == input) {
|
if (type == input) {
|
||||||
alcCaptureStart(device->dhndl);
|
alcCaptureStart(device->dhndl);
|
||||||
thread_paused = _False;
|
thread_paused = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_init(device->mutex, NULL);
|
pthread_mutex_init(device->mutex, NULL);
|
||||||
@ -336,7 +337,7 @@ DeviceError close_device(DeviceType type, uint32_t device_idx)
|
|||||||
return de_None;
|
return de_None;
|
||||||
}
|
}
|
||||||
|
|
||||||
DeviceError register_device_callback( int32_t call_idx, uint32_t device_idx, DataHandleCallback callback, void* data, _Bool enable_VAD)
|
DeviceError register_device_callback( int32_t call_idx, uint32_t device_idx, DataHandleCallback callback, void* data, bool enable_VAD)
|
||||||
{
|
{
|
||||||
if (size[input] <= device_idx || !running[input][device_idx] || running[input][device_idx]->dhndl == NULL)
|
if (size[input] <= device_idx || !running[input][device_idx] || running[input][device_idx]->dhndl == NULL)
|
||||||
return de_InvalidSelection;
|
return de_InvalidSelection;
|
||||||
@ -427,9 +428,9 @@ void* thread_poll (void* arg) // TODO: maybe use thread for every input source
|
|||||||
alcCaptureSamples(device->dhndl, frame, f_size);
|
alcCaptureSamples(device->dhndl, frame, f_size);
|
||||||
|
|
||||||
if ( device->muted
|
if ( device->muted
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|| (device->enable_VAD && !toxav_has_activity(av, device->call_idx, frame, f_size, device->VAD_treshold))
|
|| (device->enable_VAD && !toxav_has_activity(av, device->call_idx, frame, f_size, device->VAD_treshold))
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
)
|
)
|
||||||
{ unlock; continue; } /* Skip if no voice activity */
|
{ unlock; continue; } /* Skip if no voice activity */
|
||||||
|
|
||||||
|
17
src/device.h
17
src/device.h
@ -26,16 +26,13 @@
|
|||||||
* Read from running input device(s) via select()/callback combo.
|
* Read from running input device(s) via select()/callback combo.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _device_h
|
#ifndef DEVICE_H
|
||||||
#define _device_h
|
#define DEVICE_H
|
||||||
|
|
||||||
#define MAX_DEVICES 32
|
#define MAX_DEVICES 32
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
#define _True 1
|
|
||||||
#define _False 0
|
|
||||||
|
|
||||||
typedef enum DeviceType {
|
typedef enum DeviceType {
|
||||||
input,
|
input,
|
||||||
output,
|
output,
|
||||||
@ -57,22 +54,22 @@ typedef enum DeviceError {
|
|||||||
typedef void (*DataHandleCallback) (const int16_t*, uint32_t size, void* data);
|
typedef void (*DataHandleCallback) (const int16_t*, uint32_t size, void* data);
|
||||||
|
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
DeviceError init_devices(ToxAv* av);
|
DeviceError init_devices(ToxAv* av);
|
||||||
#else
|
#else
|
||||||
DeviceError init_devices();
|
DeviceError init_devices();
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
DeviceError terminate_devices();
|
DeviceError terminate_devices();
|
||||||
|
|
||||||
/* Callback handles ready data from INPUT device */
|
/* Callback handles ready data from INPUT device */
|
||||||
DeviceError register_device_callback(int32_t call_idx, uint32_t device_idx, DataHandleCallback callback, void* data, _Bool enable_VAD);
|
DeviceError register_device_callback(int32_t call_idx, uint32_t device_idx, DataHandleCallback callback, void* data, bool enable_VAD);
|
||||||
void* get_device_callback_data(uint32_t device_idx);
|
void* get_device_callback_data(uint32_t device_idx);
|
||||||
|
|
||||||
/* toggle device mute */
|
/* toggle device mute */
|
||||||
DeviceError device_mute(DeviceType type, uint32_t device_idx);
|
DeviceError device_mute(DeviceType type, uint32_t device_idx);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
DeviceError device_set_VAD_treshold(uint32_t device_idx, float value);
|
DeviceError device_set_VAD_treshold(uint32_t device_idx, float value);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -89,4 +86,4 @@ DeviceError write_out(uint32_t device_idx, int16_t* data, uint32_t lenght, uint8
|
|||||||
void print_devices(ToxWindow* self, DeviceType type);
|
void print_devices(ToxWindow* self, DeviceType type);
|
||||||
|
|
||||||
DeviceError selection_valid(DeviceType type, int32_t selection);
|
DeviceError selection_valid(DeviceType type, int32_t selection);
|
||||||
#endif /* _device_h */
|
#endif /* DEVICE_H */
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
#define MAX_DNS_REQST_SIZE 255
|
#define MAX_DNS_REQST_SIZE 255
|
||||||
#define TOX_DNS3_TXT_PREFIX "v=tox3;id="
|
#define TOX_DNS3_TXT_PREFIX "v=tox3;id="
|
||||||
|
|
||||||
extern struct _Winthread Winthread;
|
extern struct Winthread Winthread;
|
||||||
extern struct _dns3_servers dns3_servers;
|
extern struct _dns3_servers dns3_servers;
|
||||||
extern struct arg_opts arg_opts;
|
extern struct arg_opts arg_opts;
|
||||||
|
|
||||||
|
@ -23,10 +23,10 @@
|
|||||||
/* Does DNS lookup for addr and puts resulting tox id in id_bin.
|
/* Does DNS lookup for addr and puts resulting tox id in id_bin.
|
||||||
Return 0 on success, -1 on failure. */
|
Return 0 on success, -1 on failure. */
|
||||||
|
|
||||||
#ifndef _dns_h
|
#ifndef DNS_H
|
||||||
#define _dns_h
|
#define DNS_H
|
||||||
|
|
||||||
/* creates new thread for dns3 lookup. Only allows one lookup at a time. */
|
/* creates new thread for dns3 lookup. Only allows one lookup at a time. */
|
||||||
void dns3_lookup(ToxWindow *self, Tox *m, const char *id_bin, const char *addr, const char *msg);
|
void dns3_lookup(ToxWindow *self, Tox *m, const char *id_bin, const char *addr, const char *msg);
|
||||||
|
|
||||||
#endif /* #define _dns_h */
|
#endif /* #define DNS_H */
|
||||||
|
@ -55,10 +55,10 @@ static struct cmd_func global_commands[] = {
|
|||||||
{ "/quit", cmd_quit },
|
{ "/quit", cmd_quit },
|
||||||
{ "/requests", cmd_requests },
|
{ "/requests", cmd_requests },
|
||||||
{ "/status", cmd_status },
|
{ "/status", cmd_status },
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
{ "/lsdev", cmd_list_devices },
|
{ "/lsdev", cmd_list_devices },
|
||||||
{ "/sdev", cmd_change_device },
|
{ "/sdev", cmd_change_device },
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
{ NULL, NULL },
|
{ NULL, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ static struct cmd_func chat_commands[] = {
|
|||||||
{ "/join", cmd_join_group },
|
{ "/join", cmd_join_group },
|
||||||
{ "/savefile", cmd_savefile },
|
{ "/savefile", cmd_savefile },
|
||||||
{ "/sendfile", cmd_sendfile },
|
{ "/sendfile", cmd_sendfile },
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
{ "/call", cmd_call },
|
{ "/call", cmd_call },
|
||||||
{ "/answer", cmd_answer },
|
{ "/answer", cmd_answer },
|
||||||
{ "/reject", cmd_reject },
|
{ "/reject", cmd_reject },
|
||||||
@ -76,7 +76,7 @@ static struct cmd_func chat_commands[] = {
|
|||||||
{ "/sdev", cmd_ccur_device },
|
{ "/sdev", cmd_ccur_device },
|
||||||
{ "/mute", cmd_mute },
|
{ "/mute", cmd_mute },
|
||||||
{ "/sense", cmd_sense },
|
{ "/sense", cmd_sense },
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
{ NULL, NULL },
|
{ NULL, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _execute_h
|
#ifndef EXECUTE_H
|
||||||
#define _execute_h
|
#define EXECUTE_H
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
@ -36,4 +36,4 @@ enum {
|
|||||||
|
|
||||||
void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode);
|
void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode);
|
||||||
|
|
||||||
#endif /* #define _execute_h */
|
#endif /* #define EXECUTE_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _filesenders_h
|
#ifndef FILESENDERS_H
|
||||||
#define _filesenders_h
|
#define FILESENDERS_H
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
@ -72,4 +72,4 @@ void reset_file_sender_queue(void);
|
|||||||
void close_all_file_senders(Tox *m);
|
void close_all_file_senders(Tox *m);
|
||||||
void do_file_senders(Tox *m);
|
void do_file_senders(Tox *m);
|
||||||
|
|
||||||
#endif /* #define _filesenders_h */
|
#endif /* #define FILESENDERS_H */
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
#include "help.h"
|
#include "help.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include "audio_call.h"
|
#include "audio_call.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -46,8 +46,8 @@
|
|||||||
extern char *DATA_FILE;
|
extern char *DATA_FILE;
|
||||||
extern char *BLOCK_FILE;
|
extern char *BLOCK_FILE;
|
||||||
extern ToxWindow *prompt;
|
extern ToxWindow *prompt;
|
||||||
extern struct _Winthread Winthread;
|
extern struct Winthread Winthread;
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
extern struct arg_opts arg_opts;
|
extern struct arg_opts arg_opts;
|
||||||
|
|
||||||
static uint8_t blocklist_view = 0; /* 0 if we're in friendlist view, 1 if we're in blocklist view */
|
static uint8_t blocklist_view = 0; /* 0 if we're in friendlist view, 1 if we're in blocklist view */
|
||||||
@ -285,7 +285,7 @@ static void update_friend_last_online(int32_t num, uint64_t timestamp)
|
|||||||
Friends.list[num].last_online.tm = *localtime((const time_t*)×tamp);
|
Friends.list[num].last_online.tm = *localtime((const time_t*)×tamp);
|
||||||
|
|
||||||
/* if the format changes make sure TIME_STR_SIZE is the correct size */
|
/* if the format changes make sure TIME_STR_SIZE is the correct size */
|
||||||
const char *t = user_settings_->time == TIME_12 ? "%I:%M %p" : "%H:%M";
|
const char *t = user_settings->time == TIME_12 ? "%I:%M %p" : "%H:%M";
|
||||||
strftime(Friends.list[num].last_online.hour_min_str, TIME_STR_SIZE, t,
|
strftime(Friends.list[num].last_online.hour_min_str, TIME_STR_SIZE, t,
|
||||||
&Friends.list[num].last_online.tm);
|
&Friends.list[num].last_online.tm);
|
||||||
}
|
}
|
||||||
@ -377,7 +377,7 @@ void friendlist_onFriendAdded(ToxWindow *self, Tox *m, int32_t num, bool sort)
|
|||||||
Friends.list[i].chatwin = -1;
|
Friends.list[i].chatwin = -1;
|
||||||
Friends.list[i].online = false;
|
Friends.list[i].online = false;
|
||||||
Friends.list[i].status = TOX_USERSTATUS_NONE;
|
Friends.list[i].status = TOX_USERSTATUS_NONE;
|
||||||
Friends.list[i].logging_on = (bool) user_settings_->autolog == AUTOLOG_ON;
|
Friends.list[i].logging_on = (bool) user_settings->autolog == AUTOLOG_ON;
|
||||||
tox_get_client_id(m, num, (uint8_t *) Friends.list[i].pub_key);
|
tox_get_client_id(m, num, (uint8_t *) Friends.list[i].pub_key);
|
||||||
update_friend_last_online(i, tox_get_last_online(m, i));
|
update_friend_last_online(i, tox_get_last_online(m, i));
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ static void friendlist_add_blocked(Tox *m, int32_t fnum, int32_t bnum)
|
|||||||
Friends.list[i].active = true;
|
Friends.list[i].active = true;
|
||||||
Friends.list[i].chatwin = -1;
|
Friends.list[i].chatwin = -1;
|
||||||
Friends.list[i].status = TOX_USERSTATUS_NONE;
|
Friends.list[i].status = TOX_USERSTATUS_NONE;
|
||||||
Friends.list[i].logging_on = (bool) user_settings_->autolog == AUTOLOG_ON;
|
Friends.list[i].logging_on = (bool) user_settings->autolog == AUTOLOG_ON;
|
||||||
Friends.list[i].namelength = Blocked.list[bnum].namelength;
|
Friends.list[i].namelength = Blocked.list[bnum].namelength;
|
||||||
update_friend_last_online(i, Blocked.list[bnum].last_on);
|
update_friend_last_online(i, Blocked.list[bnum].last_on);
|
||||||
memcpy(Friends.list[i].name, Blocked.list[bnum].name, Friends.list[i].namelength + 1);
|
memcpy(Friends.list[i].name, Blocked.list[bnum].name, Friends.list[i].namelength + 1);
|
||||||
@ -994,7 +994,7 @@ void disable_chatwin(int32_t f_num)
|
|||||||
Friends.list[f_num].chatwin = -1;
|
Friends.list[f_num].chatwin = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
static void friendlist_onAv(ToxWindow *self, ToxAv *av, int call_index)
|
static void friendlist_onAv(ToxWindow *self, ToxAv *av, int call_index)
|
||||||
{
|
{
|
||||||
int id = toxav_get_peer_id(av, call_index, 0);
|
int id = toxav_get_peer_id(av, call_index, 0);
|
||||||
@ -1021,7 +1021,7 @@ static void friendlist_onAv(ToxWindow *self, ToxAv *av, int call_index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
ToxWindow new_friendlist(void)
|
ToxWindow new_friendlist(void)
|
||||||
{
|
{
|
||||||
@ -1043,7 +1043,7 @@ ToxWindow new_friendlist(void)
|
|||||||
ret.onFileSendRequest = &friendlist_onFileSendRequest;
|
ret.onFileSendRequest = &friendlist_onFileSendRequest;
|
||||||
ret.onGroupInvite = &friendlist_onGroupInvite;
|
ret.onGroupInvite = &friendlist_onGroupInvite;
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
ret.onInvite = &friendlist_onAv;
|
ret.onInvite = &friendlist_onAv;
|
||||||
ret.onRinging = &friendlist_onAv;
|
ret.onRinging = &friendlist_onAv;
|
||||||
ret.onStarting = &friendlist_onAv;
|
ret.onStarting = &friendlist_onAv;
|
||||||
@ -1058,7 +1058,7 @@ ToxWindow new_friendlist(void)
|
|||||||
|
|
||||||
ret.call_idx = -1;
|
ret.call_idx = -1;
|
||||||
ret.device_selection[0] = ret.device_selection[1] = -1;
|
ret.device_selection[0] = ret.device_selection[1] = -1;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
ret.active_box = -1;
|
ret.active_box = -1;
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FRIENDLIST_H_53I41IM
|
#ifndef FRIENDLIST_H
|
||||||
#define FRIENDLIST_H_53I41IM
|
#define FRIENDLIST_H
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
@ -95,4 +95,4 @@ void friendlist_onFriendAdded(ToxWindow *self, Tox *m, int32_t num, bool sort);
|
|||||||
/* sorts friendlist_index first by connection status then alphabetically */
|
/* sorts friendlist_index first by connection status then alphabetically */
|
||||||
void sort_friendlist_index(void);
|
void sort_friendlist_index(void);
|
||||||
|
|
||||||
#endif /* end of include guard: FRIENDLIST_H_53I41IM */
|
#endif /* end of include guard: FRIENDLIST_H */
|
||||||
|
@ -70,7 +70,7 @@ void cmd_accept(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[
|
|||||||
on_friendadded(m, friendnum, true);
|
on_friendadded(m, friendnum, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&FriendRequests.request[req], 0, sizeof(struct _friend_request));
|
memset(&FriendRequests.request[req], 0, sizeof(struct friend_request));
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -232,7 +232,7 @@ void cmd_decline(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&FriendRequests.request[req], 0, sizeof(struct _friend_request));
|
memset(&FriendRequests.request[req], 0, sizeof(struct friend_request));
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _global_commands_h
|
#ifndef GLOBAL_COMMANDS_H
|
||||||
#define _global_commands_h
|
#define GLOBAL_COMMANDS_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
@ -43,9 +43,9 @@ void cmd_status(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZ
|
|||||||
|
|
||||||
void cmd_add_helper(ToxWindow *self, Tox *m, char *id_bin, char *msg);
|
void cmd_add_helper(ToxWindow *self, Tox *m, char *id_bin, char *msg);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
void cmd_list_devices(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_list_devices(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
void cmd_change_device(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
void cmd_change_device(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]);
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#endif /* #define _global_commands_h */
|
#endif /* #define GLOBAL_COMMANDS_H */
|
||||||
|
@ -50,7 +50,7 @@ extern char *DATA_FILE;
|
|||||||
static GroupChat groupchats[MAX_GROUPCHAT_NUM];
|
static GroupChat groupchats[MAX_GROUPCHAT_NUM];
|
||||||
static int max_groupchat_index = 0;
|
static int max_groupchat_index = 0;
|
||||||
|
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
/* temporary until group chats have unique commands */
|
/* temporary until group chats have unique commands */
|
||||||
extern const char glob_cmd_list[AC_NUM_GLOB_COMMANDS][MAX_CMDNAME_SIZE];
|
extern const char glob_cmd_list[AC_NUM_GLOB_COMMANDS][MAX_CMDNAME_SIZE];
|
||||||
@ -384,12 +384,12 @@ static void groupchat_onKey(ToxWindow *self, Tox *m, wint_t key, bool ltr)
|
|||||||
} else {
|
} else {
|
||||||
sound_notify(self, error, 0, NULL);
|
sound_notify(self, error, 0, NULL);
|
||||||
}
|
}
|
||||||
} else if (key == user_settings_->key_peer_list_down) { /* Scroll peerlist up and down one position */
|
} else if (key == user_settings->key_peer_list_down) { /* Scroll peerlist up and down one position */
|
||||||
int L = y2 - CHATBOX_HEIGHT - SDBAR_OFST;
|
int L = y2 - CHATBOX_HEIGHT - SDBAR_OFST;
|
||||||
|
|
||||||
if (groupchats[self->num].side_pos < groupchats[self->num].num_peers - L)
|
if (groupchats[self->num].side_pos < groupchats[self->num].num_peers - L)
|
||||||
++groupchats[self->num].side_pos;
|
++groupchats[self->num].side_pos;
|
||||||
} else if (key == user_settings_->key_peer_list_up) {
|
} else if (key == user_settings->key_peer_list_up) {
|
||||||
if (groupchats[self->num].side_pos > 0)
|
if (groupchats[self->num].side_pos > 0)
|
||||||
--groupchats[self->num].side_pos;
|
--groupchats[self->num].side_pos;
|
||||||
} else if (key == '\n') {
|
} else if (key == '\n') {
|
||||||
@ -503,7 +503,7 @@ static void groupchat_onInit(ToxWindow *self, Tox *m)
|
|||||||
|
|
||||||
line_info_init(ctx->hst);
|
line_info_init(ctx->hst);
|
||||||
|
|
||||||
if (user_settings_->autolog == AUTOLOG_ON) {
|
if (user_settings->autolog == AUTOLOG_ON) {
|
||||||
char myid[TOX_FRIEND_ADDRESS_SIZE];
|
char myid[TOX_FRIEND_ADDRESS_SIZE];
|
||||||
tox_get_address(m, (uint8_t *) myid);
|
tox_get_address(m, (uint8_t *) myid);
|
||||||
log_enable(self->name, myid, NULL, ctx->log, LOG_GROUP);
|
log_enable(self->name, myid, NULL, ctx->log, LOG_GROUP);
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _groupchat_h
|
#ifndef GROUPCHAT_H
|
||||||
#define _groupchat_h
|
#define GROUPCHAT_H
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
@ -45,4 +45,4 @@ void kill_groupchat_window(ToxWindow *self);
|
|||||||
int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum);
|
int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum);
|
||||||
ToxWindow new_group_chat(Tox *m, int groupnum);
|
ToxWindow new_group_chat(Tox *m, int groupnum);
|
||||||
|
|
||||||
#endif /* #define _groupchat_h */
|
#endif /* #define GROUPCHAT_H */
|
||||||
|
12
src/help.c
12
src/help.c
@ -151,14 +151,14 @@ static void help_draw_global(ToxWindow *self)
|
|||||||
wprintw(win, " /close : Close the current chat window\n");
|
wprintw(win, " /close : Close the current chat window\n");
|
||||||
wprintw(win, " /quit or /exit : Exit Toxic\n");
|
wprintw(win, " /quit or /exit : Exit Toxic\n");
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
wattron(win, A_BOLD);
|
wattron(win, A_BOLD);
|
||||||
wprintw(win, "\n Audio:\n");
|
wprintw(win, "\n Audio:\n");
|
||||||
wattroff(win, A_BOLD);
|
wattroff(win, A_BOLD);
|
||||||
|
|
||||||
wprintw(win, " /lsdev <type> : List devices where type: in|out\n");
|
wprintw(win, " /lsdev <type> : List devices where type: in|out\n");
|
||||||
wprintw(win, " /sdev <type> <id> : Set active device\n");
|
wprintw(win, " /sdev <type> <id> : Set active device\n");
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
help_draw_bottom_menu(win);
|
help_draw_bottom_menu(win);
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ static void help_draw_chat(ToxWindow *self)
|
|||||||
wprintw(win, " /savefile <id> : Receive a file\n");
|
wprintw(win, " /savefile <id> : Receive a file\n");
|
||||||
wprintw(win, " /cancel <type> <id> : Cancel file transfer where type: in|out\n");
|
wprintw(win, " /cancel <type> <id> : Cancel file transfer where type: in|out\n");
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
wattron(win, A_BOLD);
|
wattron(win, A_BOLD);
|
||||||
wprintw(win, "\n Audio:\n");
|
wprintw(win, "\n Audio:\n");
|
||||||
wattroff(win, A_BOLD);
|
wattroff(win, A_BOLD);
|
||||||
@ -194,7 +194,7 @@ static void help_draw_chat(ToxWindow *self)
|
|||||||
wprintw(win, " /sdev <type> <id> : Change active device\n");
|
wprintw(win, " /sdev <type> <id> : Change active device\n");
|
||||||
wprintw(win, " /mute <type> : Mute active device if in call\n");
|
wprintw(win, " /mute <type> : Mute active device if in call\n");
|
||||||
wprintw(win, " /sense <n> : VAD sensitivity treshold\n");
|
wprintw(win, " /sense <n> : VAD sensitivity treshold\n");
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
help_draw_bottom_menu(win);
|
help_draw_bottom_menu(win);
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ void help_onKey(ToxWindow *self, wint_t key)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
help_init_window(self, 19, 80);
|
help_init_window(self, 19, 80);
|
||||||
#else
|
#else
|
||||||
help_init_window(self, 9, 80);
|
help_init_window(self, 9, 80);
|
||||||
@ -265,7 +265,7 @@ void help_onKey(ToxWindow *self, wint_t key)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'g':
|
case 'g':
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
help_init_window(self, 23, 80);
|
help_init_window(self, 23, 80);
|
||||||
#else
|
#else
|
||||||
help_init_window(self, 19, 80);
|
help_init_window(self, 19, 80);
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _help_h
|
#ifndef HELP_H
|
||||||
#define _help_h
|
#define HELP_H
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
@ -39,4 +39,4 @@ void help_onDraw(ToxWindow *self);
|
|||||||
void help_init_menu(ToxWindow *self);
|
void help_init_menu(ToxWindow *self);
|
||||||
void help_onKey(ToxWindow *self, wint_t key);
|
void help_onKey(ToxWindow *self, wint_t key);
|
||||||
|
|
||||||
#endif /* #define _help_h */
|
#endif /* #define HELP_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _input_h
|
#ifndef INPUT_H
|
||||||
#define _input_h
|
#define INPUT_H
|
||||||
|
|
||||||
/* add a char to input field and buffer for given chatcontext */
|
/* add a char to input field and buffer for given chatcontext */
|
||||||
void input_new_char(ToxWindow *self, wint_t key, int x, int y, int mx_x, int mx_y);
|
void input_new_char(ToxWindow *self, wint_t key, int x, int y, int mx_x, int mx_y);
|
||||||
@ -30,4 +30,4 @@ void input_new_char(ToxWindow *self, wint_t key, int x, int y, int mx_x, int mx_
|
|||||||
return true if key matches a function, false otherwise */
|
return true if key matches a function, false otherwise */
|
||||||
bool input_handle(ToxWindow *self, wint_t key, int x, int y, int mx_x, int mx_y);
|
bool input_handle(ToxWindow *self, wint_t key, int x, int y, int mx_x, int mx_y);
|
||||||
|
|
||||||
#endif /* #define _input_h */
|
#endif /* #define INPUT_H */
|
@ -34,7 +34,7 @@
|
|||||||
#include "message_queue.h"
|
#include "message_queue.h"
|
||||||
#include "misc_tools.h"
|
#include "misc_tools.h"
|
||||||
|
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
void line_info_init(struct history *hst)
|
void line_info_init(struct history *hst)
|
||||||
{
|
{
|
||||||
@ -226,7 +226,7 @@ static void line_info_check_queue(ToxWindow *self)
|
|||||||
if (line == NULL)
|
if (line == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (hst->start_id > user_settings_->history_size)
|
if (hst->start_id > user_settings->history_size)
|
||||||
line_info_root_fwd(hst);
|
line_info_root_fwd(hst);
|
||||||
|
|
||||||
line->id = hst->line_end->id + 1;
|
line->id = hst->line_end->id + 1;
|
||||||
@ -494,19 +494,19 @@ bool line_info_onKey(ToxWindow *self, wint_t key)
|
|||||||
struct history *hst = self->chatwin->hst;
|
struct history *hst = self->chatwin->hst;
|
||||||
bool match = true;
|
bool match = true;
|
||||||
|
|
||||||
if (key == user_settings_->key_half_page_up) {
|
if (key == user_settings->key_half_page_up) {
|
||||||
line_info_page_up(self, hst);
|
line_info_page_up(self, hst);
|
||||||
}
|
}
|
||||||
else if (key == user_settings_->key_half_page_down) {
|
else if (key == user_settings->key_half_page_down) {
|
||||||
line_info_page_down(self, hst);
|
line_info_page_down(self, hst);
|
||||||
}
|
}
|
||||||
else if (key == user_settings_->key_scroll_line_up) {
|
else if (key == user_settings->key_scroll_line_up) {
|
||||||
line_info_scroll_up(hst);
|
line_info_scroll_up(hst);
|
||||||
}
|
}
|
||||||
else if (key == user_settings_->key_scroll_line_down) {
|
else if (key == user_settings->key_scroll_line_down) {
|
||||||
line_info_scroll_down(hst);
|
line_info_scroll_down(hst);
|
||||||
}
|
}
|
||||||
else if (key == user_settings_->key_page_bottom) {
|
else if (key == user_settings->key_page_bottom) {
|
||||||
line_info_reset_start(self, hst);
|
line_info_reset_start(self, hst);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _line_info_h
|
#ifndef LINE_INFO_H
|
||||||
#define _line_info_h
|
#define LINE_INFO_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
@ -92,4 +92,4 @@ void line_info_set(ToxWindow *self, uint32_t id, char *msg);
|
|||||||
void line_info_init(struct history *hst);
|
void line_info_init(struct history *hst);
|
||||||
bool line_info_onKey(ToxWindow *self, wint_t key); /* returns true if key is a match */
|
bool line_info_onKey(ToxWindow *self, wint_t key); /* returns true if key is a match */
|
||||||
|
|
||||||
#endif /* #define _line_info_h */
|
#endif /* #define LINE_INFO_H */
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "line_info.h"
|
#include "line_info.h"
|
||||||
|
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
/* Opens log file or creates a new one */
|
/* Opens log file or creates a new one */
|
||||||
static int init_logging_session(char *name, const char *selfkey, const char *otherkey, struct chatlog *log, int logtype)
|
static int init_logging_session(char *name, const char *selfkey, const char *otherkey, struct chatlog *log, int logtype)
|
||||||
@ -45,7 +45,7 @@ static int init_logging_session(char *name, const char *selfkey, const char *oth
|
|||||||
name = UNKNOWN_NAME;
|
name = UNKNOWN_NAME;
|
||||||
|
|
||||||
const char *namedash = logtype == LOG_PROMPT ? "" : "-";
|
const char *namedash = logtype == LOG_PROMPT ? "" : "-";
|
||||||
const char *set_path = user_settings_->chatlogs_path;
|
const char *set_path = user_settings->chatlogs_path;
|
||||||
|
|
||||||
char *user_config_dir = get_user_config_dir();
|
char *user_config_dir = get_user_config_dir();
|
||||||
int path_len = strlen(name) + strlen(".log") + strlen("-") + strlen(namedash);
|
int path_len = strlen(name) + strlen(".log") + strlen("-") + strlen(namedash);
|
||||||
@ -118,7 +118,7 @@ void write_to_log(const char *msg, const char *name, struct chatlog *log, bool e
|
|||||||
else
|
else
|
||||||
snprintf(name_frmt, sizeof(name_frmt), "%s:", name);
|
snprintf(name_frmt, sizeof(name_frmt), "%s:", name);
|
||||||
|
|
||||||
const char *t = user_settings_->time == TIME_12 ? "%Y/%m/%d [%I:%M:%S %p]" : "%Y/%m/%d [%H:%M:%S]";
|
const char *t = user_settings->time == TIME_12 ? "%Y/%m/%d [%I:%M:%S %p]" : "%Y/%m/%d [%H:%M:%S]";
|
||||||
char s[MAX_STR_SIZE];
|
char s[MAX_STR_SIZE];
|
||||||
strftime(s, MAX_STR_SIZE, t, get_time());
|
strftime(s, MAX_STR_SIZE, t, get_time());
|
||||||
fprintf(log->file, "%s %s %s\n", s, name_frmt, msg);
|
fprintf(log->file, "%s %s %s\n", s, name_frmt, msg);
|
||||||
@ -181,7 +181,7 @@ void load_chat_history(ToxWindow *self, struct chatlog *log)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Number of history lines to load: must not be larger than MAX_LINE_INFO_QUEUE - 2 */
|
/* Number of history lines to load: must not be larger than MAX_LINE_INFO_QUEUE - 2 */
|
||||||
int L = MIN(MAX_LINE_INFO_QUEUE - 2, user_settings_->history_size);
|
int L = MIN(MAX_LINE_INFO_QUEUE - 2, user_settings->history_size);
|
||||||
int start, count = 0;
|
int start, count = 0;
|
||||||
|
|
||||||
/* start at end and backtrace L lines or to the beginning of buffer */
|
/* start at end and backtrace L lines or to the beginning of buffer */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _log_h
|
#ifndef LOG_H
|
||||||
#define _log_h
|
#define LOG_H
|
||||||
|
|
||||||
struct chatlog {
|
struct chatlog {
|
||||||
FILE *file;
|
FILE *file;
|
||||||
@ -48,4 +48,4 @@ void log_disable(struct chatlog *log);
|
|||||||
/* Loads previous history from chat log */
|
/* Loads previous history from chat log */
|
||||||
void load_chat_history(ToxWindow *self, struct chatlog *log);
|
void load_chat_history(ToxWindow *self, struct chatlog *log);
|
||||||
|
|
||||||
#endif /* #define _log_h */
|
#endif /* #define LOG_H */
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef MESSAGE_QUEUE_H
|
||||||
|
#define MESSAGE_QUEUE_H
|
||||||
|
|
||||||
struct cqueue_msg {
|
struct cqueue_msg {
|
||||||
char message[MAX_STR_SIZE];
|
char message[MAX_STR_SIZE];
|
||||||
int len;
|
int len;
|
||||||
@ -44,3 +47,5 @@ void cqueue_try_send(ToxWindow *self, Tox *m);
|
|||||||
|
|
||||||
/* removes message with matching receipt from queue, writes to log and updates line to show the message was received. */
|
/* removes message with matching receipt from queue, writes to log and updates line to show the message was received. */
|
||||||
void cqueue_remove(ToxWindow *self, Tox *m, uint32_t receipt);
|
void cqueue_remove(ToxWindow *self, Tox *m, uint32_t receipt);
|
||||||
|
|
||||||
|
#endif /* #define MESSAGE_QUEUE_H */
|
@ -35,7 +35,7 @@
|
|||||||
#include "file_senders.h"
|
#include "file_senders.h"
|
||||||
|
|
||||||
extern ToxWindow *prompt;
|
extern ToxWindow *prompt;
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
static uint64_t current_unix_time;
|
static uint64_t current_unix_time;
|
||||||
|
|
||||||
@ -82,12 +82,12 @@ struct tm *get_time(void)
|
|||||||
/*Puts the current time in buf in the format of [HH:mm:ss] */
|
/*Puts the current time in buf in the format of [HH:mm:ss] */
|
||||||
void get_time_str(char *buf, int bufsize)
|
void get_time_str(char *buf, int bufsize)
|
||||||
{
|
{
|
||||||
if (user_settings_->timestamps == TIMESTAMPS_OFF) {
|
if (user_settings->timestamps == TIMESTAMPS_OFF) {
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *t = user_settings_->time == TIME_12 ? "[%-I:%M:%S] " : "[%H:%M:%S] ";
|
const char *t = user_settings->time == TIME_12 ? "[%-I:%M:%S] " : "[%H:%M:%S] ";
|
||||||
strftime(buf, bufsize, t, get_time());
|
strftime(buf, bufsize, t, get_time());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
* along with Toxic. If not, see <http://www.gnu.org/licenses/>.
|
* along with Toxic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#ifndef _misc_tools_h
|
#ifndef MISC_TOOLS_H
|
||||||
#define _misc_tools_h
|
#define MISC_TOOLS_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
@ -112,4 +112,4 @@ void bytes_convert_str(char *buf, int size, uint64_t bytes);
|
|||||||
/* checks if a file exists. Returns true or false */
|
/* checks if a file exists. Returns true or false */
|
||||||
bool file_exists(const char *path);
|
bool file_exists(const char *path);
|
||||||
|
|
||||||
#endif /* #define _misc_tools_h */
|
#endif /* #define MISC_TOOLS_H */
|
||||||
|
98
src/notify.c
98
src/notify.c
@ -36,7 +36,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#if defined(_AUDIO) || defined(_SOUND_NOTIFY)
|
#if defined(AUDIO) || defined(SOUND_NOTIFY)
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#include <OpenAL/al.h>
|
#include <OpenAL/al.h>
|
||||||
#include <OpenAL/alc.h>
|
#include <OpenAL/alc.h>
|
||||||
@ -48,16 +48,16 @@
|
|||||||
#include <AL/alext.h>
|
#include <AL/alext.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
#include <AL/alut.h> /* freealut packet */
|
#include <AL/alut.h> /* freealut packet */
|
||||||
#endif
|
#endif
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#ifdef _X11
|
#ifdef X11
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#endif /* _X11 */
|
#endif /* X11 */
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
#include <libnotify/notify.h>
|
#include <libnotify/notify.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -65,36 +65,36 @@
|
|||||||
#define SOUNDS_SIZE 10
|
#define SOUNDS_SIZE 10
|
||||||
#define ACTIVE_NOTIFS_MAX 50
|
#define ACTIVE_NOTIFS_MAX 50
|
||||||
|
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
struct _Control {
|
struct Control {
|
||||||
time_t cooldown;
|
time_t cooldown;
|
||||||
time_t notif_timeout;
|
time_t notif_timeout;
|
||||||
#ifdef _X11
|
#ifdef X11
|
||||||
Display *display;
|
Display *display;
|
||||||
unsigned long this_window;
|
unsigned long this_window;
|
||||||
#endif /* _X11 */
|
#endif /* X11 */
|
||||||
|
|
||||||
#if defined(_SOUND_NOTIFY) || defined(_BOX_NOTIFY)
|
#if defined(SOUND_NOTIFY) || defined(BOX_NOTIFY)
|
||||||
pthread_mutex_t poll_mutex[1];
|
pthread_mutex_t poll_mutex[1];
|
||||||
bool poll_active;
|
bool poll_active;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
uint32_t device_idx; /* index of output device */
|
uint32_t device_idx; /* index of output device */
|
||||||
char* sounds[SOUNDS_SIZE];
|
char* sounds[SOUNDS_SIZE];
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
} Control = {0};
|
} Control = {0};
|
||||||
|
|
||||||
struct _ActiveNotifications {
|
struct _ActiveNotifications {
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
uint32_t source;
|
uint32_t source;
|
||||||
uint32_t buffer;
|
uint32_t buffer;
|
||||||
bool looping;
|
bool looping;
|
||||||
#endif
|
#endif
|
||||||
bool active;
|
bool active;
|
||||||
int *id_indicator;
|
int *id_indicator;
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
NotifyNotification* box;
|
NotifyNotification* box;
|
||||||
char messages[MAX_BOX_MSG_LEN + 1][MAX_BOX_MSG_LEN + 1];
|
char messages[MAX_BOX_MSG_LEN + 1][MAX_BOX_MSG_LEN + 1];
|
||||||
char title[24];
|
char title[24];
|
||||||
@ -122,7 +122,7 @@ static void tab_notify(ToxWindow *self, uint64_t flags)
|
|||||||
self->alert = WINDOW_ALERT_2;
|
self->alert = WINDOW_ALERT_2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _X11
|
#ifdef X11
|
||||||
long unsigned int get_focused_window_id()
|
long unsigned int get_focused_window_id()
|
||||||
{
|
{
|
||||||
if (!Control.display) return 0;
|
if (!Control.display) return 0;
|
||||||
@ -132,12 +132,12 @@ long unsigned int get_focused_window_id()
|
|||||||
XGetInputFocus(Control.display, &focus, &revert);
|
XGetInputFocus(Control.display, &focus, &revert);
|
||||||
return focus;
|
return focus;
|
||||||
}
|
}
|
||||||
#endif /* _X11 */
|
#endif /* X11 */
|
||||||
|
|
||||||
static bool notifications_are_disabled(uint64_t flags)
|
static bool notifications_are_disabled(uint64_t flags)
|
||||||
{
|
{
|
||||||
bool res = flags & NT_RESTOL && Control.cooldown > get_unix_time();
|
bool res = flags & NT_RESTOL && Control.cooldown > get_unix_time();
|
||||||
#ifdef _X11
|
#ifdef X11
|
||||||
return res || (flags & NT_NOFOCUS && Control.this_window == get_focused_window_id());
|
return res || (flags & NT_NOFOCUS && Control.this_window == get_focused_window_id());
|
||||||
#else
|
#else
|
||||||
return res;
|
return res;
|
||||||
@ -146,19 +146,19 @@ static bool notifications_are_disabled(uint64_t flags)
|
|||||||
|
|
||||||
static void control_lock()
|
static void control_lock()
|
||||||
{
|
{
|
||||||
#if defined(_SOUND_NOTIFY) || defined(_BOX_NOTIFY)
|
#if defined(SOUND_NOTIFY) || defined(BOX_NOTIFY)
|
||||||
pthread_mutex_lock(Control.poll_mutex);
|
pthread_mutex_lock(Control.poll_mutex);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void control_unlock()
|
static void control_unlock()
|
||||||
{
|
{
|
||||||
#if defined(_SOUND_NOTIFY) || defined(_BOX_NOTIFY)
|
#if defined(SOUND_NOTIFY) || defined(BOX_NOTIFY)
|
||||||
pthread_mutex_unlock(Control.poll_mutex);
|
pthread_mutex_unlock(Control.poll_mutex);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
bool is_playing(int source)
|
bool is_playing(int source)
|
||||||
{
|
{
|
||||||
int ready;
|
int ready;
|
||||||
@ -174,7 +174,7 @@ void graceful_clear()
|
|||||||
while (1) {
|
while (1) {
|
||||||
for (i = 0; i < ACTIVE_NOTIFS_MAX; i ++) {
|
for (i = 0; i < ACTIVE_NOTIFS_MAX; i ++) {
|
||||||
if (actives[i].active) {
|
if (actives[i].active) {
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
if (actives[i].box) {
|
if (actives[i].box) {
|
||||||
GError* ignore;
|
GError* ignore;
|
||||||
notify_notification_close(actives[i].box, &ignore);
|
notify_notification_close(actives[i].box, &ignore);
|
||||||
@ -211,7 +211,7 @@ void* do_playing(void* _p)
|
|||||||
control_lock();
|
control_lock();
|
||||||
for (i = 0; i < ACTIVE_NOTIFS_MAX; i ++) {
|
for (i = 0; i < ACTIVE_NOTIFS_MAX; i ++) {
|
||||||
if (actives[i].active && !actives[i].looping
|
if (actives[i].active && !actives[i].looping
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
&& !actives[i].box
|
&& !actives[i].box
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
@ -223,7 +223,7 @@ void* do_playing(void* _p)
|
|||||||
memset(&actives[i], 0, sizeof(struct _ActiveNotifications));
|
memset(&actives[i], 0, sizeof(struct _ActiveNotifications));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
else if (actives[i].box && time(NULL) >= actives[i].n_timeout)
|
else if (actives[i].box && time(NULL) >= actives[i].n_timeout)
|
||||||
{
|
{
|
||||||
GError* ignore;
|
GError* ignore;
|
||||||
@ -266,7 +266,7 @@ int play_source(uint32_t source, uint32_t buffer, bool looping)
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif _BOX_NOTIFY
|
#elif BOX_NOTIFY
|
||||||
void* do_playing(void* _p)
|
void* do_playing(void* _p)
|
||||||
{
|
{
|
||||||
(void)_p;
|
(void)_p;
|
||||||
@ -321,13 +321,13 @@ void graceful_clear()
|
|||||||
/* Opens primary device */
|
/* Opens primary device */
|
||||||
int init_notify(int login_cooldown, int notification_timeout)
|
int init_notify(int login_cooldown, int notification_timeout)
|
||||||
{
|
{
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
alutInitWithoutContext(NULL, NULL);
|
alutInitWithoutContext(NULL, NULL);
|
||||||
if (open_primary_device(output, &Control.device_idx, 48000, 20, 1) != de_None)
|
if (open_primary_device(output, &Control.device_idx, 48000, 20, 1) != de_None)
|
||||||
return -1;
|
return -1;
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
|
|
||||||
#if defined(_SOUND_NOTIFY) || defined(_BOX_NOTIFY)
|
#if defined(SOUND_NOTIFY) || defined(BOX_NOTIFY)
|
||||||
pthread_mutex_init(Control.poll_mutex, NULL);
|
pthread_mutex_init(Control.poll_mutex, NULL);
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
if (pthread_create(&thread, NULL, do_playing, NULL) != 0 || pthread_detach(thread) != 0 ) {
|
if (pthread_create(&thread, NULL, do_playing, NULL) != 0 || pthread_detach(thread) != 0 ) {
|
||||||
@ -338,13 +338,13 @@ int init_notify(int login_cooldown, int notification_timeout)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
Control.cooldown = time(NULL) + login_cooldown;
|
Control.cooldown = time(NULL) + login_cooldown;
|
||||||
#ifdef _X11
|
#ifdef X11
|
||||||
Control.display = XOpenDisplay(NULL);
|
Control.display = XOpenDisplay(NULL);
|
||||||
Control.this_window = get_focused_window_id();
|
Control.this_window = get_focused_window_id();
|
||||||
#endif /* _X11 */
|
#endif /* X11 */
|
||||||
|
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
notify_init("toxic");
|
notify_init("toxic");
|
||||||
#endif
|
#endif
|
||||||
Control.notif_timeout = notification_timeout;
|
Control.notif_timeout = notification_timeout;
|
||||||
@ -353,26 +353,26 @@ int init_notify(int login_cooldown, int notification_timeout)
|
|||||||
|
|
||||||
void terminate_notify()
|
void terminate_notify()
|
||||||
{
|
{
|
||||||
#if defined(_SOUND_NOTIFY) || defined(_BOX_NOTIFY)
|
#if defined(SOUND_NOTIFY) || defined(BOX_NOTIFY)
|
||||||
if ( !Control.poll_active ) return;
|
if ( !Control.poll_active ) return;
|
||||||
Control.poll_active = 0;
|
Control.poll_active = 0;
|
||||||
|
|
||||||
graceful_clear();
|
graceful_clear();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (; i < SOUNDS_SIZE; i ++) free(Control.sounds[i]);
|
for (; i < SOUNDS_SIZE; i ++) free(Control.sounds[i]);
|
||||||
close_device(output, Control.device_idx);
|
close_device(output, Control.device_idx);
|
||||||
alutExit();
|
alutExit();
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
notify_uninit();
|
notify_uninit();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
int set_sound(Notification sound, const char* value)
|
int set_sound(Notification sound, const char* value)
|
||||||
{
|
{
|
||||||
if (sound == silent) return 0;
|
if (sound == silent) return 0;
|
||||||
@ -428,7 +428,7 @@ int play_notify_sound(Notification notif, uint64_t flags)
|
|||||||
void stop_sound(int id)
|
void stop_sound(int id)
|
||||||
{
|
{
|
||||||
if (id >= 0 && id < ACTIVE_NOTIFS_MAX && actives[id].looping && actives[id].active ) {
|
if (id >= 0 && id < ACTIVE_NOTIFS_MAX && actives[id].looping && actives[id].active ) {
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
if (actives[id].box) {
|
if (actives[id].box) {
|
||||||
GError* ignore;
|
GError* ignore;
|
||||||
notify_notification_close(actives[id].box, &ignore);
|
notify_notification_close(actives[id].box, &ignore);
|
||||||
@ -446,17 +446,17 @@ void stop_sound(int id)
|
|||||||
|
|
||||||
static int m_play_sound(Notification notif, uint64_t flags)
|
static int m_play_sound(Notification notif, uint64_t flags)
|
||||||
{
|
{
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
return play_notify_sound(notif, flags);
|
return play_notify_sound(notif, flags);
|
||||||
#else
|
#else
|
||||||
if (notif != silent)
|
if (notif != silent)
|
||||||
beep();
|
beep();
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
void m_notify_action(NotifyNotification *box, char *action, void* data)
|
void m_notify_action(NotifyNotification *box, char *action, void* data)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -472,13 +472,13 @@ int sound_notify(ToxWindow* self, Notification notif, uint64_t flags, int* id_in
|
|||||||
int id = -1;
|
int id = -1;
|
||||||
control_lock();
|
control_lock();
|
||||||
|
|
||||||
if (self && (!self->stb || self->stb->status != TOX_USERSTATUS_BUSY) && user_settings_->alerts == ALERTS_ENABLED)
|
if (self && (!self->stb || self->stb->status != TOX_USERSTATUS_BUSY) && user_settings->alerts == ALERTS_ENABLED)
|
||||||
id = m_play_sound(notif, flags);
|
id = m_play_sound(notif, flags);
|
||||||
|
|
||||||
else if (flags & NT_ALWAYS)
|
else if (flags & NT_ALWAYS)
|
||||||
id = m_play_sound(notif, flags);
|
id = m_play_sound(notif, flags);
|
||||||
|
|
||||||
#if defined(_BOX_NOTIFY) && !defined(_SOUND_NOTIFY)
|
#if defined(BOX_NOTIFY) && !defined(SOUND_NOTIFY)
|
||||||
|
|
||||||
if (id == -1) {
|
if (id == -1) {
|
||||||
for (id = 0; id < ACTIVE_NOTIFS_MAX && actives[id].box; id ++);
|
for (id = 0; id < ACTIVE_NOTIFS_MAX && actives[id].box; id ++);
|
||||||
@ -508,7 +508,7 @@ int sound_notify2(ToxWindow* self, Notification notif, uint64_t flags, int id)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (id < 0 || id >= ACTIVE_NOTIFS_MAX) return -1;
|
if (id < 0 || id >= ACTIVE_NOTIFS_MAX) return -1;
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
control_lock();
|
control_lock();
|
||||||
|
|
||||||
if (!actives[id].active || !Control.sounds[notif]) {
|
if (!actives[id].active || !Control.sounds[notif]) {
|
||||||
@ -537,7 +537,7 @@ int sound_notify2(ToxWindow* self, Notification notif, uint64_t flags, int id)
|
|||||||
beep();
|
beep();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
}
|
}
|
||||||
|
|
||||||
int box_notify(ToxWindow* self, Notification notif, uint64_t flags, int* id_indicator, char* title, const char* format, ...)
|
int box_notify(ToxWindow* self, Notification notif, uint64_t flags, int* id_indicator, char* title, const char* format, ...)
|
||||||
@ -547,13 +547,13 @@ int box_notify(ToxWindow* self, Notification notif, uint64_t flags, int* id_indi
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
|
|
||||||
int id = sound_notify(self, notif, flags, id_indicator);
|
int id = sound_notify(self, notif, flags, id_indicator);
|
||||||
|
|
||||||
control_lock();
|
control_lock();
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
if (id == -1) { /* Could not play */
|
if (id == -1) { /* Could not play */
|
||||||
|
|
||||||
for (id = 0; id < ACTIVE_NOTIFS_MAX && actives[id].active; id ++);
|
for (id = 0; id < ACTIVE_NOTIFS_MAX && actives[id].active; id ++);
|
||||||
@ -601,7 +601,7 @@ int box_notify2(ToxWindow* self, Notification notif, uint64_t flags, int id, con
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
|
|
||||||
if (sound_notify2(self, notif, flags, id) == -1)
|
if (sound_notify2(self, notif, flags, id) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
@ -651,7 +651,7 @@ int box_silent_notify(ToxWindow* self, uint64_t flags, int* id_indicator, const
|
|||||||
if (notifications_are_disabled(flags))
|
if (notifications_are_disabled(flags))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
|
|
||||||
control_lock();
|
control_lock();
|
||||||
|
|
||||||
@ -701,7 +701,7 @@ int box_silent_notify2(ToxWindow* self, uint64_t flags, int id, const char* form
|
|||||||
if (notifications_are_disabled(flags))
|
if (notifications_are_disabled(flags))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef _BOX_NOTIFY
|
#ifdef BOX_NOTIFY
|
||||||
control_lock();
|
control_lock();
|
||||||
|
|
||||||
if (id < 0 || id >= ACTIVE_NOTIFS_MAX || !actives[id].box || actives[id].size >= MAX_BOX_MSG_LEN + 1 ) {
|
if (id < 0 || id >= ACTIVE_NOTIFS_MAX || !actives[id].box || actives[id].size >= MAX_BOX_MSG_LEN + 1 ) {
|
||||||
|
10
src/notify.h
10
src/notify.h
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _notify_h
|
#ifndef NOTIFY_H
|
||||||
#define _notify_h
|
#define NOTIFY_H
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
@ -73,8 +73,8 @@ int box_notify2(ToxWindow* self, Notification notif, uint64_t flags, int id, con
|
|||||||
int box_silent_notify(ToxWindow* self, uint64_t flags, int* id_indicator, const char* title, const char* format, ...);
|
int box_silent_notify(ToxWindow* self, uint64_t flags, int* id_indicator, const char* title, const char* format, ...);
|
||||||
int box_silent_notify2(ToxWindow* self, uint64_t flags, int id, const char* format, ...);
|
int box_silent_notify2(ToxWindow* self, uint64_t flags, int id, const char* format, ...);
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
int set_sound(Notification sound, const char* value);
|
int set_sound(Notification sound, const char* value);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
|
|
||||||
#endif /* _notify_h */
|
#endif /* NOTIFY_H */
|
||||||
|
12
src/prompt.c
12
src/prompt.c
@ -43,8 +43,8 @@
|
|||||||
#include "autocomplete.h"
|
#include "autocomplete.h"
|
||||||
|
|
||||||
extern ToxWindow *prompt;
|
extern ToxWindow *prompt;
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
extern struct _Winthread Winthread;
|
extern struct Winthread Winthread;
|
||||||
|
|
||||||
_FriendRequests FriendRequests;
|
_FriendRequests FriendRequests;
|
||||||
|
|
||||||
@ -67,12 +67,12 @@ const char glob_cmd_list[AC_NUM_GLOB_COMMANDS][MAX_CMDNAME_SIZE] = {
|
|||||||
{ "/requests" },
|
{ "/requests" },
|
||||||
{ "/status" },
|
{ "/status" },
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
{ "/lsdev" },
|
{ "/lsdev" },
|
||||||
{ "/sdev" },
|
{ "/sdev" },
|
||||||
|
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
};
|
};
|
||||||
|
|
||||||
void kill_prompt_window(ToxWindow *self)
|
void kill_prompt_window(ToxWindow *self)
|
||||||
@ -455,7 +455,7 @@ static void prompt_onInit(ToxWindow *self, Tox *m)
|
|||||||
|
|
||||||
line_info_init(ctx->hst);
|
line_info_init(ctx->hst);
|
||||||
|
|
||||||
if (user_settings_->autolog == AUTOLOG_ON) {
|
if (user_settings->autolog == AUTOLOG_ON) {
|
||||||
char myid[TOX_FRIEND_ADDRESS_SIZE];
|
char myid[TOX_FRIEND_ADDRESS_SIZE];
|
||||||
tox_get_address(m, (uint8_t *) myid);
|
tox_get_address(m, (uint8_t *) myid);
|
||||||
log_enable(self->name, myid, NULL, ctx->log, LOG_PROMPT);
|
log_enable(self->name, myid, NULL, ctx->log, LOG_PROMPT);
|
||||||
@ -464,7 +464,7 @@ static void prompt_onInit(ToxWindow *self, Tox *m)
|
|||||||
scrollok(ctx->history, 0);
|
scrollok(ctx->history, 0);
|
||||||
wmove(self->window, y2 - CURS_Y_OFFSET, 0);
|
wmove(self->window, y2 - CURS_Y_OFFSET, 0);
|
||||||
|
|
||||||
if (user_settings_->show_welcome_msg == SHOW_WELCOME_MSG_ON)
|
if (user_settings->show_welcome_msg == SHOW_WELCOME_MSG_ON)
|
||||||
print_welcome_msg(self);
|
print_welcome_msg(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
src/prompt.h
14
src/prompt.h
@ -20,21 +20,21 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef PROMPT_H_UZYGWFFL
|
#ifndef PROMPT_H
|
||||||
#define PROMPT_H_UZYGWFFL
|
#define PROMPT_H
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#define AC_NUM_GLOB_COMMANDS 18
|
#define AC_NUM_GLOB_COMMANDS 18
|
||||||
#else
|
#else
|
||||||
#define AC_NUM_GLOB_COMMANDS 16
|
#define AC_NUM_GLOB_COMMANDS 16
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#define MAX_FRIEND_REQUESTS 32
|
#define MAX_FRIEND_REQUESTS 32
|
||||||
|
|
||||||
struct _friend_request {
|
struct friend_request {
|
||||||
bool active;
|
bool active;
|
||||||
char msg[MAX_STR_SIZE];
|
char msg[MAX_STR_SIZE];
|
||||||
uint8_t key[TOX_CLIENT_ID_SIZE];
|
uint8_t key[TOX_CLIENT_ID_SIZE];
|
||||||
@ -43,7 +43,7 @@ struct _friend_request {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
int max_idx;
|
int max_idx;
|
||||||
int num_requests;
|
int num_requests;
|
||||||
struct _friend_request request[MAX_FRIEND_REQUESTS];
|
struct friend_request request[MAX_FRIEND_REQUESTS];
|
||||||
} _FriendRequests;
|
} _FriendRequests;
|
||||||
|
|
||||||
ToxWindow new_prompt(void);
|
ToxWindow new_prompt(void);
|
||||||
@ -55,4 +55,4 @@ void prompt_update_status(ToxWindow *prompt, uint8_t status);
|
|||||||
void prompt_update_connectionstatus(ToxWindow *prompt, bool is_connected);
|
void prompt_update_connectionstatus(ToxWindow *prompt, bool is_connected);
|
||||||
void kill_prompt_window(ToxWindow *self);
|
void kill_prompt_window(ToxWindow *self);
|
||||||
|
|
||||||
#endif /* end of include guard: PROMPT_H_UZYGWFFL */
|
#endif /* end of include guard: PROMPT_H */
|
||||||
|
@ -31,9 +31,9 @@
|
|||||||
#include "notify.h"
|
#include "notify.h"
|
||||||
#include "misc_tools.h"
|
#include "misc_tools.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "line_info.h"
|
#include "line_info.h"
|
||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#define NO_SOUND "silent"
|
#define NO_SOUND "silent"
|
||||||
|
|
||||||
static struct _ui_strings {
|
static struct ui_strings {
|
||||||
const char* self;
|
const char* self;
|
||||||
const char* timestamps;
|
const char* timestamps;
|
||||||
const char* alerts;
|
const char* alerts;
|
||||||
@ -81,7 +81,7 @@ static void ui_defaults(struct user_settings* settings)
|
|||||||
settings->show_welcome_msg = SHOW_WELCOME_MSG_ON;
|
settings->show_welcome_msg = SHOW_WELCOME_MSG_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct _keys_strings {
|
static const struct keys_strings {
|
||||||
const char* self;
|
const char* self;
|
||||||
const char* next_tab;
|
const char* next_tab;
|
||||||
const char* prev_tab;
|
const char* prev_tab;
|
||||||
@ -119,7 +119,7 @@ static void key_defaults(struct user_settings* settings)
|
|||||||
settings->key_peer_list_down = T_KEY_C_RB;
|
settings->key_peer_list_down = T_KEY_C_RB;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct _tox_strings {
|
static const struct tox_strings {
|
||||||
const char* self;
|
const char* self;
|
||||||
const char* download_path;
|
const char* download_path;
|
||||||
const char* chatlogs_path;
|
const char* chatlogs_path;
|
||||||
@ -135,8 +135,8 @@ static void tox_defaults(struct user_settings* settings)
|
|||||||
strcpy(settings->chatlogs_path, "");
|
strcpy(settings->chatlogs_path, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
static const struct _audio_strings {
|
static const struct audio_strings {
|
||||||
const char* self;
|
const char* self;
|
||||||
const char* input_device;
|
const char* input_device;
|
||||||
const char* output_device;
|
const char* output_device;
|
||||||
@ -156,8 +156,8 @@ static void audio_defaults(struct user_settings* settings)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
static const struct _sound_strings {
|
static const struct sound_strings {
|
||||||
const char* self;
|
const char* self;
|
||||||
const char* error;
|
const char* error;
|
||||||
const char* self_log_in;
|
const char* self_log_in;
|
||||||
@ -212,7 +212,7 @@ int settings_load(struct user_settings *s, const char *patharg)
|
|||||||
tox_defaults(s);
|
tox_defaults(s);
|
||||||
key_defaults(s);
|
key_defaults(s);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
audio_defaults(s);
|
audio_defaults(s);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -296,7 +296,7 @@ int settings_load(struct user_settings *s, const char *patharg)
|
|||||||
if (config_setting_lookup_string(setting, key_strings.peer_list_down, &tmp)) s->key_peer_list_down = key_parse(&tmp);
|
if (config_setting_lookup_string(setting, key_strings.peer_list_down, &tmp)) s->key_peer_list_down = key_parse(&tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
if ((setting = config_lookup(cfg, audio_strings.self)) != NULL) {
|
if ((setting = config_lookup(cfg, audio_strings.self)) != NULL) {
|
||||||
config_setting_lookup_int(setting, audio_strings.input_device, &s->audio_in_dev);
|
config_setting_lookup_int(setting, audio_strings.input_device, &s->audio_in_dev);
|
||||||
s->audio_in_dev = s->audio_in_dev < 0 || s->audio_in_dev > MAX_DEVICES ? 0 : s->audio_in_dev;
|
s->audio_in_dev = s->audio_in_dev < 0 || s->audio_in_dev > MAX_DEVICES ? 0 : s->audio_in_dev;
|
||||||
@ -308,7 +308,7 @@ int settings_load(struct user_settings *s, const char *patharg)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
if ((setting = config_lookup(cfg, sound_strings.self)) != NULL) {
|
if ((setting = config_lookup(cfg, sound_strings.self)) != NULL) {
|
||||||
if ( (config_setting_lookup_string(setting, sound_strings.error, &str) != CONFIG_TRUE) ||
|
if ( (config_setting_lookup_string(setting, sound_strings.error, &str) != CONFIG_TRUE) ||
|
||||||
!set_sound(error, str) ) {
|
!set_sound(error, str) ) {
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _settings_h
|
#ifndef SETTINGS_H
|
||||||
#define _settings_h
|
#define SETTINGS_H
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ struct user_settings {
|
|||||||
int key_page_bottom;
|
int key_page_bottom;
|
||||||
int key_peer_list_up;
|
int key_peer_list_up;
|
||||||
int key_peer_list_down;
|
int key_peer_list_down;
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
int audio_in_dev;
|
int audio_in_dev;
|
||||||
int audio_out_dev;
|
int audio_out_dev;
|
||||||
double VAD_treshold;
|
double VAD_treshold;
|
||||||
@ -82,4 +82,4 @@ enum {
|
|||||||
} settings_values;
|
} settings_values;
|
||||||
|
|
||||||
int settings_load(struct user_settings *s, const char *patharg);
|
int settings_load(struct user_settings *s, const char *patharg);
|
||||||
#endif /* #define _settings_h */
|
#endif /* #define SETTINGS_H */
|
||||||
|
52
src/toxic.c
52
src/toxic.c
@ -57,17 +57,17 @@
|
|||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "message_queue.h"
|
#include "message_queue.h"
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include "audio_call.h"
|
#include "audio_call.h"
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#ifndef PACKAGE_DATADIR
|
#ifndef PACKAGE_DATADIR
|
||||||
#define PACKAGE_DATADIR "."
|
#define PACKAGE_DATADIR "."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
ToxAv *av;
|
ToxAv *av;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
/* Export for use in Callbacks */
|
/* Export for use in Callbacks */
|
||||||
char *DATA_FILE = NULL;
|
char *DATA_FILE = NULL;
|
||||||
@ -76,15 +76,15 @@ ToxWindow *prompt = NULL;
|
|||||||
|
|
||||||
#define AUTOSAVE_FREQ 60
|
#define AUTOSAVE_FREQ 60
|
||||||
|
|
||||||
struct _Winthread Winthread;
|
struct Winthread Winthread;
|
||||||
struct _cqueue_thread cqueue_thread;
|
struct cqueue_thread cqueue_thread;
|
||||||
struct arg_opts arg_opts;
|
struct arg_opts arg_opts;
|
||||||
struct user_settings *user_settings_ = NULL;
|
struct user_settings *user_settings = NULL;
|
||||||
|
|
||||||
#define MIN_PASSWORD_LEN 6
|
#define MIN_PASSWORD_LEN 6
|
||||||
#define MAX_PASSWORD_LEN 64
|
#define MAX_PASSWORD_LEN 64
|
||||||
|
|
||||||
static struct _user_password {
|
static struct user_password {
|
||||||
bool data_is_encrypted;
|
bool data_is_encrypted;
|
||||||
char pass[MAX_PASSWORD_LEN + 1];
|
char pass[MAX_PASSWORD_LEN + 1];
|
||||||
int len;
|
int len;
|
||||||
@ -118,21 +118,21 @@ static void init_signal_catchers(void)
|
|||||||
void exit_toxic_success(Tox *m)
|
void exit_toxic_success(Tox *m)
|
||||||
{
|
{
|
||||||
store_data(m, DATA_FILE);
|
store_data(m, DATA_FILE);
|
||||||
memset(&user_password, 0, sizeof(struct _user_password));
|
memset(&user_password, 0, sizeof(struct user_password));
|
||||||
close_all_file_senders(m);
|
close_all_file_senders(m);
|
||||||
kill_all_windows(m);
|
kill_all_windows(m);
|
||||||
|
|
||||||
free(DATA_FILE);
|
free(DATA_FILE);
|
||||||
free(BLOCK_FILE);
|
free(BLOCK_FILE);
|
||||||
free(user_settings_);
|
free(user_settings);
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
// sound_notify(NULL, self_log_out, NT_ALWAYS, NULL);
|
// sound_notify(NULL, self_log_out, NT_ALWAYS, NULL);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
terminate_notify();
|
terminate_notify();
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
terminate_audio();
|
terminate_audio();
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
tox_kill(m);
|
tox_kill(m);
|
||||||
endwin();
|
endwin();
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
@ -171,7 +171,7 @@ static void init_term(void)
|
|||||||
short bg_color = COLOR_BLACK;
|
short bg_color = COLOR_BLACK;
|
||||||
start_color();
|
start_color();
|
||||||
|
|
||||||
if (user_settings_->colour_theme == NATIVE_COLS) {
|
if (user_settings->colour_theme == NATIVE_COLS) {
|
||||||
if (assume_default_colors(-1, -1) == OK)
|
if (assume_default_colors(-1, -1) == OK)
|
||||||
bg_color = -1;
|
bg_color = -1;
|
||||||
}
|
}
|
||||||
@ -324,7 +324,7 @@ static Tox *init_tox(void)
|
|||||||
#define MAXNODES 50
|
#define MAXNODES 50
|
||||||
#define NODELEN (MAX_NODE_LINE - TOX_CLIENT_ID_SIZE - 7)
|
#define NODELEN (MAX_NODE_LINE - TOX_CLIENT_ID_SIZE - 7)
|
||||||
|
|
||||||
static struct _toxNodes {
|
static struct toxNodes {
|
||||||
int lines;
|
int lines;
|
||||||
char nodes[MAXNODES][NODELEN];
|
char nodes[MAXNODES][NODELEN];
|
||||||
uint16_t ports[MAXNODES];
|
uint16_t ports[MAXNODES];
|
||||||
@ -990,13 +990,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* init user_settings struct and load settings from conf file */
|
/* init user_settings struct and load settings from conf file */
|
||||||
user_settings_ = calloc(1, sizeof(struct user_settings));
|
user_settings = calloc(1, sizeof(struct user_settings));
|
||||||
|
|
||||||
if (user_settings_ == NULL)
|
if (user_settings == NULL)
|
||||||
exit_toxic_err("failed in main", FATALERR_MEMORY);
|
exit_toxic_err("failed in main", FATALERR_MEMORY);
|
||||||
|
|
||||||
const char *p = arg_opts.config_path[0] ? arg_opts.config_path : NULL;
|
const char *p = arg_opts.config_path[0] ? arg_opts.config_path : NULL;
|
||||||
int settings_err = settings_load(user_settings_, p);
|
int settings_err = settings_load(user_settings, p);
|
||||||
|
|
||||||
Tox *m = init_tox();
|
Tox *m = init_tox();
|
||||||
|
|
||||||
@ -1026,24 +1026,24 @@ int main(int argc, char *argv[])
|
|||||||
if (pthread_create(&cqueue_thread.tid, NULL, thread_cqueue, (void *) m) != 0)
|
if (pthread_create(&cqueue_thread.tid, NULL, thread_cqueue, (void *) m) != 0)
|
||||||
exit_toxic_err("failed in main", FATALERR_THREAD_CREATE);
|
exit_toxic_err("failed in main", FATALERR_THREAD_CREATE);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
av = init_audio(prompt, m);
|
av = init_audio(prompt, m);
|
||||||
|
|
||||||
set_primary_device(input, user_settings_->audio_in_dev);
|
set_primary_device(input, user_settings->audio_in_dev);
|
||||||
set_primary_device(output, user_settings_->audio_out_dev);
|
set_primary_device(output, user_settings->audio_out_dev);
|
||||||
|
|
||||||
#elif _SOUND_NOTIFY
|
#elif SOUND_NOTIFY
|
||||||
if ( init_devices() == de_InternalError )
|
if ( init_devices() == de_InternalError )
|
||||||
queue_init_message("Failed to init audio devices");
|
queue_init_message("Failed to init audio devices");
|
||||||
|
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
init_notify(60, 3000);
|
init_notify(60, 3000);
|
||||||
|
|
||||||
#ifdef _SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
// sound_notify(prompt, self_log_in, 0, NULL);
|
// sound_notify(prompt, self_log_in, 0, NULL);
|
||||||
#endif /* _SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
|
|
||||||
const char *msg;
|
const char *msg;
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _toxic_h
|
#ifndef TOXIC_H
|
||||||
#define _toxic_h
|
#define TOXIC_H
|
||||||
|
|
||||||
#ifndef TOXICVER
|
#ifndef TOXICVER
|
||||||
#define TOXICVER "NOVER_" /* Use the -D flag to set this */
|
#define TOXICVER "NOVER_" /* Use the -D flag to set this */
|
||||||
@ -111,4 +111,4 @@ void on_file_data(Tox *m, int32_t friendnumber, uint8_t filenumber, const uint8_
|
|||||||
void on_typing_change(Tox *m, int32_t friendnumber, uint8_t is_typing, void *userdata);
|
void on_typing_change(Tox *m, int32_t friendnumber, uint8_t is_typing, void *userdata);
|
||||||
void on_read_receipt(Tox *m, int32_t, uint32_t, void *userdata);
|
void on_read_receipt(Tox *m, int32_t, uint32_t, void *userdata);
|
||||||
|
|
||||||
#endif /* #define _toxic_h */
|
#endif /* #define TOXIC_H */
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _toxic_strings_h
|
#ifndef TOXIC_STRINGS_H
|
||||||
#define _toxic_strings_h
|
#define TOXIC_STRINGS_H
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
@ -61,4 +61,4 @@ void add_line_to_hist(ChatContext *ctx);
|
|||||||
resets line if at end of history */
|
resets line if at end of history */
|
||||||
void fetch_hist_item(ChatContext *ctx, int key_dir);
|
void fetch_hist_item(ChatContext *ctx, int key_dir);
|
||||||
|
|
||||||
#endif /* #define _toxic_strings_h */
|
#endif /* #define TOXIC_STRINGS_H */
|
||||||
|
@ -35,12 +35,12 @@
|
|||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
extern char *DATA_FILE;
|
extern char *DATA_FILE;
|
||||||
extern struct _Winthread Winthread;
|
extern struct Winthread Winthread;
|
||||||
static ToxWindow windows[MAX_WINDOWS_NUM];
|
static ToxWindow windows[MAX_WINDOWS_NUM];
|
||||||
static ToxWindow *active_window;
|
static ToxWindow *active_window;
|
||||||
|
|
||||||
extern ToxWindow *prompt;
|
extern ToxWindow *prompt;
|
||||||
extern struct user_settings *user_settings_;
|
extern struct user_settings *user_settings;
|
||||||
|
|
||||||
static int num_active_windows;
|
static int num_active_windows;
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ void on_connectionchange(Tox *m, int32_t friendnumber, uint8_t status, void *use
|
|||||||
|
|
||||||
void on_typing_change(Tox *m, int32_t friendnumber, uint8_t is_typing, void *userdata)
|
void on_typing_change(Tox *m, int32_t friendnumber, uint8_t is_typing, void *userdata)
|
||||||
{
|
{
|
||||||
if (user_settings_->show_typing_other == SHOW_TYPING_OFF)
|
if (user_settings->show_typing_other == SHOW_TYPING_OFF)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
@ -278,7 +278,7 @@ void set_next_window(int ch)
|
|||||||
ToxWindow *inf = active_window;
|
ToxWindow *inf = active_window;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
if (ch == user_settings_->key_next_tab) {
|
if (ch == user_settings->key_next_tab) {
|
||||||
if (++active_window > end)
|
if (++active_window > end)
|
||||||
active_window = windows;
|
active_window = windows;
|
||||||
} else if (--active_window < windows)
|
} else if (--active_window < windows)
|
||||||
@ -366,12 +366,12 @@ void on_window_resize(void)
|
|||||||
w->stb->topline = subwin(w->window, 2, x2, 0, 0);
|
w->stb->topline = subwin(w->window, 2, x2, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
if (w->chatwin->infobox.active) {
|
if (w->chatwin->infobox.active) {
|
||||||
delwin(w->chatwin->infobox.win);
|
delwin(w->chatwin->infobox.win);
|
||||||
w->chatwin->infobox.win = newwin(INFOBOX_HEIGHT, INFOBOX_WIDTH + 1, 1, x2 - INFOBOX_WIDTH);
|
w->chatwin->infobox.win = newwin(INFOBOX_HEIGHT, INFOBOX_WIDTH + 1, 1, x2 - INFOBOX_WIDTH);
|
||||||
}
|
}
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
scrollok(w->chatwin->history, 0);
|
scrollok(w->chatwin->history, 0);
|
||||||
}
|
}
|
||||||
@ -462,7 +462,7 @@ void draw_active_window(Tox *m)
|
|||||||
ltr = isprint(ch);
|
ltr = isprint(ch);
|
||||||
#endif /* HAVE_WIDECHAR */
|
#endif /* HAVE_WIDECHAR */
|
||||||
|
|
||||||
if (!ltr && (ch == user_settings_->key_next_tab || ch == user_settings_->key_prev_tab)) {
|
if (!ltr && (ch == user_settings->key_next_tab || ch == user_settings->key_prev_tab)) {
|
||||||
set_next_window((int) ch);
|
set_next_window((int) ch);
|
||||||
} else {
|
} else {
|
||||||
pthread_mutex_lock(&Winthread.lock);
|
pthread_mutex_lock(&Winthread.lock);
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _windows_h
|
#ifndef WINDOWS_H
|
||||||
#define _windows_h
|
#define WINDOWS_H
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
@ -30,9 +30,9 @@
|
|||||||
|
|
||||||
#include <tox/tox.h>
|
#include <tox/tox.h>
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
#include <tox/toxav.h>
|
#include <tox/toxav.h>
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#include "toxic.h"
|
#include "toxic.h"
|
||||||
|
|
||||||
@ -65,14 +65,14 @@ typedef enum {
|
|||||||
Uncomment if necessary */
|
Uncomment if necessary */
|
||||||
/* #define URXVT_FIX */
|
/* #define URXVT_FIX */
|
||||||
|
|
||||||
struct _Winthread {
|
struct Winthread {
|
||||||
pthread_t tid;
|
pthread_t tid;
|
||||||
pthread_mutex_t lock;
|
pthread_mutex_t lock;
|
||||||
volatile sig_atomic_t sig_exit_toxic;
|
volatile sig_atomic_t sig_exit_toxic;
|
||||||
volatile sig_atomic_t flag_resize;
|
volatile sig_atomic_t flag_resize;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _cqueue_thread {
|
struct cqueue_thread {
|
||||||
pthread_t tid;
|
pthread_t tid;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ struct ToxWindow {
|
|||||||
void(*onTypingChange)(ToxWindow *, Tox *, int32_t, uint8_t);
|
void(*onTypingChange)(ToxWindow *, Tox *, int32_t, uint8_t);
|
||||||
void(*onReadReceipt)(ToxWindow *, Tox *, int32_t, uint32_t);
|
void(*onReadReceipt)(ToxWindow *, Tox *, int32_t, uint32_t);
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
void(*onInvite)(ToxWindow *, ToxAv *, int);
|
void(*onInvite)(ToxWindow *, ToxAv *, int);
|
||||||
void(*onRinging)(ToxWindow *, ToxAv *, int);
|
void(*onRinging)(ToxWindow *, ToxAv *, int);
|
||||||
@ -142,7 +142,7 @@ struct ToxWindow {
|
|||||||
int device_selection[2]; /* -1 if not set, if set uses these selections instead of primary device */
|
int device_selection[2]; /* -1 if not set, if set uses these selections instead of primary device */
|
||||||
|
|
||||||
int ringing_sound;
|
int ringing_sound;
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
int active_box; /* For box notify */
|
int active_box; /* For box notify */
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ struct StatusBar {
|
|||||||
bool is_online;
|
bool is_online;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
|
|
||||||
|
|
||||||
#define INFOBOX_HEIGHT 7
|
#define INFOBOX_HEIGHT 7
|
||||||
@ -195,7 +195,7 @@ struct infobox {
|
|||||||
|
|
||||||
WINDOW *win;
|
WINDOW *win;
|
||||||
};
|
};
|
||||||
#endif /* _AUDIO */
|
#endif /* AUDIO */
|
||||||
|
|
||||||
#define MAX_LINE_HIST 128
|
#define MAX_LINE_HIST 128
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ struct ChatContext {
|
|||||||
struct chatlog *log;
|
struct chatlog *log;
|
||||||
struct chat_queue *cqueue;
|
struct chat_queue *cqueue;
|
||||||
|
|
||||||
#ifdef _AUDIO
|
#ifdef AUDIO
|
||||||
struct infobox infobox;
|
struct infobox infobox;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -248,4 +248,4 @@ ToxWindow *get_window_ptr(int i);
|
|||||||
call at least once per second */
|
call at least once per second */
|
||||||
void refresh_inactive_windows(void);
|
void refresh_inactive_windows(void);
|
||||||
|
|
||||||
#endif /* #define _windows_h */
|
#endif /* #define WINDOWS_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user