diff src/audio/baudio/SDL_beaudio.cc @ 1662:782fd950bd46 SDL-1.3

Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API. WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid. The code is now run through a consistent indent format: indent -i4 -nut -nsc -br -ce The headers are being converted to automatically generate doxygen documentation.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 28 May 2006 13:04:16 +0000
parents 376665398b25
children 4da1ee79c9af
line wrap: on
line diff
--- a/src/audio/baudio/SDL_beaudio.cc	Sun May 21 17:27:13 2006 +0000
+++ b/src/audio/baudio/SDL_beaudio.cc	Sun May 28 13:04:16 2006 +0000
@@ -27,7 +27,8 @@
 
 #include "../../main/beos/SDL_BeApp.h"
 
-extern "C" {
+extern "C"
+{
 
 #include "SDL_audio.h"
 #include "../SDL_audio_c.h"
@@ -37,172 +38,177 @@
 
 
 /* Audio driver functions */
-static int BE_OpenAudio(_THIS, SDL_AudioSpec *spec);
-static void BE_WaitAudio(_THIS);
-static void BE_PlayAudio(_THIS);
-static Uint8 *BE_GetAudioBuf(_THIS);
-static void BE_CloseAudio(_THIS);
+    static int BE_OpenAudio (_THIS, SDL_AudioSpec * spec);
+    static void BE_WaitAudio (_THIS);
+    static void BE_PlayAudio (_THIS);
+    static Uint8 *BE_GetAudioBuf (_THIS);
+    static void BE_CloseAudio (_THIS);
 
 /* Audio driver bootstrap functions */
 
-static int Audio_Available(void)
-{
-	return(1);
-}
+    static int Audio_Available (void)
+    {
+        return (1);
+    }
 
-static void Audio_DeleteDevice(SDL_AudioDevice *device)
-{
-	SDL_free(device->hidden);
-	SDL_free(device);
-}
+    static void Audio_DeleteDevice (SDL_AudioDevice * device)
+    {
+        SDL_free (device->hidden);
+        SDL_free (device);
+    }
 
-static SDL_AudioDevice *Audio_CreateDevice(int devindex)
-{
-	SDL_AudioDevice *device;
+    static SDL_AudioDevice *Audio_CreateDevice (int devindex)
+    {
+        SDL_AudioDevice *device;
 
-	/* Initialize all variables that we clean on shutdown */
-	device = (SDL_AudioDevice *)SDL_malloc(sizeof(SDL_AudioDevice));
-	if ( device ) {
-		SDL_memset(device, 0, (sizeof *device));
-		device->hidden = (struct SDL_PrivateAudioData *)
-				SDL_malloc((sizeof *device->hidden));
-	}
-	if ( (device == NULL) || (device->hidden == NULL) ) {
-		SDL_OutOfMemory();
-		if ( device ) {
-			SDL_free(device);
-		}
-		return(0);
-	}
-	SDL_memset(device->hidden, 0, (sizeof *device->hidden));
+        /* Initialize all variables that we clean on shutdown */
+        device = (SDL_AudioDevice *) SDL_malloc (sizeof (SDL_AudioDevice));
+        if (device) {
+            SDL_memset (device, 0, (sizeof *device));
+            device->hidden = (struct SDL_PrivateAudioData *)
+                SDL_malloc ((sizeof *device->hidden));
+        }
+        if ((device == NULL) || (device->hidden == NULL)) {
+            SDL_OutOfMemory ();
+            if (device) {
+                SDL_free (device);
+            }
+            return (0);
+        }
+        SDL_memset (device->hidden, 0, (sizeof *device->hidden));
 
-	/* Set the function pointers */
-	device->OpenAudio = BE_OpenAudio;
-	device->WaitAudio = BE_WaitAudio;
-	device->PlayAudio = BE_PlayAudio;
-	device->GetAudioBuf = BE_GetAudioBuf;
-	device->CloseAudio = BE_CloseAudio;
+        /* Set the function pointers */
+        device->OpenAudio = BE_OpenAudio;
+        device->WaitAudio = BE_WaitAudio;
+        device->PlayAudio = BE_PlayAudio;
+        device->GetAudioBuf = BE_GetAudioBuf;
+        device->CloseAudio = BE_CloseAudio;
 
-	device->free = Audio_DeleteDevice;
+        device->free = Audio_DeleteDevice;
 
-	return device;
-}
+        return device;
+    }
 
-AudioBootStrap BAUDIO_bootstrap = {
-	"baudio", "BeOS BSoundPlayer",
-	Audio_Available, Audio_CreateDevice
-};
+    AudioBootStrap BAUDIO_bootstrap = {
+        "baudio", "BeOS BSoundPlayer",
+        Audio_Available, Audio_CreateDevice
+    };
 
 /* The BeOS callback for handling the audio buffer */
-static void FillSound(void *device, void *stream, size_t len, 
-					const media_raw_audio_format &format)
-{
-	SDL_AudioDevice *audio = (SDL_AudioDevice *)device;
+    static void FillSound (void *device, void *stream, size_t len,
+                           const media_raw_audio_format & format)
+    {
+        SDL_AudioDevice *audio = (SDL_AudioDevice *) device;
 
-	/* Silence the buffer, since it's ours */
-	SDL_memset(stream, audio->spec.silence, len);
+        /* Silence the buffer, since it's ours */
+        SDL_memset (stream, audio->spec.silence, len);
 
-	/* Only do soemthing if audio is enabled */
-	if ( ! audio->enabled )
-		return;
+        /* Only do soemthing if audio is enabled */
+        if (!audio->enabled)
+            return;
 
-	if ( ! audio->paused ) {
-		if ( audio->convert.needed ) {
-			SDL_mutexP(audio->mixer_lock);
-			(*audio->spec.callback)(audio->spec.userdata,
-				(Uint8 *)audio->convert.buf,audio->convert.len);
-			SDL_mutexV(audio->mixer_lock);
-			SDL_ConvertAudio(&audio->convert);
-			SDL_memcpy(stream,audio->convert.buf,audio->convert.len_cvt);
-		} else {
-			SDL_mutexP(audio->mixer_lock);
-			(*audio->spec.callback)(audio->spec.userdata,
-						(Uint8 *)stream, len);
-			SDL_mutexV(audio->mixer_lock);
-		}
-	}
-	return;
-}
+        if (!audio->paused) {
+            if (audio->convert.needed) {
+                SDL_mutexP (audio->mixer_lock);
+                (*audio->spec.callback) (audio->spec.userdata,
+                                         (Uint8 *) audio->convert.buf,
+                                         audio->convert.len);
+                SDL_mutexV (audio->mixer_lock);
+                SDL_ConvertAudio (&audio->convert);
+                SDL_memcpy (stream, audio->convert.buf,
+                            audio->convert.len_cvt);
+            } else {
+                SDL_mutexP (audio->mixer_lock);
+                (*audio->spec.callback) (audio->spec.userdata,
+                                         (Uint8 *) stream, len);
+                SDL_mutexV (audio->mixer_lock);
+            }
+        }
+        return;
+    }
 
 /* Dummy functions -- we don't use thread-based audio */
-void BE_WaitAudio(_THIS)
-{
-	return;
-}
-void BE_PlayAudio(_THIS)
-{
-	return;
-}
-Uint8 *BE_GetAudioBuf(_THIS)
-{
-	return(NULL);
-}
+    void BE_WaitAudio (_THIS)
+    {
+        return;
+    }
+    void BE_PlayAudio (_THIS)
+    {
+        return;
+    }
+    Uint8 *BE_GetAudioBuf (_THIS)
+    {
+        return (NULL);
+    }
 
-void BE_CloseAudio(_THIS)
-{
-	if ( audio_obj ) {
-		audio_obj->Stop();
-		delete audio_obj;
-		audio_obj = NULL;
-	}
+    void BE_CloseAudio (_THIS)
+    {
+        if (audio_obj) {
+            audio_obj->Stop ();
+            delete audio_obj;
+            audio_obj = NULL;
+        }
 
-	/* Quit the Be Application, if there's nothing left to do */
-	SDL_QuitBeApp();
-}
+        /* Quit the Be Application, if there's nothing left to do */
+        SDL_QuitBeApp ();
+    }
 
-int BE_OpenAudio(_THIS, SDL_AudioSpec *spec)
-{
-	media_raw_audio_format format;
+    int BE_OpenAudio (_THIS, SDL_AudioSpec * spec)
+    {
+        media_raw_audio_format format;
 
-	/* Initialize the Be Application, if it's not already started */
-	if ( SDL_InitBeApp() < 0 ) {
-		return(-1);
-	}
+        /* Initialize the Be Application, if it's not already started */
+        if (SDL_InitBeApp () < 0) {
+            return (-1);
+        }
 
-	/* Parse the audio format and fill the Be raw audio format */
-	format.frame_rate = (float)spec->freq;
-	format.channel_count = spec->channels;
-	switch (spec->format&~0x1000) {
-		case AUDIO_S8:
-			/* Signed 8-bit audio unsupported, convert to U8 */
-			spec->format = AUDIO_U8;
-		case AUDIO_U8:
-			format.format = media_raw_audio_format::B_AUDIO_UCHAR;
-			format.byte_order = 0;
-			break;
-		case AUDIO_U16:
-			/* Unsigned 16-bit audio unsupported, convert to S16 */
-			spec->format ^= 0x8000;
-		case AUDIO_S16:
-			format.format = media_raw_audio_format::B_AUDIO_SHORT;
-			if ( spec->format & 0x1000 ) {
-				format.byte_order = 1; /* Big endian */
-			} else {
-				format.byte_order = 2; /* Little endian */
-			}
-			break;
-	}
-	format.buffer_size = spec->samples;
-	
-	/* Calculate the final parameters for this audio specification */
-	SDL_CalculateAudioSpec(spec);
+        /* Parse the audio format and fill the Be raw audio format */
+        format.frame_rate = (float) spec->freq;
+        format.channel_count = spec->channels;
+        switch (spec->format & ~0x1000) {
+        case AUDIO_S8:
+            /* Signed 8-bit audio unsupported, convert to U8 */
+            spec->format = AUDIO_U8;
+        case AUDIO_U8:
+            format.format = media_raw_audio_format::B_AUDIO_UCHAR;
+            format.byte_order = 0;
+            break;
+        case AUDIO_U16:
+            /* Unsigned 16-bit audio unsupported, convert to S16 */
+            spec->format ^= 0x8000;
+        case AUDIO_S16:
+            format.format = media_raw_audio_format::B_AUDIO_SHORT;
+            if (spec->format & 0x1000) {
+                format.byte_order = 1;  /* Big endian */
+            } else {
+                format.byte_order = 2;  /* Little endian */
+            }
+            break;
+        }
+        format.buffer_size = spec->samples;
 
-	/* Subscribe to the audio stream (creates a new thread) */
-	{ sigset_t omask;
-		SDL_MaskSignals(&omask);
-		audio_obj = new BSoundPlayer(&format, "SDL Audio", FillSound,
-		                                                 NULL, _this);
-		SDL_UnmaskSignals(&omask);
-	}
-	if ( audio_obj->Start() == B_NO_ERROR ) {
-		audio_obj->SetHasData(true);
-	} else {
-		SDL_SetError("Unable to start Be audio");
-		return(-1);
-	}
+        /* Calculate the final parameters for this audio specification */
+        SDL_CalculateAudioSpec (spec);
 
-	/* We're running! */
-	return(1);
-}
+        /* Subscribe to the audio stream (creates a new thread) */
+        {
+            sigset_t omask;
+            SDL_MaskSignals (&omask);
+            audio_obj = new BSoundPlayer (&format, "SDL Audio", FillSound,
+                                          NULL, _this);
+            SDL_UnmaskSignals (&omask);
+        }
+        if (audio_obj->Start () == B_NO_ERROR) {
+            audio_obj->SetHasData (true);
+        } else {
+            SDL_SetError ("Unable to start Be audio");
+            return (-1);
+        }
 
-};	/* Extern C */
+        /* We're running! */
+        return (1);
+    }
+
+};                              /* Extern C */
+
+/* vi: set ts=4 sw=4 expandtab: */