1al_create_sample(3) al_create_sample(3)
2
3
4
6 al_create_sample - Allegro 5 API
7
9 #include <allegro5/allegro_audio.h>
10
11 ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,
12 unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,
13 ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)
14
16 Create a sample data structure from the supplied buffer. If free_buf
17 is true then the buffer will be freed with al_free(3) when the sample
18 data structure is destroyed. For portability (especially Windows), the
19 buffer should have been allocated with al_malloc(3). Otherwise you
20 should free the sample data yourself.
21
22 A sample that is referred to by the samples parameter refers to a se‐
23 quence channel intensities. E.g. if you’re making a stereo sample
24 with the samples set to 4, then the layout of the data in buf will be:
25
26 LRLRLRLR
27
28 Where L and R are the intensities for the left and right channels re‐
29 spectively. A single sample, then, refers to the LR pair in this exam‐
30 ple.
31
32 To allocate a buffer of the correct size, you can use something like
33 this:
34
35 int sample_size = al_get_channel_count(chan_conf)
36 * al_get_audio_depth_size(depth);
37 int bytes = samples * sample_size;
38 void *buffer = al_malloc(bytes);
39
41 al_destroy_sample(3), ALLEGRO_AUDIO_DEPTH(3), ALLEGRO_CHANNEL_CONF(3)
42
43
44
45Allegro reference manual al_create_sample(3)