From 804b9e99f82d5672e7500d66f2f5d5de3e681e81 Mon Sep 17 00:00:00 2001 From: Sonicadvance1 Date: Thu, 24 Sep 2009 21:35:06 +0000 Subject: Add CoreAudio Backend, still needs a bit of work. Will cleanup AudioCommon.cpp, and finish off CoreAudioStream.cpp if I ever get running games working in Snow Leopard. Interpreter seems to run in to a spinlock, dunno why yet, and Jit just crashes out. Core problems is probably something I won't be able to fix git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4316 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Core/AudioCommon/Src/CoreAudioSoundStream.cpp | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp (limited to 'Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp') diff --git a/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp b/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp new file mode 100644 index 0000000000..49c0af6f26 --- /dev/null +++ b/Source/Core/AudioCommon/Src/CoreAudioSoundStream.cpp @@ -0,0 +1,88 @@ +// Copyright (C) 2003 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#include "CoreAudioSoundStream.h" + + +AudioDeviceID outputDeviceId; +AudioStreamBasicDescription outputStreamBasicDescription; +AudioDeviceIOProcID outputProcId; +UInt32 outputBufferByteCount; + +static OSStatus outputIoProc(AudioDeviceID inDevice, const AudioTimeStamp *inNow,const AudioBufferList *inInputData, const AudioTimeStamp *inInputTime, AudioBufferList *outOutputData, const AudioTimeStamp *inOutputTime, void *inClientData) +{ + +} + +void CoreAudioSound::SoundLoop() +{ + CoreAudioInit(); + +} +CoreAudioSound::CoreAudioSound(CMixer *mixer) : SoundStream(mixer) +{ +} + +CoreAudioSound::~CoreAudioSound() +{ +} +bool CoreAudioSound::CoreAudioInit() +{ + + OSStatus status; + UInt32 size; + size = sizeof(outputDeviceId); + status = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &outputDeviceId); + if (outputDeviceId == kAudioDeviceUnknown) { + printf("CoreAudioDevice Unknown\n"); + return false; + } + + size = sizeof(outputStreamBasicDescription); + status = AudioDeviceGetProperty(outputDeviceId, 0, false, kAudioDevicePropertyStreamFormat, &size, &outputStreamBasicDescription); + + size = sizeof(outputBufferByteCount); + + outputBufferByteCount = 8192; + status = AudioDeviceSetProperty(outputDeviceId, 0, 0, false, kAudioDevicePropertyBufferSize, size, &outputBufferByteCount); + + status = AudioDeviceGetProperty(outputDeviceId, 0, false, kAudioDevicePropertyBufferSize, &size, &outputBufferByteCount); + + + status = AudioDeviceCreateIOProcID( outputDeviceId, outputIoProc, NULL, &outputProcId ); + + return true; + +} + +bool CoreAudioSound::Start() +{ + AudioDeviceStart(outputDeviceId,outputProcId); + return true; +} + + +void CoreAudioSound::Stop() +{ + return; + +} +void CoreAudioSound::Update() +{ + return; + +} \ No newline at end of file -- cgit v1.2.3