diff src/cdrom/macosx/AudioFileReaderThread.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/AudioFileReaderThread.c	Sun May 21 17:27:13 2006 +0000
+++ b/src/cdrom/macosx/AudioFileReaderThread.c	Sun May 28 13:04:16 2006 +0000
@@ -28,7 +28,7 @@
    AudioFileManager.cpp
 */
 #include "AudioFilePlayer.h"
-#include <mach/mach.h> /* used for setting policy of thread */
+#include <mach/mach.h>          /* used for setting policy of thread */
 #include "SDLOSXCAGuard.h"
 #include <pthread.h>
 
@@ -42,283 +42,322 @@
 } FileData;
 
 
-typedef struct S_FileReaderThread {
+typedef struct S_FileReaderThread
+{
 /*public:*/
-    SDLOSXCAGuard*                    (*GetGuard)(struct S_FileReaderThread *frt);
-    void                        (*AddReader)(struct S_FileReaderThread *frt);
-    void                        (*RemoveReader)(struct S_FileReaderThread *frt, AudioFileManager* inItem);
-    int                         (*TryNextRead)(struct S_FileReaderThread *frt, AudioFileManager* inItem);
+    SDLOSXCAGuard *(*GetGuard) (struct S_FileReaderThread * frt);
+    void (*AddReader) (struct S_FileReaderThread * frt);
+    void (*RemoveReader) (struct S_FileReaderThread * frt,
+                          AudioFileManager * inItem);
+    int (*TryNextRead) (struct S_FileReaderThread * frt,
+                        AudioFileManager * inItem);
 
-    int     mThreadShouldDie;
-    
+    int mThreadShouldDie;
+
 /*private:*/
-    /*typedef std::list<AudioFileManager*> FileData;*/
+    /*typedef std::list<AudioFileManager*> FileData; */
 
-    SDLOSXCAGuard             *mGuard;
-    UInt32              mThreadPriority;
-    
-    int                 mNumReaders;    
-    FileData            *mFileData;
+    SDLOSXCAGuard *mGuard;
+    UInt32 mThreadPriority;
+
+    int mNumReaders;
+    FileData *mFileData;
 
 
-    void                        (*ReadNextChunk)(struct S_FileReaderThread *frt);
-    int                         (*StartFixedPriorityThread)(struct S_FileReaderThread *frt);
-    /*static*/
-    UInt32               (*GetThreadBasePriority)(pthread_t inThread);
-    /*static*/
-    void*                (*DiskReaderEntry)(void *inRefCon);
+    void (*ReadNextChunk) (struct S_FileReaderThread * frt);
+    int (*StartFixedPriorityThread) (struct S_FileReaderThread * frt);
+    /*static */
+      UInt32 (*GetThreadBasePriority) (pthread_t inThread);
+    /*static */
+    void *(*DiskReaderEntry) (void *inRefCon);
 } FileReaderThread;
 
 
-static SDLOSXCAGuard* FileReaderThread_GetGuard(FileReaderThread *frt)
+static SDLOSXCAGuard *
+FileReaderThread_GetGuard (FileReaderThread * frt)
 {
     return frt->mGuard;
 }
 
 /* returns 1 if succeeded */
-static int FileReaderThread_TryNextRead (FileReaderThread *frt, AudioFileManager* inItem)
+static int
+FileReaderThread_TryNextRead (FileReaderThread * frt,
+                              AudioFileManager * inItem)
 {
     int didLock = 0;
     int succeeded = 0;
-    if (frt->mGuard->Try(frt->mGuard, &didLock))
-    {
-        /*frt->mFileData.push_back (inItem);*/
+    if (frt->mGuard->Try (frt->mGuard, &didLock)) {
+        /*frt->mFileData.push_back (inItem); */
         /* !!! FIXME: this could be faster with a "tail" member. --ryan. */
         FileData *i = frt->mFileData;
         FileData *prev = NULL;
 
-        FileData *newfd = (FileData *) SDL_malloc(sizeof (FileData));
+        FileData *newfd = (FileData *) SDL_malloc (sizeof (FileData));
         newfd->obj = inItem;
         newfd->next = NULL;
 
-        while (i != NULL) { prev = i; i = i->next; }
+        while (i != NULL) {
+            prev = i;
+            i = i->next;
+        }
         if (prev == NULL)
             frt->mFileData = newfd;
         else
             prev->next = newfd;
 
-        frt->mGuard->Notify(frt->mGuard);
+        frt->mGuard->Notify (frt->mGuard);
         succeeded = 1;
 
         if (didLock)
-            frt->mGuard->Unlock(frt->mGuard);
+            frt->mGuard->Unlock (frt->mGuard);
     }
-                
+
     return succeeded;
 }
 
-static void    FileReaderThread_AddReader(FileReaderThread *frt)
+static void
+FileReaderThread_AddReader (FileReaderThread * frt)
 {
-    if (frt->mNumReaders == 0)
-    {
+    if (frt->mNumReaders == 0) {
         frt->mThreadShouldDie = 0;
         frt->StartFixedPriorityThread (frt);
     }
     frt->mNumReaders++;
 }
 
-static void    FileReaderThread_RemoveReader (FileReaderThread *frt, AudioFileManager* inItem)
+static void
+FileReaderThread_RemoveReader (FileReaderThread * frt,
+                               AudioFileManager * inItem)
 {
-    if (frt->mNumReaders > 0)
-    {
-        int bNeedsRelease = frt->mGuard->Lock(frt->mGuard);
-        
-        /*frt->mFileData.remove (inItem);*/
+    if (frt->mNumReaders > 0) {
+        int bNeedsRelease = frt->mGuard->Lock (frt->mGuard);
+
+        /*frt->mFileData.remove (inItem); */
         FileData *i = frt->mFileData;
         FileData *prev = NULL;
-        while (i != NULL)
-        {
+        while (i != NULL) {
             FileData *next = i->next;
             if (i->obj != inItem)
                 prev = i;
-            else
-            {
+            else {
                 if (prev == NULL)
                     frt->mFileData = next;
                 else
                     prev->next = next;
-                SDL_free(i);
+                SDL_free (i);
             }
             i = next;
         }
 
         if (--frt->mNumReaders == 0) {
             frt->mThreadShouldDie = 1;
-            frt->mGuard->Notify(frt->mGuard); /* wake up thread so it will quit */
-            frt->mGuard->Wait(frt->mGuard);   /* wait for thread to die */
+            frt->mGuard->Notify (frt->mGuard);  /* wake up thread so it will quit */
+            frt->mGuard->Wait (frt->mGuard);    /* wait for thread to die */
         }
 
-        if (bNeedsRelease) frt->mGuard->Unlock(frt->mGuard);
-    }   
+        if (bNeedsRelease)
+            frt->mGuard->Unlock (frt->mGuard);
+    }
 }
 
-static int    FileReaderThread_StartFixedPriorityThread (FileReaderThread *frt)
+static int
+FileReaderThread_StartFixedPriorityThread (FileReaderThread * frt)
 {
-    pthread_attr_t      theThreadAttrs;
-    pthread_t           pThread;
+    pthread_attr_t theThreadAttrs;
+    pthread_t pThread;
+
+    OSStatus result = pthread_attr_init (&theThreadAttrs);
+    if (result)
+        return 0;               /*THROW_RESULT("pthread_attr_init - Thread attributes could not be created.") */
 
-    OSStatus result = pthread_attr_init(&theThreadAttrs);
-        if (result) return 0; /*THROW_RESULT("pthread_attr_init - Thread attributes could not be created.")*/
-    
-    result = pthread_attr_setdetachstate(&theThreadAttrs, PTHREAD_CREATE_DETACHED);
-        if (result) return 0; /*THROW_RESULT("pthread_attr_setdetachstate - Thread attributes could not be detached.")*/
-    
-    result = pthread_create (&pThread, &theThreadAttrs, frt->DiskReaderEntry, frt);
-        if (result) return 0; /*THROW_RESULT("pthread_create - Create and start the thread.")*/
-    
-    pthread_attr_destroy(&theThreadAttrs);
-    
+    result =
+        pthread_attr_setdetachstate (&theThreadAttrs,
+                                     PTHREAD_CREATE_DETACHED);
+    if (result)
+        return 0;               /*THROW_RESULT("pthread_attr_setdetachstate - Thread attributes could not be detached.") */
+
+    result =
+        pthread_create (&pThread, &theThreadAttrs, frt->DiskReaderEntry, frt);
+    if (result)
+        return 0;               /*THROW_RESULT("pthread_create - Create and start the thread.") */
+
+    pthread_attr_destroy (&theThreadAttrs);
+
     /* we've now created the thread and started it
        we'll now set the priority of the thread to the nominated priority
        and we'll also make the thread fixed */
-    thread_extended_policy_data_t       theFixedPolicy;
-    thread_precedence_policy_data_t     thePrecedencePolicy;
-    SInt32                              relativePriority;
-    
+    thread_extended_policy_data_t theFixedPolicy;
+    thread_precedence_policy_data_t thePrecedencePolicy;
+    SInt32 relativePriority;
+
     /* make thread fixed */
-    theFixedPolicy.timeshare = 0;   /* set to 1 for a non-fixed thread */
-    result = thread_policy_set (pthread_mach_thread_np(pThread), THREAD_EXTENDED_POLICY, (thread_policy_t)&theFixedPolicy, THREAD_EXTENDED_POLICY_COUNT);
-        if (result) return 0; /*THROW_RESULT("thread_policy - Couldn't set thread as fixed priority.")*/
+    theFixedPolicy.timeshare = 0;       /* set to 1 for a non-fixed thread */
+    result =
+        thread_policy_set (pthread_mach_thread_np (pThread),
+                           THREAD_EXTENDED_POLICY,
+                           (thread_policy_t) & theFixedPolicy,
+                           THREAD_EXTENDED_POLICY_COUNT);
+    if (result)
+        return 0;               /*THROW_RESULT("thread_policy - Couldn't set thread as fixed priority.") */
     /* set priority */
     /* precedency policy's "importance" value is relative to spawning thread's priority */
-    relativePriority = frt->mThreadPriority - frt->GetThreadBasePriority(pthread_self());
-        
+    relativePriority =
+        frt->mThreadPriority - frt->GetThreadBasePriority (pthread_self ());
+
     thePrecedencePolicy.importance = relativePriority;
-    result = thread_policy_set (pthread_mach_thread_np(pThread), THREAD_PRECEDENCE_POLICY, (thread_policy_t)&thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT);
-        if (result) return 0; /*THROW_RESULT("thread_policy - Couldn't set thread priority.")*/
+    result =
+        thread_policy_set (pthread_mach_thread_np (pThread),
+                           THREAD_PRECEDENCE_POLICY,
+                           (thread_policy_t) & thePrecedencePolicy,
+                           THREAD_PRECEDENCE_POLICY_COUNT);
+    if (result)
+        return 0;               /*THROW_RESULT("thread_policy - Couldn't set thread priority.") */
 
     return 1;
 }
 
-static UInt32  FileReaderThread_GetThreadBasePriority (pthread_t inThread)
+static UInt32
+FileReaderThread_GetThreadBasePriority (pthread_t inThread)
 {
-    thread_basic_info_data_t            threadInfo;
-    policy_info_data_t                  thePolicyInfo;
-    unsigned int                        count;
-    
+    thread_basic_info_data_t threadInfo;
+    policy_info_data_t thePolicyInfo;
+    unsigned int count;
+
     /* get basic info */
     count = THREAD_BASIC_INFO_COUNT;
-    thread_info (pthread_mach_thread_np (inThread), THREAD_BASIC_INFO, (integer_t*)&threadInfo, &count);
-    
+    thread_info (pthread_mach_thread_np (inThread), THREAD_BASIC_INFO,
+                 (integer_t *) & threadInfo, &count);
+
     switch (threadInfo.policy) {
-        case POLICY_TIMESHARE:
-            count = POLICY_TIMESHARE_INFO_COUNT;
-            thread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_TIMESHARE_INFO, (integer_t*)&(thePolicyInfo.ts), &count);
-            return thePolicyInfo.ts.base_priority;
-            break;
-            
-        case POLICY_FIFO:
-            count = POLICY_FIFO_INFO_COUNT;
-            thread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_FIFO_INFO, (integer_t*)&(thePolicyInfo.fifo), &count);
-            if (thePolicyInfo.fifo.depressed) {
-                return thePolicyInfo.fifo.depress_priority;
-            } else {
-                return thePolicyInfo.fifo.base_priority;
-            }
-            break;
-            
-        case POLICY_RR:
-            count = POLICY_RR_INFO_COUNT;
-            thread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_RR_INFO, (integer_t*)&(thePolicyInfo.rr), &count);
-            if (thePolicyInfo.rr.depressed) {
-                return thePolicyInfo.rr.depress_priority;
-            } else {
-                return thePolicyInfo.rr.base_priority;
-            }
-            break;
+    case POLICY_TIMESHARE:
+        count = POLICY_TIMESHARE_INFO_COUNT;
+        thread_info (pthread_mach_thread_np (inThread),
+                     THREAD_SCHED_TIMESHARE_INFO,
+                     (integer_t *) & (thePolicyInfo.ts), &count);
+        return thePolicyInfo.ts.base_priority;
+        break;
+
+    case POLICY_FIFO:
+        count = POLICY_FIFO_INFO_COUNT;
+        thread_info (pthread_mach_thread_np (inThread),
+                     THREAD_SCHED_FIFO_INFO,
+                     (integer_t *) & (thePolicyInfo.fifo), &count);
+        if (thePolicyInfo.fifo.depressed) {
+            return thePolicyInfo.fifo.depress_priority;
+        } else {
+            return thePolicyInfo.fifo.base_priority;
+        }
+        break;
+
+    case POLICY_RR:
+        count = POLICY_RR_INFO_COUNT;
+        thread_info (pthread_mach_thread_np (inThread),
+                     THREAD_SCHED_RR_INFO,
+                     (integer_t *) & (thePolicyInfo.rr), &count);
+        if (thePolicyInfo.rr.depressed) {
+            return thePolicyInfo.rr.depress_priority;
+        } else {
+            return thePolicyInfo.rr.base_priority;
+        }
+        break;
     }
-    
-    return 0;
-}
 
-static void    *FileReaderThread_DiskReaderEntry (void *inRefCon)
-{
-    FileReaderThread *frt = (FileReaderThread *)inRefCon;
-    frt->ReadNextChunk(frt);
-    #if DEBUG
-    printf ("finished with reading file\n");
-    #endif
-    
     return 0;
 }
 
-static void    FileReaderThread_ReadNextChunk (FileReaderThread *frt)
+static void *
+FileReaderThread_DiskReaderEntry (void *inRefCon)
+{
+    FileReaderThread *frt = (FileReaderThread *) inRefCon;
+    frt->ReadNextChunk (frt);
+#if DEBUG
+    printf ("finished with reading file\n");
+#endif
+
+    return 0;
+}
+
+static void
+FileReaderThread_ReadNextChunk (FileReaderThread * frt)
 {
     OSStatus result;
-    UInt32  dataChunkSize;
-    AudioFileManager* theItem = 0;
+    UInt32 dataChunkSize;
+    AudioFileManager *theItem = 0;
 
-    for (;;) 
-    {
-        { /* this is a scoped based lock */
-            int bNeedsRelease = frt->mGuard->Lock(frt->mGuard);
-            
+    for (;;) {
+        {                       /* this is a scoped based lock */
+            int bNeedsRelease = frt->mGuard->Lock (frt->mGuard);
+
             if (frt->mThreadShouldDie) {
-                frt->mGuard->Notify(frt->mGuard);
-                if (bNeedsRelease) frt->mGuard->Unlock(frt->mGuard);
-                return;
-            }
-            
-            /*if (frt->mFileData.empty())*/
-            if (frt->mFileData == NULL)
-            {
-                frt->mGuard->Wait(frt->mGuard);
-            }
-                        
-            /* kill thread */
-            if (frt->mThreadShouldDie) {
-            
-                frt->mGuard->Notify(frt->mGuard);
-                if (bNeedsRelease) frt->mGuard->Unlock(frt->mGuard);
+                frt->mGuard->Notify (frt->mGuard);
+                if (bNeedsRelease)
+                    frt->mGuard->Unlock (frt->mGuard);
                 return;
             }
 
-            /*theItem = frt->mFileData.front();*/
-            /*frt->mFileData.pop_front();*/
+            /*if (frt->mFileData.empty()) */
+            if (frt->mFileData == NULL) {
+                frt->mGuard->Wait (frt->mGuard);
+            }
+
+            /* kill thread */
+            if (frt->mThreadShouldDie) {
+
+                frt->mGuard->Notify (frt->mGuard);
+                if (bNeedsRelease)
+                    frt->mGuard->Unlock (frt->mGuard);
+                return;
+            }
+
+            /*theItem = frt->mFileData.front(); */
+            /*frt->mFileData.pop_front(); */
             theItem = NULL;
-            if (frt->mFileData != NULL)
-            {
+            if (frt->mFileData != NULL) {
                 FileData *next = frt->mFileData->next;
                 theItem = frt->mFileData->obj;
-                SDL_free(frt->mFileData);
+                SDL_free (frt->mFileData);
                 frt->mFileData = next;
             }
 
-            if (bNeedsRelease) frt->mGuard->Unlock(frt->mGuard);
+            if (bNeedsRelease)
+                frt->mGuard->Unlock (frt->mGuard);
         }
-    
-        if ((theItem->mFileLength - theItem->mReadFilePosition) < theItem->mChunkSize)
+
+        if ((theItem->mFileLength - theItem->mReadFilePosition) <
+            theItem->mChunkSize)
             dataChunkSize = theItem->mFileLength - theItem->mReadFilePosition;
         else
             dataChunkSize = theItem->mChunkSize;
-        
-            /* this is the exit condition for the thread */
+
+        /* this is the exit condition for the thread */
         if (dataChunkSize <= 0) {
             theItem->mFinishedReadingData = 1;
             continue;
         }
-            /* construct pointer */
-        char* writePtr = (char *) (theItem->GetFileBuffer(theItem) +
-                                (theItem->mWriteToFirstBuffer ? 0 : theItem->mChunkSize));
-    
-            /* read data */
-        result = theItem->Read(theItem, writePtr, &dataChunkSize);
+        /* construct pointer */
+        char *writePtr = (char *) (theItem->GetFileBuffer (theItem) +
+                                   (theItem->
+                                    mWriteToFirstBuffer ? 0 : theItem->
+                                    mChunkSize));
+
+        /* read data */
+        result = theItem->Read (theItem, writePtr, &dataChunkSize);
         if (result != noErr && result != eofErr) {
-            AudioFilePlayer *afp = (AudioFilePlayer *) theItem->GetParent(theItem);
-            afp->DoNotification(afp, result);
+            AudioFilePlayer *afp =
+                (AudioFilePlayer *) theItem->GetParent (theItem);
+            afp->DoNotification (afp, result);
             continue;
         }
-        
-        if (dataChunkSize != theItem->mChunkSize)
-        {
+
+        if (dataChunkSize != theItem->mChunkSize) {
             writePtr += dataChunkSize;
 
             /* can't exit yet.. we still have to pass the partial buffer back */
-            SDL_memset(writePtr, 0, (theItem->mChunkSize - dataChunkSize));
+            SDL_memset (writePtr, 0, (theItem->mChunkSize - dataChunkSize));
         }
-        
+
         theItem->mWriteToFirstBuffer = !theItem->mWriteToFirstBuffer;   /* switch buffers */
-        
+
         if (result == eofErr)
             theItem->mReadFilePosition = theItem->mFileLength;
         else
@@ -326,39 +365,39 @@
     }
 }
 
-void delete_FileReaderThread(FileReaderThread *frt)
+void
+delete_FileReaderThread (FileReaderThread * frt)
 {
-    if (frt != NULL)
-    {
-        delete_SDLOSXCAGuard(frt->mGuard);
-        SDL_free(frt);
+    if (frt != NULL) {
+        delete_SDLOSXCAGuard (frt->mGuard);
+        SDL_free (frt);
     }
 }
 
-FileReaderThread *new_FileReaderThread ()
+FileReaderThread *
+new_FileReaderThread ()
 {
-    FileReaderThread *frt = (FileReaderThread *) SDL_malloc(sizeof (FileReaderThread));
+    FileReaderThread *frt =
+        (FileReaderThread *) SDL_malloc (sizeof (FileReaderThread));
     if (frt == NULL)
         return NULL;
-    SDL_memset(frt, '\0', sizeof (*frt));
+    SDL_memset (frt, '\0', sizeof (*frt));
 
-    frt->mGuard = new_SDLOSXCAGuard();
-    if (frt->mGuard == NULL)
-    {
-        SDL_free(frt);
+    frt->mGuard = new_SDLOSXCAGuard ();
+    if (frt->mGuard == NULL) {
+        SDL_free (frt);
         return NULL;
     }
-
-    #define SET_FILEREADERTHREAD_METHOD(m) frt->m = FileReaderThread_##m
-    SET_FILEREADERTHREAD_METHOD(GetGuard);
-    SET_FILEREADERTHREAD_METHOD(AddReader);
-    SET_FILEREADERTHREAD_METHOD(RemoveReader);
-    SET_FILEREADERTHREAD_METHOD(TryNextRead);
-    SET_FILEREADERTHREAD_METHOD(ReadNextChunk);
-    SET_FILEREADERTHREAD_METHOD(StartFixedPriorityThread);
-    SET_FILEREADERTHREAD_METHOD(GetThreadBasePriority);
-    SET_FILEREADERTHREAD_METHOD(DiskReaderEntry);
-    #undef SET_FILEREADERTHREAD_METHOD
+#define SET_FILEREADERTHREAD_METHOD(m) frt->m = FileReaderThread_##m
+    SET_FILEREADERTHREAD_METHOD (GetGuard);
+    SET_FILEREADERTHREAD_METHOD (AddReader);
+    SET_FILEREADERTHREAD_METHOD (RemoveReader);
+    SET_FILEREADERTHREAD_METHOD (TryNextRead);
+    SET_FILEREADERTHREAD_METHOD (ReadNextChunk);
+    SET_FILEREADERTHREAD_METHOD (StartFixedPriorityThread);
+    SET_FILEREADERTHREAD_METHOD (GetThreadBasePriority);
+    SET_FILEREADERTHREAD_METHOD (DiskReaderEntry);
+#undef SET_FILEREADERTHREAD_METHOD
 
     frt->mThreadPriority = 62;
     return frt;
@@ -368,228 +407,243 @@
 static FileReaderThread *sReaderThread;
 
 
-static int    AudioFileManager_DoConnect (AudioFileManager *afm)
+static int
+AudioFileManager_DoConnect (AudioFileManager * afm)
 {
-    if (!afm->mIsEngaged)
-    {
+    if (!afm->mIsEngaged) {
         OSStatus result;
 
-        /*afm->mReadFilePosition = 0;*/
+        /*afm->mReadFilePosition = 0; */
         afm->mFinishedReadingData = 0;
 
         afm->mNumTimesAskedSinceFinished = 0;
         afm->mLockUnsuccessful = 0;
-        
+
         UInt32 dataChunkSize;
-        
+
         if ((afm->mFileLength - afm->mReadFilePosition) < afm->mChunkSize)
             dataChunkSize = afm->mFileLength - afm->mReadFilePosition;
         else
             dataChunkSize = afm->mChunkSize;
-        
-        result = afm->Read(afm, afm->mFileBuffer, &dataChunkSize);
-           if (result) return 0; /*THROW_RESULT("AudioFileManager::DoConnect(): Read")*/
+
+        result = afm->Read (afm, afm->mFileBuffer, &dataChunkSize);
+        if (result)
+            return 0;           /*THROW_RESULT("AudioFileManager::DoConnect(): Read") */
 
         afm->mReadFilePosition += dataChunkSize;
-                
+
         afm->mWriteToFirstBuffer = 0;
         afm->mReadFromFirstBuffer = 1;
 
-        sReaderThread->AddReader(sReaderThread);
-        
+        sReaderThread->AddReader (sReaderThread);
+
         afm->mIsEngaged = 1;
     }
     /*
-    else
-        throw static_cast<OSStatus>(-1); */ /* thread has already been started */
+       else
+       throw static_cast<OSStatus>(-1); *//* thread has already been started */
 
     return 1;
 }
 
-static void    AudioFileManager_Disconnect (AudioFileManager *afm)
+static void
+AudioFileManager_Disconnect (AudioFileManager * afm)
 {
-    if (afm->mIsEngaged)
-    {
+    if (afm->mIsEngaged) {
         sReaderThread->RemoveReader (sReaderThread, afm);
         afm->mIsEngaged = 0;
     }
 }
 
-static OSStatus AudioFileManager_Read(AudioFileManager *afm, char *buffer, UInt32 *len)
+static OSStatus
+AudioFileManager_Read (AudioFileManager * afm, char *buffer, UInt32 * len)
 {
     return FSReadFork (afm->mForkRefNum,
                        fsFromStart,
                        afm->mReadFilePosition + afm->mAudioDataOffset,
-                       *len,
-                       buffer,
-                       len);
+                       *len, buffer, len);
 }
 
-static OSStatus AudioFileManager_GetFileData (AudioFileManager *afm, void** inOutData, UInt32 *inOutDataSize)
+static OSStatus
+AudioFileManager_GetFileData (AudioFileManager * afm, void **inOutData,
+                              UInt32 * inOutDataSize)
 {
-    if (afm->mFinishedReadingData)
-    {
+    if (afm->mFinishedReadingData) {
         ++afm->mNumTimesAskedSinceFinished;
         *inOutDataSize = 0;
         *inOutData = 0;
         return noErr;
     }
-    
+
     if (afm->mReadFromFirstBuffer == afm->mWriteToFirstBuffer) {
-        #if DEBUG
+#if DEBUG
         printf ("* * * * * * * Can't keep up with reading file\n");
-        #endif
-        
-        afm->mParent->DoNotification (afm->mParent, kAudioFilePlayErr_FilePlayUnderrun);
+#endif
+
+        afm->mParent->DoNotification (afm->mParent,
+                                      kAudioFilePlayErr_FilePlayUnderrun);
         *inOutDataSize = 0;
         *inOutData = 0;
     } else {
         *inOutDataSize = afm->mChunkSize;
-        *inOutData = afm->mReadFromFirstBuffer ? afm->mFileBuffer : (afm->mFileBuffer + afm->mChunkSize);
+        *inOutData =
+            afm->mReadFromFirstBuffer ? afm->mFileBuffer : (afm->
+                                                            mFileBuffer +
+                                                            afm->mChunkSize);
     }
 
     afm->mLockUnsuccessful = !sReaderThread->TryNextRead (sReaderThread, afm);
-    
+
     afm->mReadFromFirstBuffer = !afm->mReadFromFirstBuffer;
 
     return noErr;
 }
 
-static void    AudioFileManager_AfterRender (AudioFileManager *afm)
+static void
+AudioFileManager_AfterRender (AudioFileManager * afm)
 {
-    if (afm->mNumTimesAskedSinceFinished > 0)
-    {
+    if (afm->mNumTimesAskedSinceFinished > 0) {
         int didLock = 0;
-        SDLOSXCAGuard *guard = sReaderThread->GetGuard(sReaderThread);
-        if (guard->Try(guard, &didLock)) {
-            afm->mParent->DoNotification (afm->mParent, kAudioFilePlay_FileIsFinished);
+        SDLOSXCAGuard *guard = sReaderThread->GetGuard (sReaderThread);
+        if (guard->Try (guard, &didLock)) {
+            afm->mParent->DoNotification (afm->mParent,
+                                          kAudioFilePlay_FileIsFinished);
             if (didLock)
-                guard->Unlock(guard);
+                guard->Unlock (guard);
         }
     }
 
     if (afm->mLockUnsuccessful)
-        afm->mLockUnsuccessful = !sReaderThread->TryNextRead (sReaderThread, afm);
+        afm->mLockUnsuccessful =
+            !sReaderThread->TryNextRead (sReaderThread, afm);
 }
 
-static void    AudioFileManager_SetPosition (AudioFileManager *afm, SInt64 pos)
+static void
+AudioFileManager_SetPosition (AudioFileManager * afm, SInt64 pos)
 {
     if (pos < 0 || pos >= afm->mFileLength) {
-        SDL_SetError ("AudioFileManager::SetPosition - position invalid: %d filelen=%d\n", 
-            (unsigned int)pos, (unsigned int)afm->mFileLength);
+        SDL_SetError
+            ("AudioFileManager::SetPosition - position invalid: %d filelen=%d\n",
+             (unsigned int) pos, (unsigned int) afm->mFileLength);
         pos = 0;
     }
-        
+
     afm->mReadFilePosition = pos;
 }
-    
-static void    AudioFileManager_SetEndOfFile (AudioFileManager *afm, SInt64 pos)
+
+static void
+AudioFileManager_SetEndOfFile (AudioFileManager * afm, SInt64 pos)
 {
     if (pos <= 0 || pos > afm->mFileLength) {
-        SDL_SetError ("AudioFileManager::SetEndOfFile - position beyond actual eof\n");
+        SDL_SetError
+            ("AudioFileManager::SetEndOfFile - position beyond actual eof\n");
         pos = afm->mFileLength;
     }
-    
+
     afm->mFileLength = pos;
 }
 
-static const char *AudioFileManager_GetFileBuffer(AudioFileManager *afm)
+static const char *
+AudioFileManager_GetFileBuffer (AudioFileManager * afm)
 {
     return afm->mFileBuffer;
 }
 
-const AudioFilePlayer *AudioFileManager_GetParent(AudioFileManager *afm)
+const AudioFilePlayer *
+AudioFileManager_GetParent (AudioFileManager * afm)
 {
     return afm->mParent;
 }
 
-static int AudioFileManager_GetByteCounter(AudioFileManager *afm)
+static int
+AudioFileManager_GetByteCounter (AudioFileManager * afm)
 {
     return afm->mByteCounter;
 }
 
 
-static OSStatus    AudioFileManager_FileInputProc (void                       *inRefCon,
-                                             AudioUnitRenderActionFlags inActionFlags,
-                                             const AudioTimeStamp       *inTimeStamp, 
-                                             UInt32                     inBusNumber, 
-                                             AudioBuffer                *ioData)
+static OSStatus
+AudioFileManager_FileInputProc (void *inRefCon,
+                                AudioUnitRenderActionFlags inActionFlags,
+                                const AudioTimeStamp * inTimeStamp,
+                                UInt32 inBusNumber, AudioBuffer * ioData)
 {
-    AudioFileManager* afm = (AudioFileManager*)inRefCon;
-    return afm->Render(afm, ioData);
+    AudioFileManager *afm = (AudioFileManager *) inRefCon;
+    return afm->Render (afm, ioData);
 }
 
-static OSStatus    AudioFileManager_Render (AudioFileManager *afm, AudioBuffer *ioData)
+static OSStatus
+AudioFileManager_Render (AudioFileManager * afm, AudioBuffer * ioData)
 {
     OSStatus result = noErr;
-    
-	if (afm->mBufferOffset >= afm->mBufferSize) {
-		result = afm->GetFileData(afm, &afm->mTmpBuffer, &afm->mBufferSize);
-		if (result) {
-			SDL_SetError ("AudioConverterFillBuffer:%ld\n", result);
-			afm->mParent->DoNotification(afm->mParent, result);
-			return result;
-		}
+
+    if (afm->mBufferOffset >= afm->mBufferSize) {
+        result = afm->GetFileData (afm, &afm->mTmpBuffer, &afm->mBufferSize);
+        if (result) {
+            SDL_SetError ("AudioConverterFillBuffer:%ld\n", result);
+            afm->mParent->DoNotification (afm->mParent, result);
+            return result;
+        }
 
-		afm->mBufferOffset = 0;
-	}
-    	
+        afm->mBufferOffset = 0;
+    }
+
     if (ioData->mDataByteSize > afm->mBufferSize - afm->mBufferOffset)
-    	ioData->mDataByteSize = afm->mBufferSize - afm->mBufferOffset;
-    ioData->mData = (char *)afm->mTmpBuffer + afm->mBufferOffset;
+        ioData->mDataByteSize = afm->mBufferSize - afm->mBufferOffset;
+    ioData->mData = (char *) afm->mTmpBuffer + afm->mBufferOffset;
     afm->mBufferOffset += ioData->mDataByteSize;
-    
-	afm->mByteCounter += ioData->mDataByteSize;
-	afm->AfterRender(afm);
+
+    afm->mByteCounter += ioData->mDataByteSize;
+    afm->AfterRender (afm);
     return result;
 }
 
 
-void delete_AudioFileManager (AudioFileManager *afm)
+void
+delete_AudioFileManager (AudioFileManager * afm)
 {
     if (afm != NULL) {
         if (afm->mFileBuffer) {
-            free(afm->mFileBuffer);
+            free (afm->mFileBuffer);
         }
 
-        SDL_free(afm);
+        SDL_free (afm);
     }
 }
 
 
-AudioFileManager *new_AudioFileManager(AudioFilePlayer *inParent,
-                                       SInt16          inForkRefNum,
-                                       SInt64          inFileLength,
-                                       UInt32          inChunkSize)
+AudioFileManager *
+new_AudioFileManager (AudioFilePlayer * inParent,
+                      SInt16 inForkRefNum,
+                      SInt64 inFileLength, UInt32 inChunkSize)
 {
     AudioFileManager *afm;
 
-    if (sReaderThread == NULL)
-    {
-        sReaderThread = new_FileReaderThread();
+    if (sReaderThread == NULL) {
+        sReaderThread = new_FileReaderThread ();
         if (sReaderThread == NULL)
             return NULL;
     }
 
-    afm = (AudioFileManager *) SDL_malloc(sizeof (AudioFileManager));
+    afm = (AudioFileManager *) SDL_malloc (sizeof (AudioFileManager));
     if (afm == NULL)
         return NULL;
-    SDL_memset(afm, '\0', sizeof (*afm));
+    SDL_memset (afm, '\0', sizeof (*afm));
 
-    #define SET_AUDIOFILEMANAGER_METHOD(m) afm->m = AudioFileManager_##m
-    SET_AUDIOFILEMANAGER_METHOD(Disconnect);
-    SET_AUDIOFILEMANAGER_METHOD(DoConnect);
-    SET_AUDIOFILEMANAGER_METHOD(Read);
-    SET_AUDIOFILEMANAGER_METHOD(GetFileBuffer);
-    SET_AUDIOFILEMANAGER_METHOD(GetParent);
-    SET_AUDIOFILEMANAGER_METHOD(SetPosition);
-    SET_AUDIOFILEMANAGER_METHOD(GetByteCounter);
-    SET_AUDIOFILEMANAGER_METHOD(SetEndOfFile);
-    SET_AUDIOFILEMANAGER_METHOD(Render);
-    SET_AUDIOFILEMANAGER_METHOD(GetFileData);
-    SET_AUDIOFILEMANAGER_METHOD(AfterRender);
-    SET_AUDIOFILEMANAGER_METHOD(FileInputProc);
-    #undef SET_AUDIOFILEMANAGER_METHOD
+#define SET_AUDIOFILEMANAGER_METHOD(m) afm->m = AudioFileManager_##m
+    SET_AUDIOFILEMANAGER_METHOD (Disconnect);
+    SET_AUDIOFILEMANAGER_METHOD (DoConnect);
+    SET_AUDIOFILEMANAGER_METHOD (Read);
+    SET_AUDIOFILEMANAGER_METHOD (GetFileBuffer);
+    SET_AUDIOFILEMANAGER_METHOD (GetParent);
+    SET_AUDIOFILEMANAGER_METHOD (SetPosition);
+    SET_AUDIOFILEMANAGER_METHOD (GetByteCounter);
+    SET_AUDIOFILEMANAGER_METHOD (SetEndOfFile);
+    SET_AUDIOFILEMANAGER_METHOD (Render);
+    SET_AUDIOFILEMANAGER_METHOD (GetFileData);
+    SET_AUDIOFILEMANAGER_METHOD (AfterRender);
+    SET_AUDIOFILEMANAGER_METHOD (FileInputProc);
+#undef SET_AUDIOFILEMANAGER_METHOD
 
     afm->mParent = inParent;
     afm->mForkRefNum = inForkRefNum;
@@ -597,9 +651,10 @@
     afm->mBufferOffset = inChunkSize;
     afm->mChunkSize = inChunkSize;
     afm->mFileLength = inFileLength;
-    afm->mFileBuffer = (char*) SDL_malloc(afm->mChunkSize * 2);
-    FSGetForkPosition(afm->mForkRefNum, &afm->mAudioDataOffset);
+    afm->mFileBuffer = (char *) SDL_malloc (afm->mChunkSize * 2);
+    FSGetForkPosition (afm->mForkRefNum, &afm->mAudioDataOffset);
     assert (afm->mFileBuffer != NULL);
     return afm;
 }
 
+/* vi: set ts=4 sw=4 expandtab: */