.TH "al_create_sample(3alleg5) Allegro reference manual" "" "" "" "" .SH NAME .PP al_create_sample \- Allegro 5 API .SH SYNOPSIS .IP .nf \f[C] #include\ 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) \f[] .fi .SH DESCRIPTION .PP Create a sample data structure from the supplied buffer. If \f[C]free_buf\f[] 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. .PP To allocate a buffer of the correct size, you can use something like this: .IP .nf \f[C] sample_size\ =\ al_get_channel_count(chan_conf)\ *\ al_get_audio_depth_size(depth); bytes\ =\ samples\ *\ sample_size; buffer\ =\ al_malloc(bytes); \f[] .fi .SH SEE ALSO .PP al_destroy_sample(3alleg5), ALLEGRO_AUDIO_DEPTH(3alleg5), ALLEGRO_CHANNEL_CONF(3alleg5)