Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
0099b88
feat: Prepare for cleanup
feelfreelinux Oct 21, 2024
3c27337
feat: First step of a larger cleanup, new structure, Socket utilities
feelfreelinux Nov 16, 2024
258ac29
feat: Refactor bell logger, add libfmt as a dependency
feelfreelinux Nov 17, 2024
7ab06fc
feat: Initial DSP cleanup, implement biquad, biquad combo and gain tr…
feelfreelinux Nov 18, 2024
dd16ccc
feat: Add CI/CD, fix up nix flake
feelfreelinux Nov 18, 2024
a77eaba
fix: Missing headers
feelfreelinux Nov 18, 2024
f9ea595
fix: Missing headers, once more
feelfreelinux Nov 18, 2024
dbde713
feat: Restructure includes
feelfreelinux Dec 11, 2024
e6e19b8
feat: Add the Codec class
feelfreelinux Dec 11, 2024
6a7f4d3
feat: Document missing functions in the codec abstraction
feelfreelinux Dec 11, 2024
e6eb8a7
feat: URIParser
feelfreelinux Dec 11, 2024
cc531c6
feat: Add more uri parser tests
feelfreelinux Dec 12, 2024
0d2bf60
fix: clang-format
feelfreelinux Dec 12, 2024
3f1bef1
feat: Begin implementing the refactored HTTPClient
feelfreelinux Dec 13, 2024
04a53af
feat: Begin implementing http::Response
feelfreelinux Dec 13, 2024
91a3cc4
feat: Finish up HTTPClient implementation
feelfreelinux Dec 14, 2024
218a60c
feat: mdns::Service MacOS implementation
feelfreelinux Dec 14, 2024
e353b15
feat: MDNSBrowser apple implementation, clean up network modules into…
feelfreelinux Dec 22, 2024
227395c
fix: missing mutex header
feelfreelinux Dec 22, 2024
f69bce9
feat: Add MDNSWrappersTest
feelfreelinux Dec 23, 2024
d3d4ebe
fix: resolve clang-tidy remark
feelfreelinux Dec 23, 2024
5fb3ab4
feat: utils::Semaphore
feelfreelinux Dec 23, 2024
d89f62f
feat: utils::Task
feelfreelinux Dec 23, 2024
3126e31
feat: taskName unused in pthreads impl
feelfreelinux Dec 23, 2024
52f1c9c
feat: Rework socket tests
feelfreelinux Dec 26, 2024
70e3e89
feat: WIP http server
feelfreelinux Dec 26, 2024
35b7f5e
feat: start implementing http common
feelfreelinux Dec 27, 2024
5a44e33
feat: write tests for HTTPReader
feelfreelinux Dec 27, 2024
a27ee07
feat: bell:http classes, finish up the Reader and Writer interface
feelfreelinux Dec 28, 2024
ca27f18
feat: RadixRouter, finish http::Server
feelfreelinux Dec 29, 2024
8a8bf13
fix: Compilation on linux
feelfreelinux Dec 29, 2024
b6942d6
feat: allow for overriding the log level in the logger
feelfreelinux Dec 29, 2024
7d62263
feat: Fix build on linuxx
feelfreelinux Jan 2, 2025
55ab40e
feat: Linux build fixes, implement avahi mdns service
feelfreelinux Jan 2, 2025
575be45
feat: MDNSBrowser for avahi, finish up linux support
feelfreelinux Jan 2, 2025
dde22df
feat: fix up build
feelfreelinux Jan 5, 2025
ec4342b
feat: fix up sanitizer errors
feelfreelinux Jan 6, 2025
6e0f3be
feat: OpusCodec, better Codec abstraction
feelfreelinux Jan 8, 2025
53dc2bf
feat: add mbedtls as submodule
feelfreelinux Jan 8, 2025
8fd8af0
feat: Make mbedtls inclusion configurable
feelfreelinux Jan 8, 2025
f424da3
feat: move the task core out of task.h namespace
feelfreelinux Jan 8, 2025
46fe382
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Jan 10, 2025
cd1b9de
feat: MbedTLSDigest
feelfreelinux Jan 10, 2025
4e7928b
feat: rename mbedtlsdigest to digestcrypto
feelfreelinux Jan 10, 2025
e262d03
feat: Add query params parsing to request reader
feelfreelinux Jan 11, 2025
404b161
feat: Minor fixes
feelfreelinux Jan 18, 2025
6b8f4ee
feat: namespacing, add in missing methods to network code
feelfreelinux Jan 18, 2025
ffbfedb
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Jan 18, 2025
1bd292b
feat: more socket fixes for umt
feelfreelinux Jan 18, 2025
f8f4135
feat: posix socket fixes
feelfreelinux Jan 21, 2025
7533f3d
feat: Fixes for UMT, implement PortAudioOutput
feelfreelinux Jan 26, 2025
78b0b8e
feat: setTimeout instead of timeoutMs parameter in write / read opera…
feelfreelinux Jan 27, 2025
aa88825
feat: initial fixes for espressif
feelfreelinux Jan 27, 2025
3c74588
fix: clang-format
feelfreelinux Jan 27, 2025
71a2191
feat: begin implementing mdnsbrowser for espressif
feelfreelinux Jan 27, 2025
4c3e56e
feat: use nosignal in send
feelfreelinux Jan 28, 2025
79cf88e
feat: Task implementation for espressif
feelfreelinux Jan 28, 2025
21842cc
feat: fixes for esp32
feelfreelinux Jan 29, 2025
c8d1437
feat: minor changes in belltask
feelfreelinux Jan 29, 2025
90bac47
feat: reduce iram usage in mdnsbrowser
feelfreelinux Jan 30, 2025
2d2cb2c
feat: fix up nix build
feelfreelinux Jan 30, 2025
b9df930
feat: TLSSocket
feelfreelinux Jan 30, 2025
8b0a79b
feat: Initial setup of MQTTClient
feelfreelinux Jan 30, 2025
3dc1bb0
feat: MQTTClient fixes
feelfreelinux Jan 31, 2025
1d1a1bd
feat: Implement the mixer transform
feelfreelinux Jan 31, 2025
25f1dc9
feat: add iqmath as dependency
feelfreelinux Feb 1, 2025
7530dad
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Feb 1, 2025
574514f
fix: uncomment gain transform
feelfreelinux Feb 1, 2025
8bee0ea
feat: Fixed-point DSP
feelfreelinux Feb 4, 2025
5a966c1
feat: fix up build on linux
feelfreelinux Feb 5, 2025
1473e63
feat: ping-pong buffer in dspslots
feelfreelinux Feb 6, 2025
027b23d
feat: pipeline parsing rework
feelfreelinux Feb 23, 2025
b017f44
feat: fix up butterworth coefficients calculation
feelfreelinux Feb 23, 2025
ad9139e
feat: Fix up SSL in MQTTClient
feelfreelinux Mar 20, 2025
4bd176a
fix: adjust dontPoll logic in tcpsocket
feelfreelinux Apr 4, 2025
b17f6f7
fix: crash on discovery macos
feelfreelinux Apr 6, 2025
5cdecb3
wip: use result<> in sockets
feelfreelinux Apr 7, 2025
7e28314
feat: continue working on net::Result<>
feelfreelinux Apr 7, 2025
51607f3
feat: further move to result><
feelfreelinux Apr 8, 2025
7633d03
feat: Add move and copy constructor to the socket classes
feelfreelinux Apr 11, 2025
d58228c
feat: improved the TLS client, further socket improvements
feelfreelinux Apr 11, 2025
b151179
fix: Socket poll and http server fixes
feelfreelinux Apr 12, 2025
7f9175a
feat: MDNS wrappers refactor, apple + esp support for now
feelfreelinux Apr 27, 2025
ba33b61
feat: Fix up MDNS unit tests
feelfreelinux May 1, 2025
fd9ddfb
feat: AvahiMDNSManager
feelfreelinux May 6, 2025
c20c216
fix: clang-format
feelfreelinux May 6, 2025
5aa29b3
fix: update nix
feelfreelinux May 6, 2025
3bb42d0
feat: Move to bell::Result<> in more classes
feelfreelinux May 9, 2025
9cb5dc4
feat: Make the http request interface generic
feelfreelinux May 11, 2025
35c4e1f
feat: various fixes
feelfreelinux May 20, 2025
35de6c9
feat: espressif mdns manager quickfix
feelfreelinux May 28, 2025
0a077ac
feat: add tcb/span
feelfreelinux Jun 2, 2025
318b8bc
feat: move span outside of submodule
feelfreelinux Jun 11, 2025
2436f2a
feat: update mbedtls
feelfreelinux Jul 9, 2025
abe76b0
feat: Include FDK-AAC codec
feelfreelinux Jul 23, 2025
91bcc9f
feat: Make FDK-aac compatibile with esp32, add AAC960
feelfreelinux Jul 25, 2025
5970b39
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Jul 29, 2025
6a5c1cf
feat: add circular byte buffer
feelfreelinux Aug 7, 2025
3336bbf
feat: Switch to std::expected implementation for bell::Result class, …
feelfreelinux Aug 12, 2025
7944b92
fix: Build on liunx
feelfreelinux Aug 12, 2025
3f00d16
feat: Silence opus again
feelfreelinux Aug 13, 2025
14f3ea1
feat: start preparing the new portaudio backend
feelfreelinux Aug 13, 2025
56cc4c3
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Aug 14, 2025
dae760b
feat: DataStream / FileDataStream / HttpDataStream
feelfreelinux Aug 14, 2025
acb5dcf
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Aug 15, 2025
b4efa83
feat: add tremor lib
feelfreelinux Aug 15, 2025
ea2703e
Merge branch 'feature/cleanup' of github.com:feelfreelinux/bell into …
feelfreelinux Aug 15, 2025
2638bdf
fix: Proper reply success in lastError() if no error is found
feelfreelinux Aug 15, 2025
c27d19b
fix: PosixSocket::lastError() return success code
feelfreelinux Aug 15, 2025
b686d93
feat: Doctest, rewrite http client
feelfreelinux Aug 16, 2025
8844c6a
feat: HTTPClient unit tests
feelfreelinux Aug 16, 2025
401dcf3
feat: use std::byte for byte operations
feelfreelinux Aug 16, 2025
ed60217
feat: add missing bytesLen to http client
feelfreelinux Aug 20, 2025
ec92577
wip: ogg container, vorbis codec
feelfreelinux Sep 4, 2025
058470c
feat: Implement TremorVorbisCodec, rework codec logic a bit
feelfreelinux Sep 9, 2025
ae04b81
feat: build fixes
feelfreelinux Sep 10, 2025
3c69c32
feat: finishup oggcontainer
feelfreelinux Sep 15, 2025
669c502
fix: typo
feelfreelinux Sep 15, 2025
5c3cd0a
fix: Esp32 build fixes
feelfreelinux Sep 16, 2025
300afa9
feat: optimize seeking in ogg container
feelfreelinux Sep 30, 2025
7607f3a
feat: Further fixes to OggContainer, replaced tl::expected with nonst…
feelfreelinux Oct 4, 2025
172ef27
fix: Close broken connections in http client pool
feelfreelinux Oct 9, 2025
b64cfbf
fix: missing include in Codec.h
feelfreelinux Oct 9, 2025
f698add
fix: socket poll listener resource clear
feelfreelinux Nov 23, 2025
f4dda3b
feat: Implement the ringbuffer class
feelfreelinux Dec 8, 2025
80a43f0
feat: Optimize dsp & logger
feelfreelinux Dec 24, 2025
b6aec94
feat: dsp optimizations, esp memory allocator
feelfreelinux Jan 6, 2026
bb16d9b
fix: Broken output length in aac codec
feelfreelinux Jan 12, 2026
e9f6284
fix: invalid buffer size for the aac codec
feelfreelinux Jan 12, 2026
ede561c
fix: add lc3 plus codec
feelfreelinux Jan 22, 2026
03ecd9f
fix: LC3PlusCodec setup
feelfreelinux Jan 22, 2026
7c36417
feat: Add support to hqlc codec
feelfreelinux Mar 22, 2026
9b0f360
feat: update hqlc, bunch of different fixes
feelfreelinux May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: c++11
TabWidth: 4
UseTab: Never
UseTab: Never
42 changes: 41 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1 +1,41 @@
UseColor: true
Checks: >-
-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-init-variables,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-pro-type-union-access,
-cppcoreguidelines-pro-type-vararg,
misc-*,
-misc-non-private-member-variables-in-classes,
modernize-*,
-modernize-use-auto,
-modernize-use-nodiscard,
-modernize-avoid-bind,
-modernize-use-trailing-return-type,
performance-*,
readability-*,
-readability-avoid-const-params-in-decls,
-readability-braces-around-statements,
-readability-function-cognitive-complexity,
-readability-identifier-length,
-readability-implicit-bool-conversion,
-readability-magic-numbers

