Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       al_create_sample - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro_audio.h>

              ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,
                 unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,
                 ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)

DESCRIPTION

       Create  a  sample  data  structure from the supplied buffer.  If free_buf is true then the
       buffer will be freed with al_free(3alleg5) when the sample data  structure  is  destroyed.
       For  portability  (especially  Windows),  the  buffer  should  have  been  allocated  with
       al_malloc(3alleg5).  Otherwise you should free the sample data yourself.

       A sample that is referred to by  the  samples  parameter  refers  to  a  sequence  channel
       intensities.   E.g.   if you're making a stereo sample with the samples set to 4, then the
       layout of the data in buf will be:

              LRLRLRLR

       Where L and R are the intensities for the left and right channels respectively.  A  single
       sample, then, refers to the LR pair in this example.

       To allocate a buffer of the correct size, you can use something like this:

              int sample_size = al_get_channel_count(chan_conf)
                                * al_get_audio_depth_size(depth);
              int bytes = samples * sample_size;
              void *buffer = al_malloc(bytes);

SEE ALSO

       al_destroy_sample(3alleg5), ALLEGRO_AUDIO_DEPTH(3alleg5), ALLEGRO_CHANNEL_CONF(3alleg5)