doc: compile tutorial programs

The programs in `doc/examples` are not compiled currently, so let's
compile them if the `docs` and `examples` options don't disallow it.

`tutorial4.c` needs a small modification to avoid `-Wfloat-conversion`.

Additionally, install them if `installed_tests` is not disabled.
This commit is contained in:
Barnabás Pőcze 2026-05-06 23:41:10 +02:00 committed by Wim Taymans
parent b5d294eab0
commit 8caea521d7
3 changed files with 31 additions and 12 deletions

23
doc/examples/meson.build Normal file
View file

@ -0,0 +1,23 @@
tutorials = [
'tutorial1',
'tutorial2',
'tutorial3',
'tutorial4',
'tutorial5',
'tutorial6',
'tutorial7',
]
if not get_option('examples').allowed()
subdir_done()
endif
foreach c : tutorials
executable(
c,
sources: c + '.c',
dependencies: [ pipewire_dep, mathlib ],
install: installed_tests_enabled,
install_dir: installed_tests_execdir / 'examples',
)
endforeach

View file

@ -56,7 +56,7 @@ static void on_process(void *userdata)
* Another common method to convert a double to
* 16 bits is to multiple by 32768.0 and then clamp to
* [-32768 32767] to get the full 16 bits range. */
val = sin(data->accumulator) * DEFAULT_VOLUME * 32767.0;
val = (int16_t) (sin(data->accumulator) * DEFAULT_VOLUME * 32767.0);
for (c = 0; c < DEFAULT_CHANNELS; c++)
*dst++ = val;
}

View file

@ -169,18 +169,14 @@ cssfiles = [
]
# Example files (in order from simple to esoteric)
example_files = [
'tutorial1.c',
'tutorial2.c',
'tutorial3.c',
'tutorial4.c',
'tutorial5.c',
'tutorial6.c',
'tutorial7.c',
]
example_files = []
example_dep_files = []
foreach h : example_files
example_dep_files += ['examples/' + h]
subdir('examples')
foreach h : tutorials
example_files += [h + '.c']
example_dep_files += ['examples/' + h + '.c']
endforeach
foreach h : examples
example_files += [h + '.c']