Skip to content

Commit 7cf8891

Browse files
committed
[update] specifications to match new locations.
1 parent 50623da commit 7cf8891

2 files changed

Lines changed: 28 additions & 29 deletions

File tree

docs/features.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: "Cargo Features Overview"
33
document_id: "features-2025-11-17"
44
status: "living"
55
created: "2025-11-17T23:59:00Z"
6-
last_updated: "2026-01-31T00:00:27Z"
7-
version: "0.1.11"
6+
last_updated: "2026-01-31T22:33:14Z"
7+
version: "0.1.12"
88
engine_workspace_version: "2023.1.30"
99
wgpu_version: "26.0.1"
1010
shader_backend_default: "naga"
1111
winit_version: "0.29.10"
12-
repo_commit: "2ae6419f001550adaa13a387b94fdf2bd86a882b"
12+
repo_commit: "1aaa56a242939572b6ec08eda82364c16a85e59a"
1313
owners: ["lambda-sh"]
1414
reviewers: ["engine", "rendering"]
1515
tags: ["guide", "features", "validation", "cargo", "audio"]
@@ -133,7 +133,7 @@ Audio
133133
composing granular platform audio features. This umbrella includes
134134
`audio-device`.
135135
- `audio-device` (granular, disabled by default): enables the internal audio
136-
backend module `lambda_platform::cpal` backed by `cpal =0.17.1`.
136+
backend module `lambda_platform::audio::cpal` backed by `cpal =0.17.1`.
137137

138138
## Changelog
139139
- 0.1.11 (2026-01-30): Make `lambda-rs` audio features opt-in by default.

docs/specs/audio-devices.md

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ title: "Audio Device Abstraction"
33
document_id: "audio-device-abstraction-2026-01-28"
44
status: "draft"
55
created: "2026-01-28T22:59:00Z"
6-
last_updated: "2026-01-31T00:00:27Z"
7-
version: "0.1.15"
6+
last_updated: "2026-01-31T22:33:14Z"
7+
version: "0.1.16"
88
engine_workspace_version: "2023.1.30"
99
wgpu_version: "26.0.1"
1010
shader_backend_default: "naga"
1111
winit_version: "0.29.10"
12-
repo_commit: "2ae6419f001550adaa13a387b94fdf2bd86a882b"
12+
repo_commit: "1aaa56a242939572b6ec08eda82364c16a85e59a"
1313
owners: ["lambda-sh"]
1414
reviewers: ["engine", "rendering"]
1515
tags: ["spec", "audio", "lambda-rs", "platform", "cpal"]
@@ -98,7 +98,7 @@ application
9898
└── lambda::audio
9999
├── enumerate_output_devices() -> Vec<AudioOutputDeviceInfo>
100100
└── AudioOutputDeviceBuilder::build() -> AudioOutputDevice
101-
└── lambda_platform::cpal (internal)
101+
└── lambda_platform::audio::cpal (internal)
102102
├── enumerate_devices() -> Vec<AudioDeviceInfo>
103103
└── AudioDeviceBuilder::build() -> AudioDevice
104104
└── cpal (host + device + stream)
@@ -115,17 +115,17 @@ its audio APIs directly.
115115

116116
Module layout
117117

118-
- `crates/lambda-rs-platform/src/cpal/mod.rs`
118+
- `crates/lambda-rs-platform/src/audio/cpal/mod.rs`
119119
- Re-exports `AudioDevice`, `AudioDeviceBuilder`, `AudioDeviceInfo`,
120120
`AudioError`, and `enumerate_devices`.
121-
- `crates/lambda-rs-platform/src/cpal/device.rs`
121+
- `crates/lambda-rs-platform/src/audio/cpal/device.rs`
122122
- Defines `AudioDevice`, `AudioDeviceBuilder`, `AudioDeviceInfo`,
123123
`AudioError`, and `enumerate_devices`.
124124

125125
Public API
126126

