diff src/cdrom/macosx/CDPlayer.c @ 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 dc6b59e925a2
children 4da1ee79c9af
line wrap: on
line diff
--- a/src/cdrom/macosx/CDPlayer.c	Sun May 21 17:27:13 2006 +0000
+++ b/src/cdrom/macosx/CDPlayer.c	Sun May 28 13:04:16 2006 +0000
@@ -32,7 +32,7 @@
     Constants
   //////////////////////////////////////////////////////////////////////////*/
 
-#define kAudioCDFilesystemID   (UInt16)(('J' << 8) | 'H') /* 'JH'; this avoids compiler warning */
+#define kAudioCDFilesystemID   (UInt16)(('J' << 8) | 'H')       /* 'JH'; this avoids compiler warning */
 
 /* XML PList keys */
 #define kRawTOCDataString           "Format 0x02 TOC Data"
@@ -45,21 +45,21 @@
 #define kDataKeyString              "Data"
 #define kPointKeyString             "Point"
 #define kSessionNumberKeyString         "Session Number"
-#define kStartBlockKeyString            "Start Block"   
-    
+#define kStartBlockKeyString            "Start Block"
+
 /*///////////////////////////////////////////////////////////////////////////
     Globals
   //////////////////////////////////////////////////////////////////////////*/
 
 #pragma mark -- Globals --
 
-static int             playBackWasInit = 0;
-static AudioUnit        theUnit;
-static AudioFilePlayer* thePlayer = NULL;
-static CDPlayerCompletionProc   completionProc = NULL;
-static SDL_mutex       *apiMutex = NULL;
-static SDL_sem         *callbackSem;
-static SDL_CD*          theCDROM;
+static int playBackWasInit = 0;
+static AudioUnit theUnit;
+static AudioFilePlayer *thePlayer = NULL;
+static CDPlayerCompletionProc completionProc = NULL;
+static SDL_mutex *apiMutex = NULL;
+static SDL_sem *callbackSem;
+static SDL_CD *theCDROM;
 
 /*///////////////////////////////////////////////////////////////////////////
     Prototypes
@@ -69,96 +69,92 @@
 
 static OSStatus CheckInit ();
 
-static void     FilePlayNotificationHandler (void* inRefCon, OSStatus inStatus);
+static void FilePlayNotificationHandler (void *inRefCon, OSStatus inStatus);
 
-static int      RunCallBackThread (void* inRefCon);
+static int RunCallBackThread (void *inRefCon);
 
 
 #pragma mark -- Public Functions --
 
-void     Lock ()
+void
+Lock ()
 {
     if (!apiMutex) {
-        apiMutex = SDL_CreateMutex();
+        apiMutex = SDL_CreateMutex ();
     }
-    SDL_mutexP(apiMutex);
+    SDL_mutexP (apiMutex);
 }
 
-void     Unlock ()
+void
+Unlock ()
 {
-    SDL_mutexV(apiMutex);
+    SDL_mutexV (apiMutex);
 }
 
-int DetectAudioCDVolumes(FSVolumeRefNum *volumes, int numVolumes)
+int
+DetectAudioCDVolumes (FSVolumeRefNum * volumes, int numVolumes)
 {
     int volumeIndex;
     int cdVolumeCount = 0;
     OSStatus result = noErr;
-    
-    for (volumeIndex = 1; result == noErr || result != nsvErr; volumeIndex++)
-    {
-        FSVolumeRefNum  actualVolume;
-        FSVolumeInfo    volumeInfo;
-        
-        memset (&volumeInfo, 0, sizeof(volumeInfo));
-        
+
+    for (volumeIndex = 1; result == noErr || result != nsvErr; volumeIndex++) {
+        FSVolumeRefNum actualVolume;
+        FSVolumeInfo volumeInfo;
+
+        memset (&volumeInfo, 0, sizeof (volumeInfo));
+
         result = FSGetVolumeInfo (kFSInvalidVolumeRefNum,
                                   volumeIndex,
                                   &actualVolume,
-                                  kFSVolInfoFSInfo,
-                                  &volumeInfo,
-                                  NULL,
-                                  NULL); 
-         
-        if (result == noErr)
-        {
-            if (volumeInfo.filesystemID == kAudioCDFilesystemID) /* It's an audio CD */
-            {
+                                  kFSVolInfoFSInfo, &volumeInfo, NULL, NULL);
+
+        if (result == noErr) {
+            if (volumeInfo.filesystemID == kAudioCDFilesystemID) {      /* It's an audio CD */
                 if (volumes != NULL && cdVolumeCount < numVolumes)
                     volumes[cdVolumeCount] = actualVolume;
-            
+
                 cdVolumeCount++;
             }
-        }
-        else 
-        {
+        } else {
             /* I'm commenting this out because it seems to be harmless */
-            /*SDL_SetError ("DetectAudioCDVolumes: FSGetVolumeInfo returned %d", result);*/
+            /*SDL_SetError ("DetectAudioCDVolumes: FSGetVolumeInfo returned %d", result); */
         }
     }
