Commit Graph

38 Commits

Author SHA1 Message Date
kozabrada123 56b2381716
Primitive voice implementation (feature/voice) (#457)
* Add Webrtc Identify & Ready

* Add more webrtc typings

* Attempt an untested voice gateway implementation

* fmt

* Merge with main

* Same allow as for voice as normal gateway

* Test error observer

* Minor updates

* More derives

* Even more derives

* Small types update

* e

* Minor doc fixes

* Modernise voice gateway

* Add default impl for voicegatewayerror

* Make voice event fields pub

* Event updates via the scientific method

* ??

* Fix bad request in voice gateway init

* Voice gateway updates

* Fix error failing to 'deserialize' properly

* Update voice identify

* Clarify FIXME related to #430

* Update to v7

* Create seperate voice_gateway.rs and voice_udp.rs

* Restructure voice to new module

* fix: deserialization error in speaking bitflags

* feat: kinda janky ip discovery impl

* feat: return ip discovery data + minor update

* feat: packet parsing!

* fix: voice works again

* feat: add voice_media_sink_wants

(comitting uncommited changes to merge)

* chore: rename events/webrtc to events/voice_gateway

* Add UdpHandle

* chore: clippy + other misc updates

* fix: attempt to fix failing wasm build

* chore: yes clippy, that is indeed an unneeded return statement

* feat: add VoiceData struct

* feat: add VoiceData reference to UdpHandler

* feat: decryption?

* chore: formatting

* feat: add ssrc definition (op 12)

* feat: add untested sending & asbtract nonce generation

* feat: Public api! (sorta)

* small updates

* feat: add sequence number

* chore: yes

* feat: merge VoiceHandler into official development

* chore: yes clippy, you are special

* fix: duplicated gateway events

* feat: first try at vgw wasm compat

* fix: blunder

* fix: gateway connect using wrong url

* fix: properly using encrypted data, bad practice for buffer creation

* chore: split voice udp

* feat: udp error handling, create udp/backends

* fix: its the same

* chore: clarify UDP on WASM

* api: split voice gateway and udp features, test for voice gateway in WASM

* feat: new encryption modes, minor code quality

* docs: document voice encryption modes

* chore: unused imports

* chore: update getrandom version to match wasm version

* chore: update on packet size FIXME

* drop buf asap

* Okay can't do that actually

* tests: add nonce test

* normal tests work?

* docs: fix doc warning, fix incorrect refrences to 'webrtc'

* chore: json isn't a doc test

* tests: better gateway auth test

* testing tests

* update voice heartbeat, fix the new test issue

* committed too much

* fix: unused import

* fix: use ip discovery address as string, not as Vec<u8>

* chore: less obnoxious logging

* chore: better unimplemented voice modes handling

* chore: remove unused variable

* chore: use matches macro

* add voice examples, make gateway ones clearer

* rename voice example

* chore: remove unused VoiceHandler

* fix: implement gateway Reconnect and InvalidSession

* Typo

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* Fix a bunch of typos

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* fix: error handling while loading native certs

* fix: guh

* use be for nonce bytes

* fix: refactor gw and vgw closures

* remove outdated docs

---------

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>
2024-04-16 17:18:21 +02:00
bitfl0wer 28cdd43b9b
Include license header everywhere 2024-01-30 17:19:34 +01:00
bitfl0wer 3040dcc46b
Add comment about test_self_updating_structs 2024-01-24 23:02:16 +01:00
bitfl0wer c950288df1
extend self updating structs test 2024-01-24 23:01:38 +01:00
bitfl0wer 5372d2c475
Make IntoShared trait with blanket implementation 2024-01-22 14:56:23 +01:00
bitfl0wer 29f3ee802a
Fix errors by moving into_shared out of Composite 2024-01-22 14:50:33 +01:00
bitfl0wer 6637f14b18
Replace Arc, Rwlock with Shared 2024-01-21 20:24:17 +01:00
bitfl0wer 9d581441e8
Remove "prettyfyme" -> solved 2023-11-22 20:54:51 +01:00
bitfl0wer e756999828
Add tests for GatewayMessage to increase coverage 2023-11-22 16:34:43 +01:00
bitfl0wer 8bf28012e4
Replace #[tokio::test] w/ wasm-ok macro calls 2023-11-22 14:39:32 +01:00
bitfl0wer 383f1cafea
Remove broken test code 2023-11-22 14:24:10 +01:00
bitfl0wer 0acf3fb5f7
Fix formatting in test functions 2023-11-20 14:36:00 +01:00
bitfl0wer 8eee0c816c
remove all .await from wasm tests 2023-11-20 14:11:56 +01:00
bitfl0wer 4288455aec
Add tests for WASM 2023-11-20 14:03:06 +01:00
bitfl0wer 0f2d2c8136
Resolve merge conflicts 2023-11-19 19:12:29 +01:00
bitfl0wer 08e7bc53c2
Rename `get_handle` to `spawn` 2023-11-18 19:07:56 +01:00
bitfl0wer 33d8adc2f8
Fixed most errors, simplified new generic traits 2023-11-18 18:39:01 +01:00
bitfl0wer 497c3bda74
Add prefix "Default" To Gateway, -Handler and HeartbeatHandler 2023-11-15 20:58:10 +01:00
bitfl0wer da40d7a4e2
Refactor Gateway module to implement traits and
improve code structure
2023-11-15 18:44:19 +01:00
bitfl0wer 6106bdf1cb
Start refactoring ChorusRequest to ChorusRequest::new() 2023-08-25 00:02:26 +02:00
bitfl0wer 027a07cd12
Update test a little 2023-08-17 18:23:57 +02:00
bitfl0wer c2e7a0bed7
Rewrite recursive update test (still fails sob) 2023-08-16 22:04:24 +02:00
bitfl0wer cc44e77bcc
Remove tokio watch channels 2023-08-16 21:26:19 +02:00
bitfl0wer c9d9e77f16
Add recursive-updating-structs test 2023-08-16 14:06:04 +02:00
bitfl0wer c5cfa9ba19
Remove import 2023-08-16 01:11:48 +02:00
bitfl0wer 93c9f669de
Refactor test 2023-08-16 01:11:32 +02:00
bitfl0wer 497fd56ab0
Revert "Give `GatewayHandle` and `Gateway` common trait to call `watch_whole()` or observe() from a `Gateway`"
This reverts commit 8e2e0d137d.
2023-08-16 00:21:18 +02:00
bitfl0wer 8e2e0d137d
Give `GatewayHandle` and `Gateway` common trait to call `watch_whole()` or observe() from a `Gateway` 2023-08-16 00:18:32 +02:00
bitfl0wer 632f633e0c
Remove unused import 2023-08-15 20:30:30 +02:00
bitfl0wer a48850a241
Clean up test 2023-08-15 20:20:58 +02:00
bitfl0wer 38e661075f
Try calling new method to see if it panics 2023-08-15 17:54:48 +02:00
bitfl0wer 8de2aee513
Update test to match code changes 2023-08-13 16:44:58 +02:00
bitfl0wer 041ee223c3
Moddify observe to still store T internally 2023-08-13 15:52:16 +02:00
fowb 582d855662 Change T: Updateable to Arc<RwLock<T>> 2023-08-12 22:40:40 +02:00
fowb d28f19d8ca Change observe() to take Arc<RwLock<T>> 2023-08-12 19:47:11 +02:00
bitfl0wer 36ea1fd7b2
Add `GatewayHandle` to `UserMeta` 2023-07-22 14:38:55 +02:00
Flori 38f0659ec9
Auto updating structs (#163)
* Gateway fields don't need to be pub

* Add store to Gateway

* Add UpdateMessage trait

* Proof of concept: impl UpdateMessage for Channel

* Start working on auto updating structs

* Send entity updates over watch channel

* Add id to UpdateMessage

* Create trait Updateable

* Add documentation

* add gateway test

* Complete test

* Impl UpdateMessage::update() for ChannelUpdate

* Impl UpdateMessage::update() for ChannelUpdate
Co-authored by: SpecificProtagonist <specificprotagonist@posteo.org>

* make channel::modify no longer mutate Channel

* change modify call

* remove unused imports

* Allow dead code with TODO to remove it

* fix channel::modify test

* Update src/gateway.rs

Co-authored-by: SpecificProtagonist <vincentjunge@posteo.net>

---------

Co-authored-by: SpecificProtagonist <vincentjunge@posteo.net>
2023-07-21 15:35:31 +02:00
kozabrada123 e6af81d694 Basic tests 2023-06-08 19:51:32 +02:00