SDL_ConvertAudio man page on Aros

Man page or keyword search:  
man Server   366 pages
apropos Keyword Search (all sections)
Output format
Aros logo
[printable version]

SDL_ConvertAudio(3)	       SDL API Reference	   SDL_ConvertAudio(3)

NAME
       SDL_ConvertAudio- Convert audio data to a desired audio format.

SYNOPSIS
       #include "SDL.h"

       int SDL_ConvertAudio(SDL_AudioCVT *cvt);

DESCRIPTION
       SDL_ConvertAudio	 takes	one  parameter, cvt, which was previously ini‐
       tilized. Initilizing a SDL_AudioCVT is a two  step  process.  First  of
       all,  the  structure  must  be  passed  to SDL_BuildAudioCVT along with
       source and destination format parameters. Secondly,  the	 cvt->buf  and
       cvt->len	 fields must be setup. cvt->buf should point to the audio data
       and cvt->len should be set to the length of the audio  data  in	bytes.
       Remember,  the  length  of  the	buffer	pointed	 to  by	 buf  show  be
       len*len_mult bytes in length.

       Once the SDL_AudioCVTstructure is initilized then we  can  pass	it  to
       SDL_ConvertAudio,  which	 will  convert	the  audio  data pointer to by
       cvt->buf. If SDL_ConvertAudio returned 0 then the conversion  was  com‐
       pleted successfully, otherwise -1 is returned.

       If  the conversion completed successfully then the converted audio data
       can be read from cvt->buf. The amount of valid, converted,  audio  data
       in the buffer is equal to cvt->len*cvt->len_ratio.

EXAMPLES
       /* Converting some WAV data to hardware format */
       void my_audio_callback(void *userdata, Uint8 *stream, int len);

       SDL_AudioSpec *desired, *obtained;
       SDL_AudioSpec wav_spec;
       SDL_AudioCVT  wav_cvt;
       Uint32 wav_len;
       Uint8 *wav_buf;
       int ret;

       /* Allocated audio specs */
       desired=(SDL_AudioSpec *)malloc(sizeof(SDL_AudioSpec));
       obtained=(SDL_AudioSpec *)malloc(sizeof(SDL_AudioSpec));

       /* Set desired format */
       desired->freq=22050;
       desired->format=AUDIO_S16LSB;
       desired->samples=8192;
       desired->callback=my_audio_callback;
       desired->userdata=NULL;

       /* Open the audio device */
       if ( SDL_OpenAudio(desired, obtained) < 0 ){
	 fprintf(stderr, "Couldn't open audio: %s
       ", SDL_GetError());
	 exit(-1);
       }

       free(desired);

       /* Load the test.wav */
       if( SDL_LoadWAV("test.wav", &wav_spec, &wav_buf, &wav_len) == NULL ){
	 fprintf(stderr, "Could not open test.wav: %s
       ", SDL_GetError());
	 SDL_CloseAudio();
	 free(obtained);
	 exit(-1);
       }

       /* Build AudioCVT */
       ret = SDL_BuildAudioCVT(&wav_cvt,
			       wav_spec.format, wav_spec.channels, wav_spec.freq,
			       obtained->format, obtained->channels, obtained->freq);

       /* Check that the convert was built */
       if(ret==-1){
	 fprintf(stderr, "Couldn't build converter!
       ");
	 SDL_CloseAudio();
	 free(obtained);
	 SDL_FreeWAV(wav_buf);
       }

       /* Setup for conversion */
       wav_cvt.buf=(Uint8 *)malloc(wav_len*wav_cvt.len_mult);
       wav_cvt.len=wav_len;
       memcpy(wav_cvt.buf, wav_buf, wav_len);

       /* We can delete to original WAV data now */
       SDL_FreeWAV(wav_buf);

       /* And now we're ready to convert */
       SDL_ConvertAudio(&wav_cvt);

       /* do whatever */
       .
       .
       .
       .

SEE ALSO
       SDL_BuildAudioCVT, SDL_AudioCVT

SDL			    Tue 11 Sep 2001, 22:58	   SDL_ConvertAudio(3)
[top]

List of man pages available for Aros

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net