-        
+
     return cdVolumeCount;
 }
 
-int ReadTOCData (FSVolumeRefNum theVolume, SDL_CD *theCD)
+int
+ReadTOCData (FSVolumeRefNum theVolume, SDL_CD * theCD)
 {
-    HFSUniStr255      dataForkName;
-    OSStatus          theErr;
-    SInt16            forkRefNum;
-    SInt64            forkSize;
-    Ptr               forkData = 0;
-    ByteCount         actualRead;
-    CFDataRef         dataRef = 0;
+    HFSUniStr255 dataForkName;
+    OSStatus theErr;
+    SInt16 forkRefNum;
+    SInt64 forkSize;
+    Ptr forkData = 0;
+    ByteCount actualRead;
+    CFDataRef dataRef = 0;
     CFPropertyListRef propertyListRef = 0;
 
-    FSRefParam      fsRefPB;
-    FSRef           tocPlistFSRef;
-    
-    const char* error = "Unspecified Error";
-    
+    FSRefParam fsRefPB;
+    FSRef tocPlistFSRef;
+
+    const char *error = "Unspecified Error";
+
     /* get stuff from .TOC.plist */
     fsRefPB.ioCompletion = NULL;
     fsRefPB.ioNamePtr = "\p.TOC.plist";
     fsRefPB.ioVRefNum = theVolume;
     fsRefPB.ioDirID = 0;
     fsRefPB.newRef = &tocPlistFSRef;
-    
+
     theErr = PBMakeFSRefSync (&fsRefPB);
-    if(theErr != noErr) {
+    if (theErr != noErr) {
         error = "PBMakeFSRefSync";
         goto bail;
     }
-    
+
     /* Load and parse the TOC XML data */
 
     theErr = FSGetDataForkName (&dataForkName);
@@ -166,34 +162,38 @@
         error = "FSGetDataForkName";
         goto bail;
     }
-    
-    theErr = FSOpenFork (&tocPlistFSRef, dataForkName.length, dataForkName.unicode, fsRdPerm, &forkRefNum);
+
+    theErr =
+        FSOpenFork (&tocPlistFSRef, dataForkName.length, dataForkName.unicode,
+                    fsRdPerm, &forkRefNum);
     if (theErr != noErr) {
         error = "FSOpenFork";
         goto bail;
     }
-    
+
     theErr = FSGetForkSize (forkRefNum, &forkSize);
     if (theErr != noErr) {
         error = "FSGetForkSize";
         goto bail;
     }
-    
+
     /* Allocate some memory for the XML data */
     forkData = NewPtr (forkSize);
-    if(forkData == NULL) {
+    if (forkData == NULL) {
         error = "NewPtr";
         goto bail;
     }
-    
-    theErr = FSReadFork (forkRefNum, fsFromStart, 0 /* offset location */, forkSize, forkData, &actualRead);
-    if(theErr != noErr) {
+
+    theErr = FSReadFork (forkRefNum, fsFromStart, 0 /* offset location */ ,
+                         forkSize, forkData, &actualRead);
+    if (theErr != noErr) {
         error = "FSReadFork";
         goto bail;
     }
-    
-    dataRef = CFDataCreate (kCFAllocatorDefault, (UInt8 *)forkData, forkSize);
-    if(dataRef == 0) {
+
+    dataRef =
+        CFDataCreate (kCFAllocatorDefault, (UInt8 *) forkData, forkSize);
+    if (dataRef == 0) {
         error = "CFDataCreate";
         goto bail;
     }
@@ -208,127 +208,150 @@
     }
 
     /* Now we got the Property List in memory. Parse it. */
-    
+
     /* First, make sure the root item is a CFDictionary. If not, release and bail. */
-    if(CFGetTypeID(propertyListRef)== CFDictionaryGetTypeID())
-    {
-        CFDictionaryRef dictRef = (CFDictionaryRef)propertyListRef;
-        
-        CFDataRef   theRawTOCDataRef;
-        CFArrayRef  theSessionArrayRef;
-        CFIndex     numSessions;
-        CFIndex     index;
-        
+    if (CFGetTypeID (propertyListRef) == CFDictionaryGetTypeID ()) {
+        CFDictionaryRef dictRef = (CFDictionaryRef) propertyListRef;
+
+        CFDataRef theRawTOCDataRef;
+        CFArrayRef theSessionArrayRef;
+        CFIndex numSessions;
+        CFIndex index;
+
         /* This is how we get the Raw TOC Data */
-        theRawTOCDataRef = (CFDataRef)CFDictionaryGetValue (dictRef, CFSTR(kRawTOCDataString));
-        
+        theRawTOCDataRef =
+            (CFDataRef) CFDictionaryGetValue (dictRef,
+                                              CFSTR (kRawTOCDataString));
+
         /* Get the session array info. */
-        theSessionArrayRef = (CFArrayRef)CFDictionaryGetValue (dictRef, CFSTR(kSessionsString));
-        
+        theSessionArrayRef =
+            (CFArrayRef) CFDictionaryGetValue (dictRef,
+                                               CFSTR (kSessionsString));
+
         /* Find out how many sessions there are. */
         numSessions = CFArrayGetCount (theSessionArrayRef);
-        
+
         /* Initialize the total number of tracks to 0 */
         theCD->numtracks = 0;
-        
+
         /* Iterate over all sessions, collecting the track data */
-        for(index = 0; index < numSessions; index++)
-        {
+        for (index = 0; index < numSessions; index++) {
             CFDictionaryRef theSessionDict;
-            CFNumberRef     leadoutBlock;
-            CFArrayRef      trackArray;
-            CFIndex         numTracks;
-            CFIndex         trackIndex;
-            UInt32          value = 0;
-            
-            theSessionDict      = (CFDictionaryRef) CFArrayGetValueAtIndex (theSessionArrayRef, index);
-            leadoutBlock        = (CFNumberRef) CFDictionaryGetValue (theSessionDict, CFSTR(kLeadoutBlockString));
-            
-            trackArray = (CFArrayRef)CFDictionaryGetValue (theSessionDict, CFSTR(kTrackArrayString));
-            
+            CFNumberRef leadoutBlock;
+            CFArrayRef trackArray;
+            CFIndex numTracks;
+            CFIndex trackIndex;
+            UInt32 value = 0;
+
+            theSessionDict = (CFDictionaryRef)
+                CFArrayGetValueAtIndex (theSessionArrayRef, index);
+            leadoutBlock =
+                (CFNumberRef) CFDictionaryGetValue (theSessionDict,
+                                                    CFSTR
+                                                    (kLeadoutBlockString));
+
+            trackArray =
+                (CFArrayRef) CFDictionaryGetValue (theSessionDict,
+                                                   CFSTR (kTrackArrayString));
+
             numTracks = CFArrayGetCount (trackArray);
 
-            for(trackIndex = 0; trackIndex < numTracks; trackIndex++) {
-                    
+            for (trackIndex = 0; trackIndex < numTracks; trackIndex++) {
+
                 CFDictionaryRef theTrackDict;
-                CFNumberRef     trackNumber;
-                CFNumberRef     sessionNumber;
-                CFNumberRef     startBlock;
-                CFBooleanRef    isDataTrack;
-                UInt32          value;
-                
-                theTrackDict  = (CFDictionaryRef) CFArrayGetValueAtIndex (trackArray, trackIndex);
-                
-                trackNumber   = (CFNumberRef)  CFDictionaryGetValue (theTrackDict, CFSTR(kPointKeyString));
-                sessionNumber = (CFNumberRef)  CFDictionaryGetValue (theTrackDict, CFSTR(kSessionNumberKeyString));
-                startBlock    = (CFNumberRef)  CFDictionaryGetValue (theTrackDict, CFSTR(kStartBlockKeyString));
-                isDataTrack   = (CFBooleanRef) CFDictionaryGetValue (theTrackDict, CFSTR(kDataKeyString));
-                                                        
+                CFNumberRef trackNumber;
+                CFNumberRef sessionNumber;
+                CFNumberRef startBlock;
+                CFBooleanRef isDataTrack;
+                UInt32 value;
+
+                theTrackDict = (CFDictionaryRef)
+                    CFArrayGetValueAtIndex (trackArray, trackIndex);
+
+                trackNumber =
+                    (CFNumberRef) CFDictionaryGetValue (theTrackDict,
+                                                        CFSTR
+                                                        (kPointKeyString));
+                sessionNumber =
+                    (CFNumberRef) CFDictionaryGetValue (theTrackDict,
+                                                        CFSTR
+                                                        (kSessionNumberKeyString));
+                startBlock =
+                    (CFNumberRef) CFDictionaryGetValue (theTrackDict,
+                                                        CFSTR
+                                                        (kStartBlockKeyString));
+                isDataTrack =
+                    (CFBooleanRef) CFDictionaryGetValue (theTrackDict,
+                                                         CFSTR
+                                                         (kDataKeyString));
+
                 /* Fill in the SDL_CD struct */
                 int idx = theCD->numtracks++;
 
                 CFNumberGetValue (trackNumber, kCFNumberSInt32Type, &value);
                 theCD->track[idx].id = value;
-                
+
                 CFNumberGetValue (startBlock, kCFNumberSInt32Type, &value);
                 theCD->track[idx].offset = value;
 
-                theCD->track[idx].type = (isDataTrack == kCFBooleanTrue) ? SDL_DATA_TRACK : SDL_AUDIO_TRACK;
+                theCD->track[idx].type =
+                    (isDataTrack ==
+                     kCFBooleanTrue) ? SDL_DATA_TRACK : SDL_AUDIO_TRACK;
 
                 /* Since the track lengths are not stored in .TOC.plist we compute them. */
                 if (trackIndex > 0) {
-                    theCD->track[idx-1].length = theCD->track[idx].offset - theCD->track[idx-1].offset;
+                    theCD->track[idx - 1].length =
+                        theCD->track[idx].offset - theCD->track[idx -
+                                                                1].offset;
                 }
             }
-            
+
             /* Compute the length of the last track */
             CFNumberGetValue (leadoutBlock, kCFNumberSInt32Type, &value);
-            
-            theCD->track[theCD->numtracks-1].length = 
-                value - theCD->track[theCD->numtracks-1].offset;
+
+            theCD->track[theCD->numtracks - 1].length =
+                value - theCD->track[theCD->numtracks - 1].offset;
 
             /* Set offset to leadout track */
             theCD->track[theCD->numtracks].offset = value;
         }
-    
+
     }
 
     theErr = 0;
     goto cleanup;
-bail:
+  bail:
     SDL_SetError ("ReadTOCData: %s returned %d", error, theErr);
     theErr = -1;
-cleanup:
+  cleanup:
 
     if (propertyListRef != NULL)
-        CFRelease(propertyListRef);
+        CFRelease (propertyListRef);
     if (dataRef != NULL)
-        CFRelease(dataRef);
+        CFRelease (dataRef);
     if (forkData != NULL)
-        DisposePtr(forkData);
-        
+        DisposePtr (forkData);
+
     FSCloseFork (forkRefNum);
 
     return theErr;
 }
 
-int ListTrackFiles (FSVolumeRefNum theVolume, FSRef *trackFiles, int numTracks)
+int
+ListTrackFiles (FSVolumeRefNum theVolume, FSRef * trackFiles, int numTracks)
 {
-    OSStatus        result = -1;
-    FSIterator      iterator;
-    ItemCount       actualObjects;
-    FSRef           rootDirectory;
-    FSRef           ref;
-    HFSUniStr255    nameStr;
-    
+    OSStatus result = -1;
+    FSIterator iterator;
+    ItemCount actualObjects;
+    FSRef rootDirectory;
+    FSRef ref;
+    HFSUniStr255 nameStr;
+
     result = FSGetVolumeInfo (theVolume,
                               0,
                               NULL,
-                              kFSVolInfoFSInfo,
-                              NULL,
-                              NULL,
-                              &rootDirectory); 
-                                 
+                              kFSVolInfoFSInfo, NULL, NULL, &rootDirectory);
+
     if (result != noErr) {
         SDL_SetError ("ListTrackFiles: FSGetVolumeInfo returned %d", result);
         return result;
@@ -336,293 +359,314 @@
 
     result = FSOpenIterator (&rootDirectory, kFSIterateFlat, &iterator);
     if (result == noErr) {
-        do
-        {
+        do {
             result = FSGetCatalogInfoBulk (iterator, 1, &actualObjects,
-                                           NULL, kFSCatInfoNone, NULL, &ref, NULL, &nameStr);
+                                           NULL, kFSCatInfoNone, NULL,
+                                           &ref, NULL, &nameStr);
             if (result == noErr) {
-                
-                CFStringRef  name;
-                name = CFStringCreateWithCharacters (NULL, nameStr.unicode, nameStr.length);
-                
+
+                CFStringRef name;
+                name =
+                    CFStringCreateWithCharacters (NULL, nameStr.unicode,
+                                                  nameStr.length);
+
                 /* Look for .aiff extension */
-                if (CFStringHasSuffix (name, CFSTR(".aiff")) ||
-                    CFStringHasSuffix (name, CFSTR(".cdda"))) {
-                    
+                if (CFStringHasSuffix (name, CFSTR (".aiff")) ||
+                    CFStringHasSuffix (name, CFSTR (".cdda"))) {
+
                     /* Extract the track id from the filename */
                     int trackID = 0, i = 0;
-                    while (i < nameStr.length && !isdigit(nameStr.unicode[i])) {
+                    while (i < nameStr.length
+                           && !isdigit (nameStr.unicode[i])) {
                         ++i;
                     }
-                    while (i < nameStr.length && isdigit(nameStr.unicode[i])) {
-                        trackID = 10 * trackID +(nameStr.unicode[i] - '0');
+                    while (i < nameStr.length && isdigit (nameStr.unicode[i])) {
+                        trackID = 10 * trackID + (nameStr.unicode[i] - '0');
                         ++i;
                     }
 
-                    #if DEBUG_CDROM
-                    printf("Found AIFF for track %d: '%s'\n", trackID, 
-                    CFStringGetCStringPtr (name, CFStringGetSystemEncoding()));
-                    #endif
-                    
+#if DEBUG_CDROM
+                    printf ("Found AIFF for track %d: '%s'\n",
+                            trackID, CFStringGetCStringPtr (name,
+                                                            CFStringGetSystemEncoding
+                                                            ()));
+#endif
+
                     /* Track ID's start at 1, but we want to start at 0 */
                     trackID--;
-                    
-                    assert(0 <= trackID && trackID <= SDL_MAX_TRACKS);
-                    
+
+                    assert (0 <= trackID && trackID <= SDL_MAX_TRACKS);
+
                     if (trackID < numTracks)
-                        memcpy (&trackFiles[trackID], &ref, sizeof(FSRef));
+                        memcpy (&trackFiles[trackID], &ref, sizeof (FSRef));
                 }
                 CFRelease (name);
             }
-        } while(noErr == result);
+        }
+        while (noErr == result);
         FSCloseIterator (iterator);
     }
-    
+
     return 0;
 }
 
-int LoadFile (const FSRef *ref, int startFrame, int stopFrame)
+int
+LoadFile (const FSRef * ref, int startFrame, int stopFrame)
 {
     int error = -1;
-    
+
     if (CheckInit () < 0)
         goto bail;
-    
+
     /* release any currently playing file */
     if (ReleaseFile () < 0)
         goto bail;
-    
-    #if DEBUG_CDROM
+
+#if DEBUG_CDROM
     printf ("LoadFile: %d %d\n", startFrame, stopFrame);
-    #endif
-    
-    /*try {*/
-    
-        /* create a new player, and attach to the audio unit */
-        
-        thePlayer = new_AudioFilePlayer(ref);
-        if (thePlayer == NULL) {
-            SDL_SetError ("LoadFile: Could not create player");
-            return -3; /*throw (-3);*/
-        }
-            
-        if (!thePlayer->SetDestination(thePlayer, &theUnit))
-            goto bail;
-        
-        if (startFrame >= 0)
-            thePlayer->SetStartFrame (thePlayer, startFrame);
-        
-        if (stopFrame >= 0 && stopFrame > startFrame)
-            thePlayer->SetStopFrame (thePlayer, stopFrame);
-        
-        /* we set the notifier later */
-        /*thePlayer->SetNotifier(thePlayer, FilePlayNotificationHandler, NULL);*/
-            
-        if (!thePlayer->Connect(thePlayer))
-            goto bail;
-    
-        #if DEBUG_CDROM
-        thePlayer->Print(thePlayer);
-        fflush (stdout);
-        #endif
+#endif
+
+    /*try { */
+
+    /* create a new player, and attach to the audio unit */
+
+    thePlayer = new_AudioFilePlayer (ref);
+    if (thePlayer == NULL) {
+        SDL_SetError ("LoadFile: Could not create player");
+        return -3;              /*throw (-3); */
+    }
+
+    if (!thePlayer->SetDestination (thePlayer, &theUnit))
+        goto bail;
+
+    if (startFrame >= 0)
+        thePlayer->SetStartFrame (thePlayer, startFrame);
+
+    if (stopFrame >= 0 && stopFrame > startFrame)
+        thePlayer->SetStopFrame (thePlayer, stopFrame);
+
+    /* we set the notifier later */
+    /*thePlayer->SetNotifier(thePlayer, FilePlayNotificationHandler, NULL); */
+
+    if (!thePlayer->Connect (thePlayer))
+        goto bail;
+
+#if DEBUG_CDROM
+    thePlayer->Print (thePlayer);
+    fflush (stdout);
+#endif
     /*}
-      catch (...)
-      {
-          goto bail;
-      }*/
-        
+       catch (...)
+       {
+       goto bail;
+       } */
+
     error = 0;
 
-    bail:
+  bail:
     return error;
 }
 
-int ReleaseFile ()
+int
+ReleaseFile ()
 {
     int error = -1;
-        
+
     /* (Don't see any way that the original C++ code could throw here.) --ryan. */
-    /*try {*/
-        if (thePlayer != NULL) {
-            
-            thePlayer->Disconnect(thePlayer);
-            
-            delete_AudioFilePlayer(thePlayer);
-            
-            thePlayer = NULL;
-        }
+    /*try { */
+    if (thePlayer != NULL) {
+
+        thePlayer->Disconnect (thePlayer);
+
+        delete_AudioFilePlayer (thePlayer);
+
+        thePlayer = NULL;
+    }
     /*}
-      catch (...)
-      {
-          goto bail;
-      }*/
-    
+       catch (...)
+       {
+       goto bail;
+       } */
+
     error = 0;
-    
+
 /*  bail: */
     return error;
 }
 
-int PlayFile ()
+int
+PlayFile ()
 {
     OSStatus result = -1;
-    
+
     if (CheckInit () < 0)
         goto bail;
-        
-    /*try {*/
-    
-        // start processing of the audio unit
-        result = AudioOutputUnitStart (theUnit);
-            if (result) goto bail; //THROW_RESULT("PlayFile: AudioOutputUnitStart")
-        
+
+    /*try { */
+
+    // start processing of the audio unit
+    result = AudioOutputUnitStart (theUnit);
+    if (result)
+        goto bail;              //THROW_RESULT("PlayFile: AudioOutputUnitStart")
+
     /*}
-    catch (...)
-    {
-        goto bail;
-    }*/
-    
+       catch (...)
+       {
+       goto bail;
+       } */
+
     result = 0;
-    
-bail:
+
+  bail:
     return result;
 }
 
-int PauseFile ()
+int
+PauseFile ()
 {
     OSStatus result = -1;
-    
+
     if (CheckInit () < 0)
         goto bail;
-            
-    /*try {*/
-    
-        /* stop processing the audio unit */
-        result = AudioOutputUnitStop (theUnit);
-            if (result) goto bail;  /*THROW_RESULT("PauseFile: AudioOutputUnitStop")*/
+
+    /*try { */
+
+    /* stop processing the audio unit */
+    result = AudioOutputUnitStop (theUnit);
+    if (result)
+        goto bail;              /*THROW_RESULT("PauseFile: AudioOutputUnitStop") */
     /*}
-      catch (...)
-      {
-          goto bail;
-      }*/
-    
+       catch (...)
+       {
+       goto bail;
+       } */
+
     result = 0;
-bail:
+  bail:
     return result;
 }
 
-void SetCompletionProc (CDPlayerCompletionProc proc, SDL_CD *cdrom)
+void
+SetCompletionProc (CDPlayerCompletionProc proc, SDL_CD * cdrom)
 {
-    assert(thePlayer != NULL);
+    assert (thePlayer != NULL);
 
     theCDROM = cdrom;
     completionProc = proc;
     thePlayer->SetNotifier (thePlayer, FilePlayNotificationHandler, cdrom);
 }
 
-int GetCurrentFrame ()
-{    
+int
+GetCurrentFrame ()
+{
     int frame;
-    
+
     if (thePlayer == NULL)
         frame = 0;
     else
         frame = thePlayer->GetCurrentFrame (thePlayer);
-        
-    return frame; 
+
+    return frame;
 }
 
 
 #pragma mark -- Private Functions --
 
-static OSStatus CheckInit ()
-{    
+static OSStatus
+CheckInit ()
+{
     if (playBackWasInit)
         return 0;
-    
+
     OSStatus result = noErr;
-    
+
     /* Create the callback semaphore */
-    callbackSem = SDL_CreateSemaphore(0);
+    callbackSem = SDL_CreateSemaphore (0);
 
     /* Start callback thread */
-    SDL_CreateThread(RunCallBackThread, NULL);
+    SDL_CreateThread (RunCallBackThread, NULL);
 
-    { /*try {*/
+    {                           /*try { */
         ComponentDescription desc;
-    
+
         desc.componentType = kAudioUnitComponentType;
         desc.componentSubType = kAudioUnitSubType_Output;
         desc.componentManufacturer = kAudioUnitID_DefaultOutput;
         desc.componentFlags = 0;
         desc.componentFlagsMask = 0;
-        
+
         Component comp = FindNextComponent (NULL, &desc);
         if (comp == NULL) {
             SDL_SetError ("CheckInit: FindNextComponent returned NULL");
-            if (result) return -1; //throw(internalComponentErr);
+            if (result)
+                return -1;      //throw(internalComponentErr);
         }
-        
+
         result = OpenAComponent (comp, &theUnit);
-            if (result) return -1; //THROW_RESULT("CheckInit: OpenAComponent")
-                    
+        if (result)
+            return -1;          //THROW_RESULT("CheckInit: OpenAComponent")
+
         // you need to initialize the output unit before you set it as a destination
         result = AudioUnitInitialize (theUnit);
-            if (result) return -1; //THROW_RESULT("CheckInit: AudioUnitInitialize")
-        
-                    
+        if (result)
+            return -1;          //THROW_RESULT("CheckInit: AudioUnitInitialize")
+
+
         playBackWasInit = true;
     }
     /*catch (...)
-      {
-          return -1;
-      }*/
-    
+       {
+       return -1;
+       } */
+
     return 0;
 }
 
-static void FilePlayNotificationHandler(void * inRefCon, OSStatus inStatus)
+static void
+FilePlayNotificationHandler (void *inRefCon, OSStatus inStatus)
 {
     if (inStatus == kAudioFilePlay_FileIsFinished) {
-    
+
         /* notify non-CA thread to perform the callback */
-        SDL_SemPost(callbackSem);
-        
+        SDL_SemPost (callbackSem);
+
     } else if (inStatus == kAudioFilePlayErr_FilePlayUnderrun) {
-    
+
         SDL_SetError ("CDPlayer Notification: buffer underrun");
     } else if (inStatus == kAudioFilePlay_PlayerIsUninitialized) {
-    
+
         SDL_SetError ("CDPlayer Notification: player is uninitialized");
     } else {
-        
+
         SDL_SetError ("CDPlayer Notification: unknown error %ld", inStatus);
     }
 }
 
-static int RunCallBackThread (void *param)
+static int
+RunCallBackThread (void *param)
 {
     for (;;) {
-    
-	SDL_SemWait(callbackSem);
+
+        SDL_SemWait (callbackSem);
 
         if (completionProc && theCDROM) {
-            #if DEBUG_CDROM
+#if DEBUG_CDROM
             printf ("callback!\n");
-            #endif
-            (*completionProc)(theCDROM);
+#endif
+            (*completionProc) (theCDROM);
         } else {
-            #if DEBUG_CDROM
+#if DEBUG_CDROM
             printf ("callback?\n");
-            #endif
+#endif
         }
     }
-    
-    #if DEBUG_CDROM
+
+#if DEBUG_CDROM
     printf ("thread dying now...\n");
-    #endif
-    
+#endif
+
     return 0;
 }
 
 /*}; // extern "C" */
+/* vi: set ts=4 sw=4 expandtab: */