CheckOptions:
- key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted
value: true
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
value: true
- key: readability-redundant-member-init.IgnoreBaseInCopyConstructors
value: true
- key: cppcoreguidelines-avoid-do-while.IgnoreMacros
value: true
5 changes: 4 additions & 1 deletion .clangd
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
CompileFlags:
CompilationDatabase: examples/dsp/build # Search build/ directory for compile_commands.json
CompilationDatabase: build
Remove: [-fstrict-volatile-bitfields, -fno-tree-switch-conversion, -fno-shrink-wrap]
Diagnostics:
UnusedIncludes: Strict
19 changes: 19 additions & 0 deletions .github/workflows/build-cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Run tests
on:
push:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
target: [tests]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: cachix/install-nix-action@v24
with:
nix_path: nixpkgs=channel:nixos-24.11
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix build "git+file://$(pwd)?shallow=1&submodules=1#${{ matrix.target }}"
19 changes: 0 additions & 19 deletions .github/workflows/c-cpp.yml

This file was deleted.

16 changes: 9 additions & 7 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
name: Run clang-format check
on:
pull_request:
push:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: nix develop --command python3 .github/scripts/run-clang-format.py -r main test
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-24.11
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix develop --command python3 .github/scripts/run-clang-format.py -r main/ include/
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ compile_commands.json
CTestTestfile.cmake
_deps