127127
```rust
128-
// crates/lambda-rs-platform/src/cpal/device.rs
128+
// crates/lambda-rs-platform/src/audio/cpal/device.rs
129129

130130
/// Output sample format used by the platform stream callback.
131131
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
@@ -220,7 +220,7 @@ pub fn enumerate_devices() -> Result<Vec<AudioDeviceInfo>, AudioError>;
220220
### lambda-rs Public API
221221

222222
`lambda-rs` provides the application-facing audio API and translates to
223-
`lambda_platform::cpal` (package: `lambda-rs-platform`) internally. The
223+
`lambda_platform::audio::cpal` (package: `lambda-rs-platform`) internally. The
224224
`lambda-rs` layer MUST remain backend-agnostic and MUST NOT expose `cpal`
225225
types.
226226

@@ -317,7 +317,7 @@ pub fn enumerate_output_devices(
317317

318318
Implementation rules
319319

320-
- `lambda::audio` MUST translate into `lambda_platform::cpal` (package:
320+
- `lambda::audio` MUST translate into `lambda_platform::audio::cpal` (package:
321321
`lambda-rs-platform`) internally.
322322
- `lambda::audio` MUST define its own public types and MUST NOT re-export
323323
`lambda-rs-platform` audio types.
@@ -490,9 +490,9 @@ Error type
490490
expose `cpal` or `lambda-rs-platform` types.
491491
- `lambda-rs-platform` MUST define an internal `AudioError` suitable for
492492
actionable diagnostics inside the platform layer.
493-
- `lambda_platform::cpal::AudioError` (package: `lambda-rs-platform`) MUST NOT
493+
- `lambda_platform::audio::cpal::AudioError` (package: `lambda-rs-platform`) MUST NOT
494494
expose `cpal` types in its public API.
495-
- `lambda-rs` MUST translate `lambda_platform::cpal::AudioError` (package:
495+
- `lambda-rs` MUST translate `lambda_platform::audio::cpal::AudioError` (package:
496496
`lambda-rs-platform`) into `lambda::audio::AudioError`. Backend-specific
497497
failures SHOULD map to `AudioError::Platform { details }`.
498498

@@ -581,35 +581,34 @@ Feature gating requirements
581581
(`crates/lambda-rs/src/audio.rs:294`)
582582
- [x] `AudioOutputDeviceBuilder::build` initializes default output device
583583
(`crates/lambda-rs/src/audio.rs:222`,
584-
`crates/lambda-rs-platform/src/cpal/device.rs:403`)
584+
`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
585585
- [x] `AudioOutputDeviceBuilder::build_with_output_callback` invokes callback
586586
(`crates/lambda-rs/src/audio.rs:247`,
587-
`crates/lambda-rs-platform/src/cpal/device.rs:524`)
587+
`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
588588
- [x] Stream created and kept alive for `AudioOutputDevice` lifetime
589589
(`crates/lambda-rs/src/audio.rs:182`,
590-
`crates/lambda-rs-platform/src/cpal/device.rs:352`)
591-
- [x] Platform enumeration implemented (`lambda_platform::cpal`)
592-
(`crates/lambda-rs-platform/src/cpal/device.rs:807`)
593-
- [x] Platform builder implemented (`lambda_platform::cpal`)
594-
(`crates/lambda-rs-platform/src/cpal/device.rs:365`)
590+
`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
591+
- [x] Platform enumeration implemented (`lambda_platform::audio::cpal`)
592+
(`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
593+
- [x] Platform builder implemented (`lambda_platform::audio::cpal`)
594+
(`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
595595
- API Surface
596596
- [x] Public `lambda` types implemented: `AudioOutputDevice`,
597597
`AudioOutputDeviceInfo`, `AudioOutputDeviceBuilder`, `AudioCallbackInfo`,
598598
`AudioOutputWriter`, `AudioError` (`crates/lambda-rs/src/audio.rs:12`)
599599
- [x] Internal platform types implemented: `AudioDevice`, `AudioDeviceInfo`,
600600
`AudioDeviceBuilder`, `AudioCallbackInfo`, `AudioOutputWriter`, `AudioError`
601-
(`crates/lambda-rs-platform/src/cpal/device.rs:12`)
601+
(`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
602602
- [x] `lambda::audio` does not re-export `lambda-rs-platform` types
603603
(`crates/lambda-rs/src/audio.rs:10`)
604604
- Validation and Errors
605605
- [x] Invalid builder inputs rejected (sample rate and channel count)
606-
(`crates/lambda-rs-platform/src/cpal/device.rs:403`,
607-
`crates/lambda-rs-platform/src/cpal/device.rs:847`)
606+
(`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
608607
- [x] Descriptive `AudioError` variants emitted on failures
609608
(`crates/lambda-rs/src/audio.rs:65`,
610-
`crates/lambda-rs-platform/src/cpal/device.rs:265`)
609+
`crates/lambda-rs-platform/src/audio/cpal/device.rs`)
611610
- [x] Unsupported configurations reported via `AudioError::UnsupportedConfig`
612-
(`crates/lambda-rs-platform/src/cpal/device.rs:800`,
611+
(`crates/lambda-rs-platform/src/audio/cpal/device.rs`,
613612
`crates/lambda-rs/src/audio.rs:72`)
614613
- Documentation and Examples
615614
- [x] `docs/features.md` updated with audio feature documentation
@@ -665,14 +664,14 @@ Manual checks
665664
- 2026-01-30 (v0.1.12) — Populate the requirements checklist with file
666665
references matching the implemented surface.
667666
- 2026-01-30 (v0.1.11) — Align examples with the `lambda` crate name, document
668-
the internal `lambda_platform::cpal` path and pin, and refine default
667+
the internal `lambda_platform::audio::cpal` path and pin, and refine default
669668
configuration selection requirements to match the implementation.
670669
- 2026-01-30 (v0.1.10) — Enable `lambda-rs` audio features by default.
671670
- 2026-01-29 (v0.1.9) — Fix YAML front matter to use a single `version` field.
672671
- 2026-01-29 (v0.1.8) — Make the `lambda-rs` facade example the primary
673672
reference and remove the platform example requirement.
674673
- 2026-01-29 (v0.1.7) — Rename the platform audio implementation module to
675-
`lambda_platform::cpal` (package: `lambda-rs-platform`) to reflect the
674+
`lambda_platform::audio::cpal` (package: `lambda-rs-platform`) to reflect the
676675
internal backend.
677676
- 2026-01-29 (v0.1.6) — Specify `lambda-rs` as the only supported
678677
application-facing API and treat `lambda-rs-platform` as internal.

0 commit comments

Comments
 (0)