Commit Graph

2127 Commits

Author SHA1 Message Date
jfreegman a5246bcbc6
Bump to version 0.10.1 2021-01-20 16:18:43 -05:00
Maxim Biro b37e28c2d0
Add a script for building minimal static toxic
The intention is that JFreegman would run it locally on his machine for
every Toxic release and publish the build artifacts on GitHub for
download, similarly to how the qTox team makes release builds. This
should mitigate the loss of the Jenkins build server to some extent,
which used to provide Toxic builds before.
2021-01-19 21:48:51 -05:00
Maxim Biro 973e60ef11
Fix Makefile assignment bug
When a user provides variable=value as an argument to make, all
assignments to that variable are ignored within the Makefile because the
user has explicitly overrode variable to be "value". This made the
ENABLE_ASAN assignment to be ignored, resulting in Toxic always enabling
ASAN unless you run `make ENABLE_ASAN=disabled`, which is not
documented and not how it's intended to work. This can be fixed by
prefixing the assignment with "override", but to be in line with other
argument assignments we just change the variable name.

See more at:
https://www.gnu.org/software/make/manual/html_node/Overriding.html
2021-01-19 20:18:24 -05:00
jfreegman ae94bc593b
Rename some build options for naming consistency 2021-01-19 15:21:31 -05:00
jfreegman 81eb58532e
Fix bug sometimes causing join message spam on conference join 2021-01-17 17:10:10 -05:00
jfreegman 8464ea9a7a
Fix minor display bug with the audio call info box 2021-01-12 19:18:22 -05:00
jfreegman b77bff35a1
Add config man entries for colour scheme options 2020-12-06 11:52:46 -05:00
jfreegman eb964b64c2
Fix off by one error and comment magic numbers 2020-12-05 20:53:09 -05:00
Lily 2ff9d29491
Custom colors proof of concept
Fix formatting

Fix repeated variable in example config
2020-12-05 17:46:13 -06:00
jfreegman 2640919318
Don't announce when ghost peers leave the group
This appears to be a toxcore bug, but nonetheless it looks ugly. Also changed
group -> conference for join/part messages
2020-12-03 11:49:48 -05:00
jfreegman 2fcbc4fa1c
Remove lots of duplicate code related to printing timestamps 2020-11-30 17:55:57 -05:00
jfreegman 4330bf5867
Show peer join/part messages in conferences
Also a couple trivial fixes
2020-11-30 12:06:13 -05:00
jfreegman 3f1b7cdd26
Update config example and some default settings to reflect recent changes 2020-11-30 00:58:43 -05:00
jfreegman 1e985c1456
Interface improvements and bump to v0.10.0
- Give window tab and statusbar a make over
- Place window tab above input field
- Reduce input field to one square in height
- Refactor window tab so that it's now a subwin of its parent ToxWindow
- Fix bug causing notification counter to sometimes increment by 2
- No longer scroll on output when output is not at bottom of screen
- Show a small indicator on far left of window tab when output is
  not at bottom of screen