# ninja
build.ninja
DartConfiguration.tcl

### CMake Patch ###
# External projects
*-prefix/
Expand Down Expand Up @@ -127,3 +131,6 @@ Temporary Items
build/
__history/
*.bak

# Python pycache
__pycache__
30 changes: 24 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
[submodule "external/nlohmann_json"]
path = external/nlohmann_json
url = https://github.com/nlohmann/json
[submodule "external/mdnssvc"]
path = external/mdnssvc
url = https://github.com/philippe44/mdnssvc
[submodule "external/fmt"]
path = external/fmt
url = git@github.com:fmtlib/fmt.git
[submodule "external/taojson"]
path = external/taojson
url = git@github.com:feelfreelinux/taojson.git
[submodule "external/catch2"]
path = external/catch2
url = git@github.com:catchorg/Catch2.git
[submodule "external/mbedtls"]
path = external/mbedtls
url = https://github.com/Mbed-TLS/mbedtls.git
[submodule "external/span"]
path = external/span
url = https://github.com/tcbrindle/span.git
[submodule "external/doctest"]
path = external/doctest
url = git@github.com:doctest/doctest.git
[submodule "external/trompeloeil"]
path = external/trompeloeil
url = git@github.com:rollbear/trompeloeil.git
[submodule "external/hqlc"]
path = external/hqlc
url = git@github.com:feelfreelinux/hqlc.git
16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "gdb",
"request": "launch",
"name": "Debug tests",
"program": "${workspaceFolder}/build/test/bell-test",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
73 changes: 10 additions & 63 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,65 +1,12 @@
{
"files.associations": {
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"concepts": "cpp",
"condition_variable": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"map": "cpp",
"set": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"semaphore": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"typeinfo": "cpp",
"cinttypes": "cpp"
}
"clangd.arguments": [
"--background-index",
"--clang-tidy",
"-j=8",
"--pch-storage=memory",
// "--query-driver=/**/bin/xtensa-esp32-elf-*"
],
"C_Cpp.intelliSenseEngine": "disabled",
"editor.tabSize": 2,
"idf.pythonInstallPath": "/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/bin/python3"
}
13 changes: 13 additions & 0 deletions .zed/debug.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Project-local debug tasks
//
// For more documentation on how to configure debug tasks,
// see: https://zed.dev/docs/debugger
[
{
"label": "Tests (gdb)",
"adapter": "GDB",
"request": "launch",
"program": "test/bell-test",
"cwd": "$ZED_WORKTREE_ROOT/build"
}
]
Loading
Loading