]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - snd_coreaudio.c
fix more warnings
[xonotic/darkplaces.git] / snd_coreaudio.c
index 3a132f98658741b9222e53be57437c089f18fd2c..093893016ab4486fb85c2312142c22243fc362d9 100644 (file)
@@ -63,12 +63,12 @@ OSStatus audioDeviceIOProc(AudioDeviceID inDevice,
        unsigned int sampleIndex;
        float *outBuffer;
        float scale;
-       
+
        offset = (s_chunkCount * submissionChunk) % maxMixedSamples;
        samples = s_mixedSamples + offset;
-       
+
        outBuffer = (float *)outOutputData->mBuffers[0].mData;
-       
+
        // If we have run out of samples, return silence
        if (s_chunkCount * submissionChunk > shm->format.channels * paintedtime)
        {
@@ -83,7 +83,7 @@ OSStatus audioDeviceIOProc(AudioDeviceID inDevice,
 
                s_chunkCount++; // this is the next buffer we will submit
        }
-       
+
        return 0;
 }
 
@@ -110,14 +110,14 @@ qboolean SNDDMA_Init(void)
                Con_Printf("AudioHardwareGetProperty returned %d\n", status);
                return false;
        }
-       
+
        if (outputDeviceID == kAudioDeviceUnknown)
        {
                Con_Printf("AudioHardwareGetProperty: outputDeviceID is kAudioDeviceUnknown\n");
                return false;
        }
 
-       // Configure the output device  
+       // Configure the output device
        // TODO: support "-sndspeed", "-sndmono" and "-sndstereo"
        propertySize = sizeof(bufferByteCount);
        bufferByteCount = CHUNK_SIZE * sizeof(float);
@@ -127,7 +127,7 @@ qboolean SNDDMA_Init(void)
                Con_Printf("AudioDeviceSetProperty: returned %d when setting kAudioDevicePropertyBufferSize to %d\n", status, CHUNK_SIZE);
                return false;
        }
-       
+
        propertySize = sizeof(bufferByteCount);
        status = AudioDeviceGetProperty(outputDeviceID, 0, false, kAudioDevicePropertyBufferSize, &propertySize, &bufferByteCount);
        if (status)
@@ -147,24 +147,24 @@ qboolean SNDDMA_Init(void)
                return false;
        }
        Con_DPrintf("   Hardware format:\n");
-       Con_DPrintf("    %5d mSampleRate\n", (unsigned int)outputStreamBasicDescription.mSampleRate);
-       Con_DPrintf("     %c%c%c%c mFormatID\n",
+       Con_DPrintf("    %5d mSampleRate\n", (unsigned int)outputStreamBasicDescription.mSampleRate);
+       Con_DPrintf("     %c%c%c%c mFormatID\n",
                                (outputStreamBasicDescription.mFormatID & 0xff000000) >> 24,
                                (outputStreamBasicDescription.mFormatID & 0x00ff0000) >> 16,
                                (outputStreamBasicDescription.mFormatID & 0x0000ff00) >>  8,
                                (outputStreamBasicDescription.mFormatID & 0x000000ff) >>  0);
-       Con_DPrintf("    %5d mBytesPerPacket\n", outputStreamBasicDescription.mBytesPerPacket);
-       Con_DPrintf("    %5d mFramesPerPacket\n", outputStreamBasicDescription.mFramesPerPacket);
-       Con_DPrintf("    %5d mBytesPerFrame\n", outputStreamBasicDescription.mBytesPerFrame);
-       Con_DPrintf("    %5d mChannelsPerFrame\n", outputStreamBasicDescription.mChannelsPerFrame);
-       Con_DPrintf("    %5d mBitsPerChannel\n", outputStreamBasicDescription.mBitsPerChannel);
+       Con_DPrintf("    %5d mBytesPerPacket\n", outputStreamBasicDescription.mBytesPerPacket);
+       Con_DPrintf("    %5d mFramesPerPacket\n", outputStreamBasicDescription.mFramesPerPacket);
+       Con_DPrintf("    %5d mBytesPerFrame\n", outputStreamBasicDescription.mBytesPerFrame);
+       Con_DPrintf("    %5d mChannelsPerFrame\n", outputStreamBasicDescription.mChannelsPerFrame);
+       Con_DPrintf("    %5d mBitsPerChannel\n", outputStreamBasicDescription.mBitsPerChannel);
 
        if(outputStreamBasicDescription.mFormatID != kAudioFormatLinearPCM)
        {
                Con_Printf("Default Audio Device doesn't support Linear PCM!\n");
                return false;
        }
-       
+
        // Start sound running
        status = AudioDeviceAddIOProc(outputDeviceID, audioDeviceIOProc, NULL);
        if (status)
@@ -174,7 +174,7 @@ qboolean SNDDMA_Init(void)
        }
 
        maxMixedSamples = BUFFER_SIZE;
-       s_mixedSamples = Mem_Alloc (snd_mempool, sizeof(*s_mixedSamples) * maxMixedSamples);
+       s_mixedSamples = (short *)Mem_Alloc (snd_mempool, sizeof(*s_mixedSamples) * maxMixedSamples);
        Con_DPrintf("   Buffer size = %d samples (%d chunks)\n",
                                maxMixedSamples, (maxMixedSamples / submissionChunk));
 
@@ -183,8 +183,9 @@ qboolean SNDDMA_Init(void)
        shm->format.speed = outputStreamBasicDescription.mSampleRate;
        shm->format.channels = outputStreamBasicDescription.mChannelsPerFrame;
        shm->format.width = 2;
+       shm->sampleframes = maxMixedSamples / shm->format.channels;
        shm->samples = maxMixedSamples;
-       shm->buffer = (qbyte *)s_mixedSamples;
+       shm->buffer = (unsigned char *)s_mixedSamples;
        shm->samplepos = 0;
 
        // We haven't enqueued anything yet
@@ -200,7 +201,7 @@ qboolean SNDDMA_Init(void)
        s_isRunning = true;
 
        Con_Printf("   Initialization successful\n");
-       
+
        return true;
 }
 
@@ -228,29 +229,29 @@ Reset the sound device for exiting
 void SNDDMA_Shutdown(void)
 {
        OSStatus status;
-       
+
        if (!s_isRunning)
                return;
-               
+
        status = AudioDeviceStop(outputDeviceID, audioDeviceIOProc);
        if (status)
        {
                Con_Printf("AudioDeviceStop: returned %d\n", status);
                return;
        }
-       
+
        s_isRunning = false;
-       
+
        status = AudioDeviceRemoveIOProc(outputDeviceID, audioDeviceIOProc);
        if (status)
        {
                Con_Printf("AudioDeviceRemoveIOProc: returned %d\n", status);
                return;
        }
-       
+
        Mem_Free(s_mixedSamples);
        s_mixedSamples = NULL;
-       shm->samples = NULL;
+       shm->buffer = NULL;
 }
 
 /*