diff src/audio/macosx/SDL_coreaudio.c @ 1895:c121d94672cb

SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 10 Jul 2006 21:04:37 +0000
parents dc6b59e925a2
children 506851d3efa4
line wrap: on
line diff
--- a/src/audio/macosx/SDL_coreaudio.c	Thu Jul 06 18:01:37 2006 +0000
+++ b/src/audio/macosx/SDL_coreaudio.c	Mon Jul 10 21:04:37 2006 +0000
@@ -31,7 +31,7 @@
 
 /* Audio driver functions */
 
-static int Core_OpenAudio(_THIS, SDL_AudioSpec *spec);
+static int Core_OpenAudio(_THIS, SDL_AudioSpec * spec);
 static void Core_WaitAudio(_THIS);
 static void Core_PlayAudio(_THIS);
 static Uint8 *Core_GetAudioBuf(_THIS);
@@ -39,34 +39,37 @@
 
 /* Audio driver bootstrap functions */
 
-static int Audio_Available(void)
+static int
+Audio_Available(void)
 {
-    return(1);
+    return (1);
 }
 
-static void Audio_DeleteDevice(SDL_AudioDevice *device)
+static void
+Audio_DeleteDevice(SDL_AudioDevice * device)
 {
     SDL_free(device->hidden);
     SDL_free(device);
 }
 
