Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
50623da
[update] structure to group audio dependencies together.
vmarcella Jan 31, 2026
7cf8891
[update] specifications to match new locations.
vmarcella Jan 31, 2026
536b007
[add] specification for wav and ogg decoding using symphonia.
vmarcella Jan 31, 2026
4313064
[refactor] audio to be it's own module.
vmarcella Jan 31, 2026
7895a17
[refactor] audio module into separate modules and add features for au…
vmarcella Jan 31, 2026
2d02586
[add] symphonia and initial implementation.
vmarcella Feb 1, 2026
7e8beb9
[add] decoder implementations.
vmarcella Feb 2, 2026
bdb9575
[add] sound buffer implementation & implement wav/ogg decoding.
vmarcella Feb 2, 2026
850b648
[add] sound files to git-lfs to avoid tracking.
vmarcella Feb 2, 2026
5d43a86
[add] tests for loading ogg/wav files with various sampling rates and…
vmarcella Feb 2, 2026
f5bd085
[add] example which plays our slash sound.
vmarcella Feb 2, 2026
07bd48c
[add] tool which can load & play different audio files (Primarily for…
vmarcella Feb 2, 2026
940240f
[add] README to showcase how to use the tool.
vmarcella Feb 2, 2026
1a6793f
[add] documentation to audio implementation.
vmarcella Feb 2, 2026
acaa047
[update] documentation.
vmarcella Feb 2, 2026
ad962e9
[add] better documentation to public audio apis.
vmarcella Feb 2, 2026
6a5fd40
[add] documentation to the lambda-audio tool
vmarcella Feb 2, 2026
3260ec0
[update] specifications to matc implementation.
vmarcella Feb 2, 2026
c1618bc
[update] workflows to use lfs
vmarcella Feb 3, 2026
68a1805
[update] the example to temporarily require audio features to work (N…
vmarcella Feb 3, 2026
df7697f
[update] the audio tool to not be part of the default workspace.
vmarcella Feb 3, 2026
632f007
[update] example to not rely on audio if the feature is not defined (…
vmarcella Feb 3, 2026
a4d7064
[fix] unwrap_or_else -> unwrap_or_default
vmarcella Feb 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
*.png filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.oga filter=lfs diff=lfs merge=lfs -text
18 changes: 18 additions & 0 deletions .github/workflows/compile_lambda_rs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
lfs: true

- name: Cache cargo builds
uses: Swatinem/rust-cache@v2
Expand Down Expand Up @@ -87,14 +89,30 @@ jobs:
cargo +nightly-2025-09-26 fmt --all --check

- name: Build workspace
if: ${{ contains(matrix.features, 'lambda-rs/audio-output-device') }}
run: cargo build --workspace --features ${{ matrix.features }}

- name: Build workspace (exclude audio tools)
if: ${{ !contains(matrix.features, 'lambda-rs/audio-output-device') }}
run: |
cargo build --workspace \
--exclude lambda-audio-tool \
--features ${{ matrix.features }}

- name: Build examples (lambda-rs)
run: cargo build -p lambda-rs --examples --features ${{ matrix.features }}

- name: Test workspace
if: ${{ contains(matrix.features, 'lambda-rs/audio-output-device') }}
run: cargo test --workspace --features ${{ matrix.features }}

- name: Test workspace (exclude audio tools)
if: ${{ !contains(matrix.features, 'lambda-rs/audio-output-device') }}
run: |
cargo test --workspace \
--exclude lambda-audio-tool \
--features ${{ matrix.features }}

- uses: actions/setup-ruby@v1
- name: Send Webhook Notification for build status.
if: ${{ github.ref == 'refs/heads/main' }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ jobs:
with:
# Fetch enough history for diff against base branch
fetch-depth: 0
lfs: true

- name: Cache cargo builds
uses: Swatinem/rust-cache@v2
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/lambda-repo-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ jobs:
- name: Install dependencies for converting clippy output to SARIF
run: cargo install clippy-sarif sarif-fmt

- name: Install Linux deps for audio
run: |
sudo apt-get update
sudo apt-get install -y libasound2-dev

- name: Check formatting
run: |
rustup component add rustfmt --toolchain nightly-2025-09-26
Expand Down
13 changes: 10 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,17 @@ jobs:
run: cargo fmt --all -- --check

- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
run: |
cargo clippy --workspace \
--exclude lambda-audio-tool \
--all-targets \
-- -D warnings

- name: Tests
run: cargo test --workspace -- --nocapture
run: |
cargo test --workspace \
--exclude lambda-audio-tool \
-- --nocapture

prepare_version:
name: Prepare version, tag, push
Expand Down Expand Up @@ -221,7 +228,7 @@ jobs:
shell: bash
run: |
set -euo pipefail
cargo build --workspace --release --bins
cargo build --workspace --exclude lambda-audio-tool --release --bins

- name: Stage files
id: stage
Expand Down
118 changes: 118 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"crates/lambda-rs-logging",
"crates/lambda-rs-platform",
"tools/obj_loader",
"tools/lambda_audio",
]

default-members = [
Expand Down
10 changes: 9 additions & 1 deletion crates/lambda-rs-platform/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ wgpu = { version = "=28.0.0", optional = true, features = ["wgsl", "spirv"] }
pollster = { version = "=0.4.0", optional = true }
lambda-rs-logging = { path = "../lambda-rs-logging", version = "2023.1.30" }
cpal = { version = "=0.17.1", optional = true }
symphonia = { version = "=0.5.5", optional = true, default-features = false, features = [
"ogg",
"vorbis",
"wav",
"pcm",
] }

# Force windows crate to 0.62 to unify wgpu-hal and gpu-allocator dependencies.
# Both crates support this version range, but Cargo may resolve to different
Expand Down Expand Up @@ -53,7 +59,9 @@ wgpu-with-gl = ["wgpu", "wgpu/webgl"]
# ---------------------------------- AUDIO ------------------------------------

# Umbrella features (disabled by default)
audio = ["audio-device"]
audio = ["audio-device", "audio-decode-wav", "audio-decode-vorbis"]

# Granular feature flags (disabled by default)
audio-device = ["dep:cpal"]
audio-decode-wav = ["dep:symphonia"]
audio-decode-vorbis = ["dep:symphonia"]
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Loading
Loading