285d6ab9a4
Add setEventMultiThreading(boolean) instead of forcing multi-threading on
Manevolent2018-09-06 11:53:44 -04:00
15f7485fa9
Moving command execution to a single thread executor. I leave it up to end-users now if they want event processing to be multi-threaded.
Manevolent2018-09-06 11:49:51 -04:00
0cd72622a2
latestPacketId exposure for the same reason as the last commit
Manevolent2018-08-16 13:44:43 -04:00
3898f2658c
Expose the remote counter's features for discerning buffer beginning and end. I need this because my bot will be decoding audio for speech recognition.
Manevolent2018-08-16 10:12:05 -04:00
83e59ab6e9
Exposed voice packets to the client
Manevolent2018-08-15 11:43:41 -04:00
d0e2ad194f
It's possible for a packet's responsible queue to be incorrectly tracked.
Manevolent2018-08-13 20:30:05 -04:00
e4e1b5b4fe
Still getting random connection losses. I think it may have to do with the way I set up ACK, ACK_LOW, and PING commands.
Manevolent2018-08-13 18:18:49 -04:00
f041820020
Catch socket exception for code clarity even though I dont think it was causing any problems
Manevolent2018-08-13 09:58:55 -04:00
89c483d3b9
Fragments which wrap around 65536 and cause the packet ID to ascend more than once will crash the code
Manevolent2018-08-13 09:20:27 -04:00
aad790c146
Packet reassembly would fail if the server sent packets out of order. Now, it is resilient to this.
Manevolent2018-08-13 01:03:44 -04:00
7d195439b8
Send a zero-length byte array when the audio thread is done sending audio, as Teamspeak does. this is to prevent interpolation
Manevolent2018-08-12 15:39:55 -04:00
fb7923b63b
Change HighPrecisionRecurrentTask to 0.01 instead of 0.02
Manevolent2018-08-12 15:13:21 -04:00
555f6a56d6
Mic packet ID was wrongly generated, changed some tests and increased verbosity of the reassembly exceptions
Manevolent2018-08-12 12:14:29 -04:00
bc37491328
Created a new test for fragments. If a packet fragment is received which wraps around the generation, it is lost. Also, packet fragmentation outgoing would cause a desync in the packet IDs.
Manevolent2018-08-11 18:44:44 -04:00
04299b5c77
More tests for packet generations. Compression test also exists now to test compression into the future. QuickLZ first checks the level on decompression, and also throws a diagnostic error with full Base64 byte array on issue. Disconnections will actually fully reset and free the client for valid re-use. There is now a Consumer for Throwables for the abstract client socket for error handling.
Manevolent2018-08-11 15:50:22 -04:00
5a440c890f
Round ping to nearest whole number
Manevolent2018-08-11 12:36:37 -04:00
1ed4e0c4da
Channel list event is back, adding chat to client commands.
Manevolent2018-08-04 19:22:08 -04:00
1236221f6b
Commands now spool sequentially. Command ACK queues no longer collide with pings or ack_low. Getter more stable.
Manevolent2018-08-02 19:52:44 -04:00
964936abdf
Working on commands, having trouble with acks right now
Manevolent2018-08-01 16:29:31 -04:00
f50ada0888
Working quickly to finish packet generation following. I've implemented my own counter now, using the same window system as the previous Java rewrite, using just an integer array and one array copy call. Hopefully this is good for performance.
Manevolent2018-08-01 12:27:09 -04:00
44a18ad7a0
Beginning to work on audio stuff now. Lots of changes.
Manevolent2018-07-31 15:39:03 -04:00
e93b0dee6f
Moving more towards a serverquery look.
Manevolent2018-07-30 16:32:49 -04:00
f533e2e918
Moving further along with the connection-level commands that are received, and now have model objects to store variables. No callbacks to the server yet, but that will happen soon. Right now I have channel listings and basic client information done.
Manevolent2018-07-28 22:34:18 -04:00
c121202735
We can now connect to servers, get the welcome message, handle pings, properly decompress fragments, etc. I have also added CommandLow/AckLow support. We need to implement data objects now to recognize command objects, and then implement the voice protocol.
Manevolent2018-07-28 13:32:01 -04:00
e4bb886d64
Set state to connected. We may want an interim state for this step of the protocol.
Manevolent2018-07-27 16:12:06 -04:00
6007b24b5f
Client authentication is done. It will now put an API client in a server, however we clearly need to work on decompression, and we also need to accept and handle ping packets appropriately.
Manevolent2018-07-27 16:07:29 -04:00