-static SDL_AudioDevice *Audio_CreateDevice(int devindex)
+static SDL_AudioDevice *
+Audio_CreateDevice(int devindex)
 {
     SDL_AudioDevice *this;
 
     /* Initialize all variables that we clean on shutdown */
-    this = (SDL_AudioDevice *)SDL_malloc(sizeof(SDL_AudioDevice));
-    if ( this ) {
+    this = (SDL_AudioDevice *) SDL_malloc(sizeof(SDL_AudioDevice));
+    if (this) {
         SDL_memset(this, 0, (sizeof *this));
         this->hidden = (struct SDL_PrivateAudioData *)
-                SDL_malloc((sizeof *this->hidden));
+            SDL_malloc((sizeof *this->hidden));
     }
-    if ( (this == NULL) || (this->hidden == NULL) ) {
+    if ((this == NULL) || (this->hidden == NULL)) {
         SDL_OutOfMemory();
-        if ( this ) {
+        if (this) {
             SDL_free(this);
         }
-        return(0);
+        return (0);
     }
     SDL_memset(this->hidden, 0, (sizeof *this->hidden));
 
@@ -88,30 +91,30 @@
 };
 
 /* The CoreAudio callback */
-static OSStatus     audioCallback (void                             *inRefCon, 
-                                    AudioUnitRenderActionFlags      inActionFlags,
-                                    const AudioTimeStamp            *inTimeStamp, 
-                                    UInt32                          inBusNumber, 
-                                    AudioBuffer                     *ioData)
+static OSStatus
+audioCallback(void *inRefCon,
+              AudioUnitRenderActionFlags inActionFlags,
+              const AudioTimeStamp * inTimeStamp,
+              UInt32 inBusNumber, AudioBuffer * ioData)
 {
-    SDL_AudioDevice *this = (SDL_AudioDevice *)inRefCon;
+    SDL_AudioDevice *this = (SDL_AudioDevice *) inRefCon;
     UInt32 remaining, len;
     void *ptr;
 
     /* Only do anything if audio is enabled and not paused */
-    if ( ! this->enabled || this->paused ) {
+    if (!this->enabled || this->paused) {
         SDL_memset(ioData->mData, this->spec.silence, ioData->mDataByteSize);
         return 0;
     }
-    
+
     /* No SDL conversion should be needed here, ever, since we accept
        any input format in OpenAudio, and leave the conversion to CoreAudio.
      */
     /*
-    assert(!this->convert.needed);
-    assert(this->spec.channels == ioData->mNumberChannels);
+       assert(!this->convert.needed);
+       assert(this->spec.channels == ioData->mNumberChannels);
      */
-    
+
     remaining = ioData->mDataByteSize;
     ptr = ioData->mData;
     while (remaining > 0) {
@@ -119,47 +122,50 @@
             /* Generate the data */
             SDL_memset(buffer, this->spec.silence, bufferSize);
             SDL_mutexP(this->mixer_lock);
-            (*this->spec.callback)(this->spec.userdata,
-                        buffer, bufferSize);
+            (*this->spec.callback) (this->spec.userdata, buffer, bufferSize);
             SDL_mutexV(this->mixer_lock);
             bufferOffset = 0;
         }
-        
+
         len = bufferSize - bufferOffset;
         if (len > remaining)
             len = remaining;
-        SDL_memcpy(ptr, (char *)buffer + bufferOffset, len);
-        ptr = (char *)ptr + len;
+        SDL_memcpy(ptr, (char *) buffer + bufferOffset, len);
+        ptr = (char *) ptr + len;
         remaining -= len;
         bufferOffset += len;
     }
-    
+
     return 0;
 }
 
 /* Dummy functions -- we don't use thread-based audio */
-void Core_WaitAudio(_THIS)
+void
+Core_WaitAudio(_THIS)
 {
     return;
 }
 
-void Core_PlayAudio(_THIS)
+void
+Core_PlayAudio(_THIS)
 {
     return;
 }
 
-Uint8 *Core_GetAudioBuf(_THIS)
+Uint8 *
+Core_GetAudioBuf(_THIS)
 {
-    return(NULL);
+    return (NULL);
 }
 
-void Core_CloseAudio(_THIS)
+void
+Core_CloseAudio(_THIS)
 {
     OSStatus result;
     struct AudioUnitInputCallback callback;
 
     /* stop processing the audio unit */
-    result = AudioOutputUnitStop (outputAudioUnit);
+    result = AudioOutputUnitStop(outputAudioUnit);
     if (result != noErr) {
         SDL_SetError("Core_CloseAudio: AudioOutputUnitStop");
         return;
@@ -168,14 +174,13 @@
     /* Remove the input callback */
     callback.inputProc = 0;
     callback.inputProcRefCon = 0;
-    result = AudioUnitSetProperty (outputAudioUnit, 
-                        kAudioUnitProperty_SetInputCallback, 
-                        kAudioUnitScope_Input, 
-                        0,
-                        &callback, 
-                        sizeof(callback));
+    result = AudioUnitSetProperty(outputAudioUnit,
+                                  kAudioUnitProperty_SetInputCallback,
+                                  kAudioUnitScope_Input,
+                                  0, &callback, sizeof(callback));
     if (result != noErr) {
-        SDL_SetError("Core_CloseAudio: AudioUnitSetProperty (kAudioUnitProperty_SetInputCallback)");
+        SDL_SetError
+            ("Core_CloseAudio: AudioUnitSetProperty (kAudioUnitProperty_SetInputCallback)");
         return;
     }
 
@@ -184,7 +189,7 @@
         SDL_SetError("Core_CloseAudio: CloseComponent");
         return;
     }
-    
+
     SDL_free(buffer);
 }
 
@@ -195,7 +200,8 @@
     }
 
 
-int Core_OpenAudio(_THIS, SDL_AudioSpec *spec)
+int
+Core_OpenAudio(_THIS, SDL_AudioSpec * spec)
 {
     OSStatus result = noErr;
     Component comp;
@@ -208,7 +214,7 @@
     requestedDesc.mFormatFlags = kLinearPCMFormatFlagIsPacked;
     requestedDesc.mChannelsPerFrame = spec->channels;
     requestedDesc.mSampleRate = spec->freq;
-    
+
     requestedDesc.mBitsPerChannel = spec->format & 0xFF;
     if (spec->format & 0x8000)
         requestedDesc.mFormatFlags |= kLinearPCMFormatFlagIsSignedInteger;
@@ -216,8 +222,10 @@
         requestedDesc.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian;
 
     requestedDesc.mFramesPerPacket = 1;
-    requestedDesc.mBytesPerFrame = requestedDesc.mBitsPerChannel * requestedDesc.mChannelsPerFrame / 8;
-    requestedDesc.mBytesPerPacket = requestedDesc.mBytesPerFrame * requestedDesc.mFramesPerPacket;
+    requestedDesc.mBytesPerFrame =
+        requestedDesc.mBitsPerChannel * requestedDesc.mChannelsPerFrame / 8;
+    requestedDesc.mBytesPerPacket =
+        requestedDesc.mBytesPerFrame * requestedDesc.mFramesPerPacket;
 
 
     /* Locate the default output audio unit */
@@ -226,52 +234,46 @@
     desc.componentManufacturer = kAudioUnitID_DefaultOutput;
     desc.componentFlags = 0;
     desc.componentFlagsMask = 0;
-    
-    comp = FindNextComponent (NULL, &desc);
+
+    comp = FindNextComponent(NULL, &desc);
     if (comp == NULL) {
-        SDL_SetError ("Failed to start CoreAudio: FindNextComponent returned NULL");
+        SDL_SetError
+            ("Failed to start CoreAudio: FindNextComponent returned NULL");
         return -1;
     }
-    
+
     /* Open & initialize the default output audio unit */
-    result = OpenAComponent (comp, &outputAudioUnit);
+    result = OpenAComponent(comp, &outputAudioUnit);
     CHECK_RESULT("OpenAComponent")
-
-    result = AudioUnitInitialize (outputAudioUnit);
+        result = AudioUnitInitialize(outputAudioUnit);
     CHECK_RESULT("AudioUnitInitialize")
-                
-    /* Set the input format of the audio unit. */
-    result = AudioUnitSetProperty (outputAudioUnit,
-                               kAudioUnitProperty_StreamFormat,
-                               kAudioUnitScope_Input,
-                               0,
-                               &requestedDesc,
-                               sizeof (requestedDesc));
+        /* Set the input format of the audio unit. */
+        result = AudioUnitSetProperty(outputAudioUnit,
+                                      kAudioUnitProperty_StreamFormat,
+                                      kAudioUnitScope_Input,
+                                      0,
+                                      &requestedDesc, sizeof(requestedDesc));
     CHECK_RESULT("AudioUnitSetProperty (kAudioUnitProperty_StreamFormat)")
-
-    /* Set the audio callback */
-    callback.inputProc = audioCallback;
+        /* Set the audio callback */
+        callback.inputProc = audioCallback;
     callback.inputProcRefCon = this;
-    result = AudioUnitSetProperty (outputAudioUnit, 
-                        kAudioUnitProperty_SetInputCallback, 
-                        kAudioUnitScope_Input, 
-                        0,
-                        &callback, 
-                        sizeof(callback));
+    result = AudioUnitSetProperty(outputAudioUnit,
+                                  kAudioUnitProperty_SetInputCallback,
+                                  kAudioUnitScope_Input,
+                                  0, &callback, sizeof(callback));
     CHECK_RESULT("AudioUnitSetProperty (kAudioUnitProperty_SetInputCallback)")
+        /* Calculate the final parameters for this audio specification */
+        SDL_CalculateAudioSpec(spec);
 
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(spec);
-    
     /* Allocate a sample buffer */
     bufferOffset = bufferSize = this->spec.size;
     buffer = SDL_malloc(bufferSize);
 
     /* Finally, start processing of the audio unit */
-    result = AudioOutputUnitStart (outputAudioUnit);
-    CHECK_RESULT("AudioOutputUnitStart")    
-    
+    result = AudioOutputUnitStart(outputAudioUnit);
+    CHECK_RESULT("AudioOutputUnitStart")
+        /* We're running! */
+        return (1);
+}
 
-    /* We're running! */
-    return(1);
-}
+/* vi: set ts=4 sw=4 expandtab: */