Commit Graph

32 Commits

Author SHA1 Message Date
Georgi Gerganov
9cea484135 ggwave : add DSS tests + improve enums 2022-07-04 21:18:20 +03:00
Georgi Gerganov
c4947d75d7 ggwave : add DSS test + remove OperatingMode enum 2022-07-04 21:18:20 +03:00
Georgi Gerganov
ca84180f22 ggwave : add default constructor 2022-07-04 21:18:20 +03:00
Georgi Gerganov
2bc3c60d03 js : update + fix test 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7c5b614c16 ggwave : big refactoring / renaming 2022-07-04 21:18:20 +03:00
Georgi Gerganov
676163cc65 ggwave : remove <map> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov
4f94634611 ggwave : remove <functional> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov
069169f700 ggwave : add mono-tone protocols 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7a0c1681b1 ecc : reduce memory allocations in reed-solomon lib 2022-07-04 21:18:20 +03:00
Georgi Gerganov
05955a3ffa wip 2022-07-04 21:18:20 +03:00
Georgi Gerganov
81f7647c81 js : fix test and example 2022-05-02 19:39:59 +03:00
Georgi Gerganov
bbacdbcc96 c-api : add toggleRxProtocol() (#60)
This function allows to enable/disable Rx protocols during the decoding
process. This is useful when the Tx/Rx protocol is known in advance.
2021-11-22 21:29:26 +02:00
Georgi Gerganov
1ebe881ea9 ggwave : update bindings to toggle logging on and off (#55)
ref #54
2021-11-22 20:17:16 +02:00
Georgi Gerganov
43bf2f17e1 ggwave : fix out-of-bounds access in ggwave_decode (#53)
Also, provide a memory-safe overload called ggwave_ndecode()
The overload takes an extra parameter that specifies the size of
the output buffer and thus limits the size of the Rx payload that can be
decoded and stored.
2021-09-21 07:07:12 +03:00
Georgi Gerganov
9cf2d476b8 Add interface for changing ggwave's internal logging (#52)
* ggwave : add interface for changing ggwave's internal logging

Using GGWave::setLogFile() it is now possible to change the log file
used internally by ggwave, or disable it all together.

* ggwave : add comments about thread-safety of setLogFile
2021-09-21 06:48:16 +03:00
Georgi Gerganov
68d77facb2 tests : fix C test 2021-02-27 19:59:52 +02:00
Georgi Gerganov
5f2bfd09ba msys2 : fix build 2021-02-27 09:47:13 -08:00
Georgi Gerganov
553b414929 ggwave : more resampling fixes
This time the sound cracking should be fixed for real.

Also adding option to generate noise in the cpp tests
2021-02-21 13:30:27 +02:00
Georgi Gerganov
62b71c3322 ggwave : resampling fixes
The old output resampling was bugged and produced cracking in the audio
when the output sampling rate was different from the base sampling rate.

Additionally, the decoding wasn't properly handling resampled input in all
cases.
2021-02-21 00:16:43 +02:00
Georgi Gerganov
f4fb02d5d4 ggwave : add "soundMarkerThreshold" parameter
Can be used to control the threshold used for distinguishing odd from even
frequencies in the sound markers.
2021-02-21 00:13:28 +02:00
Georgi Gerganov
19bf22df0d ggwave v0.2.0 (#20)
* ggwave : add support for fixed length transmissions

* spectrogram : add sample rate offset for debugging purposes

* gwave : fix decoding bug

* waver : wip

* wip

* remove post-marker frames

* add resampler

* ggwave : input/output resampling

* ggwave : fix python build

* ggwave : update spm

* ggwave : refactor duplicate encode/decode code

* ggwave : fix sound marker detection

* waver : fix typo

* ggwave : fix uninitialized members

* ggwave : more sensitive receive
2021-02-20 19:16:15 +02:00
Georgi Gerganov
34314e77f7 py : change file mode 2021-01-24 17:36:45 +02:00
Georgi Gerganov
19f353018d Javascript bindings (#14)
* Initial version ready

- bindings are in `bindings/emscripten.cpp`
- minimal Javascript example is in `examples/ggwave-js`

* add npm package + add test-ggwave.js

* js : rename export name to "ggwave_factory"

* update to v0.1.5

* Update README.md

* npm : add npm-publish target
2021-01-24 17:25:58 +02:00
Georgi Gerganov
105e0fd48d update default parameters + python updates
- by default ggwave will now output 32-bit float samples
- python samples no longer use numpy
- python test now decodes payload
- fix buffer overflow in receive.py example
2021-01-23 23:30:24 +02:00
Georgi Gerganov
ba8e0cd2b1 c, python : add option to query encode size 2021-01-23 17:13:13 +02:00
Georgi Gerganov
0c746c1b15 tests : add test for capture/playback at different sample rates 2021-01-23 16:27:50 +02:00
Georgi Gerganov
597cc48cbb core : refactoring + bug fix
- rename callback types
- fix calculation of data frames
2021-01-23 15:47:59 +02:00
Georgi Gerganov
f245b6e930 tests : add C test 2021-01-23 14:25:18 +02:00
Georgi Gerganov
069bc02a82 ci : add output-on-failure to ctest 2021-01-23 13:24:08 +02:00
Georgi Gerganov
0bb455041e cmake : add python support 2021-01-23 13:15:16 +02:00
Georgi Gerganov
a64106783f Support for various sample formats (#11)
* wip : support for various sample formats

* finalize support for various sample formats

* adding more tests

* update python bindings

* add "string" header
2021-01-23 11:45:20 +02:00
Georgi Gerganov
86b3615012 tests : adding first tests + sanitizer builds 2021-01-18 21:32:27 +02:00