- Reduce ncurses/UI thread sleep time by half
- Handle nanosleep errors better
2020-11-29 23:26:51 -05:00
jfreegman 61740bda85
Fix a couple minor issues
Print a warning if remove() fails, and check if the win pointer is null
before using it (this is unnecessary but it's correct and shuts coverity up)
2020-11-26 18:25:37 -05:00
jfreegman 0d8e6d713e
Update readme screenshot and bump to v0.9.1 2020-11-26 16:58:09 -05:00
jfreegman 39e4ff8bd6
Fix tab complete bug
If a directory contains a single entry tab complete will no longer fail
2020-11-26 16:20:51 -05:00
jfreegman 0434ac186a
Fix bug causing file transfer status bars to be truncated 2020-11-26 16:17:00 -05:00
jfreegman 8d9d51640c
Fix display bug caused by noread flag appended to unread messages
A line's line count now increments without messing up the formatting in cases where
the noread flag wraps to the next line.

Additionally, the way noread flags are handled has been refactored and made
more efficient.
2020-11-26 16:16:59 -05:00
jfreegman c4c0c0d1f4
Another logging fix
When renaming a log file, if the new name already exists we just
start appending to it and delete the old file. There's no need
to create a backup.

This fixes an issue where leaving and rejoining the same group
multiple times will eventually lead to the logger not working
due to trying to use the same file name over and over again.
2020-11-26 16:10:59 -05:00
jfreegman 3f2826bd66
Add release and LLVM asan build options
The release build uses -O2 and flto, and has no debug symbols.
-Wmissing-field-initializer was removed due to false positives
on newer versions of clang
2020-11-26 16:04:54 -05:00
jfreegman 7b7ea0e386
Fix small regression
This wasn't supposed to make it into the commit
2020-11-24 23:42:25 -05:00
jfreegman d35a38735b
Fix line wrapping/padding issues
It should now parse messages with newlines properly as well as messages that
contain long sequences of characters with no spaces
2020-11-24 19:47:04 -05:00
jfreegman f0c4906fdc
Fix some off by one bugs with line scrolling and some cleanup
Instead of trying (and failing) to correctly calculate the number of lines on the
screen a given message will need space for, we dynamically set the value both
on initiation of a new line, and whenever that line is printed to the screen
using the print_wrap() function.

This should fix the screen occasionally not scrolling down the correct number of
lines when a new message is printed.
2020-11-24 19:36:03 -05:00
jfreegman 56ba61e061
Cleanup and refactor x11 code
- Deleted X11 code for an unfinished/broken feature
- Rename xtra -> x11focus
- Cleanup the remaining code a bit
2020-11-24 19:31:59 -05:00
jfreegman 898d89e95a
Properly handle failures to convert widechar strings to multibyte 2020-11-24 16:41:42 -05:00
jfreegman 1fd1e27bdf
Remove seconds from default timestamp
Also reduce the --- prefix to one dash before a message. These characters are taking
up valuable real-estate
2020-11-22 18:53:32 -05:00
jfreegman 8e84ac58d4
Implement word wrapping
It's about time
2020-11-22 18:41:12 -05:00
jfreegman 9d65997871
Add notification counters to bottom tab
A counter now increments in the bottom bar for unfocused windows showing how
many unread messages are pending. Tabs with no pending messages show [*]
instead of their index (showing the index is useless and somewhat confusing)
2020-11-21 11:25:41 -05:00
jfreegman da2889f3ab
Fix UI regression
The conference number needs to be displayed in the tab name
so that you can invite friends to conferences
2020-11-20 02:10:52 -05:00
jfreegman 312b38d253
A few small fixes
- Fix race condition in draw_peer()
- Handle realloc_peer_list() error
- Remove dead code in cmd_conference()
- Reduce scope of a few variable variables
- Fix possible buffer truncation in api.c
2020-11-19 14:23:32 -05:00
jfreegman 0554bf0240
Create backup of duplicate log file instead of deleting it
This case should never occur, but just in case it does it's good to handle it
without any data loss
2020-11-19 14:23:31 -05:00
jfreegman 53a7530e8a
Some UI improvements
- Bottom tab now only shows indices of active chat windows unless focused
- Always focus Home screen on startup instead of the last loaded conference
- Conference tab names are no longer prefixed with the conference number
- Home and Contact tab names are now capitalized
2020-11-19 01:30:30 -05:00
jfreegman 41be04a142
Implement push-to-talk for conference audio 2020-11-18 16:57:26 -05:00
jfreegman 31f36318a2
Add config settings for audio channels 2020-11-18 16:29:01 -05:00
jfreegman f882fdf608
Use two channels for conference audio 2020-11-17 16:31:17 -05:00
jfreegman 7e1e410307
Refactor logging
- Conference logging now behaves the same as 1-on-1 chats: Instead
  of creating a new log file every time we restat the client
  we use the unique conference ID to keep track of path names.
  This also allows us to load history for saved groups on client startup

- Added a log init function / general code refactor.

- Fixed a bug that caused log files to be created even when logging
  is disabled.
2020-11-17 16:05:20 -05:00
zugz (tox) c135c812c2
Fix playing unallocated memory on opening audio device 2020-11-16 00:00:00 +00:00
jfreegman 6c239193ab
Fix bug sometimes preventing typing status from being updated 2020-11-15 12:30:26 -05:00
jfreegman de7db08352
Bump to version 0.9.0 2020-11-14 14:30:56 -05:00
zugz (tox) ba5ded9bc2
Use compound literals to zero out structs instead of memset 2020-11-14 00:00:05 +00:00
zugz (tox) 4581dee4fc
astyle 2020-11-14 00:00:05 +00:00
zugz (tox) d75d6e8b60
sort includes 2020-11-14 00:00:05 +00:00
zugz (tox) 142ce642f0
Per-call pending status and state handling
* Proper handling of incoming video calls.
* Add command /vcall for initiating video calls
* Add command /res command to set video resolution
2020-11-14 00:00:10 +00:00
zugz (tox) 7dead5ec96
Implement simplistic VAD 2020-11-14 00:00:01 +00:00
zugz ddcf224db2
Implement groupAV 2020-11-14 00:00:01 +00:00
zugz daf794c4a2
Rework audio device handling
We now have at most one input and one output device open at any time,
but can have multiple capture callbacks and multiple output sources.
2020-11-14 00:00:01 +00:00
jfreegman dac0124f0f
Fix some issues with file transfers
- Fix bug causing failed avatar transfers to be sent as normal file transfers
      when a friend goes offline and comes back online
- Remove some unused members of the FileTransfer struct
- Rename filenum -> filenumber and friendnum -> friendnumber
2020-11-13 19:38:33 -05:00
jfreegman 15b7a30925
Fix some bugs/issues with the message queue
- It's no longer possible for messages to be sent out of order
- Check if logger is enabled before doing pointless API calls
- Fix linked list bug (a part of the code almost never executes)
2020-11-12 11:39:19 -05:00
jfreegman 77ab71f26f
Refactor message queue
We now attempt to send all queued messages per call to cqueue_try_send() instead
of just the oldest message in the queue. This speeds things up substantially.

Also fixed a very unlikely bug where the read receipt might wrap around to zero
which we used as a reserved value for an unsent message
2020-11-11 16:28:50 -05:00