mirror of
https://github.com/Tha14/toxic.git
synced 2025-07-02 09:06:45 +02:00
Refactor ToxWindows
ToxWindow constructor functions now return pointers instead of structs ToxWindow windows array now holds pointers instead of structs Refactor some logic in windows.c pertaining to keeping track of active windows Use uint8_t for window array indexing
This commit is contained in:
@ -58,6 +58,8 @@
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
extern FriendsList Friends;
|
||||
extern ToxWindow *windows[MAX_WINDOWS_NUM];
|
||||
|
||||
struct CallControl CallControl;
|
||||
|
||||
#define cbend pthread_exit(NULL)
|
||||
@ -371,38 +373,28 @@ void callback_recv_invite(Tox *m, uint32_t friend_number)
|
||||
Friends.list[friend_number].chatwin = add_window(m, new_chat(m, Friends.list[friend_number].num));
|
||||
}
|
||||
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onInvite != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onInvite(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onInvite != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onInvite(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_recv_ringing(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onRinging != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onRinging(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onRinging != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onRinging(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_recv_starting(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onStarting != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onStarting(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onStarting != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onStarting(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
|
||||
if (0 != start_transmission(&windows[i], &CallControl.calls[friend_number])) { /* YEAH! */
|
||||
line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, "Error starting transmission!");
|
||||
if (0 != start_transmission(windows[i], &CallControl.calls[friend_number])) { /* YEAH! */
|
||||
line_info_add(windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, "Error starting transmission!");
|
||||
}
|
||||
|
||||
return;
|
||||
@ -411,61 +403,46 @@ void callback_recv_starting(uint32_t friend_number)
|
||||
}
|
||||
void callback_recv_ending(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onEnding != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onEnding(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onEnding != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onEnding(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_call_started(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onStart != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onStart(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i)
|
||||
if (windows[i].onStart != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onStart(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
|
||||
if (0 != start_transmission(&windows[i], &CallControl.calls[friend_number])) { /* YEAH! */
|
||||
line_info_add(&windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, "Error starting transmission!");
|
||||
if (0 != start_transmission(windows[i], &CallControl.calls[friend_number])) { /* YEAH! */
|
||||
line_info_add(windows[i], NULL, NULL, NULL, SYS_MSG, 0, 0, "Error starting transmission!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_call_canceled(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onCancel != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onCancel(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onCancel != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onCancel(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_call_rejected(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onReject != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onReject(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onReject != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onReject(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
void callback_call_ended(uint32_t friend_number)
|
||||
{
|
||||
ToxWindow *windows = CallControl.prompt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i].onEnd != NULL && windows[i].num == friend_number) {
|
||||
windows[i].onEnd(&windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||
if (windows[i] != NULL && windows[i]->onEnd != NULL && windows[i]->num == friend_number) {
|
||||
windows[i]->onEnd(windows[i], CallControl.av, friend_number, CallControl.call_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user