11#![ allow( clippy:: needless_return) ]
2+ //! Sound buffer loading example that decodes a WAV or OGG Vorbis file.
3+ //!
4+ //! This example is application-facing and uses only the `lambda-rs` API surface.
25
6+ #[ cfg( any(
7+ feature = "audio-sound-buffer" ,
8+ feature = "audio-sound-buffer-wav" ,
9+ feature = "audio-sound-buffer-vorbis"
10+ ) ) ]
311use std:: path:: {
412 Path ,
513 PathBuf ,
614} ;
715
16+ #[ cfg( any(
17+ feature = "audio-sound-buffer" ,
18+ feature = "audio-sound-buffer-wav" ,
19+ feature = "audio-sound-buffer-vorbis"
20+ ) ) ]
821use lambda:: audio:: {
922 AudioError ,
1023 SoundBuffer ,
1124} ;
1225
26+ #[ cfg( not( any(
27+ feature = "audio-sound-buffer" ,
28+ feature = "audio-sound-buffer-wav" ,
29+ feature = "audio-sound-buffer-vorbis"
30+ ) ) ) ]
31+ fn main ( ) {
32+ eprintln ! (
33+ "This example requires `lambda-rs` sound buffer features.\n \n \
34+ Run:\n cargo run -p lambda-rs --example sound_buffer_load --features audio-sound-buffer"
35+ ) ;
36+ return ;
37+ }
38+
39+ #[ cfg( any(
40+ feature = "audio-sound-buffer" ,
41+ feature = "audio-sound-buffer-wav" ,
42+ feature = "audio-sound-buffer-vorbis"
43+ ) ) ]
1344fn main ( ) {
1445 let path = match parse_path_argument ( ) {
1546 Ok ( path) => path,
@@ -34,6 +65,11 @@ fn main() {
3465 return ;
3566}
3667
68+ #[ cfg( any(
69+ feature = "audio-sound-buffer" ,
70+ feature = "audio-sound-buffer-wav" ,
71+ feature = "audio-sound-buffer-vorbis"
72+ ) ) ]
3773fn parse_path_argument ( ) -> Result < PathBuf , String > {
3874 let mut args = std:: env:: args_os ( ) ;
3975 let program_name = args
@@ -48,6 +84,11 @@ fn parse_path_argument() -> Result<PathBuf, String> {
4884 return Ok ( PathBuf :: from ( path) ) ;
4985}
5086
87+ #[ cfg( any(
88+ feature = "audio-sound-buffer" ,
89+ feature = "audio-sound-buffer-wav" ,
90+ feature = "audio-sound-buffer-vorbis"
91+ ) ) ]
5192fn load_sound_buffer ( path : & Path ) -> Result < SoundBuffer , AudioError > {
5293 let extension = path
5394 . extension ( )
0 commit comments