📄 coreaudio_drv.h
字号:
/*
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright(c) 2003-2006 Intel Corporation. All Rights Reserved.
//
*/
#ifndef __COREAUDIO_DRV_H__
#define __COREAUDIO_DRV_H__
#include <umc_defs.h>
#ifdef UMC_ENABLE_COREAUDIO_RENDER
#include <ipps.h>
#include <vm_mutex.h>
#include <vm_debug.h>
#include <AudioUnit/AudioUnit.h>
#define COREAUDIO_BUFFERS_NUM 32
#define COREAUDIO_BUFFERS_SIZE 32 * 1024
#define CHECK_RESULT(err, msg, rez) \
if (result != err) { \
vm_debug_trace(VM_DEBUG_NONE, VM_STRING("CoreAudio:" msg " FAILED")); \
return rez; \
}
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
extern void *coreaudioInit(const Ipp32u Frequency,
const Ipp32u Channels,
const Ipp32u BitPerSample);
extern Ipp32s coreaudioPlay(void *Driver,
Ipp8u* Buffer,
Ipp32s Size);
extern Ipp32s coreaudioReset(void *Driver);
extern void coreaudioClose(void *Driver);
extern Ipp32s coreaudioPause(void *Driver);
extern Ipp32s coreaudioResume(void *Driver);
extern OSStatus coreaudioCallback(void *Driver,
AudioUnitRenderActionFlags *actionFlags,
const AudioTimeStamp *timeStamp,
UInt32 busNumber,
UInt32 numFrames,
AudioBufferList *outBuffers);
Ipp32f coreaudioSetVolume(void *Driver, Ipp32f volume);
Ipp32f coreaudioGetVolume(void *Driver);
#ifdef __cplusplus
}
#endif /* __cplusplus */
enum coreaudioRenderFlag
{
COREAUDIO_RENDER_OPEN = 0x00000000,
COREAUDIO_RENDER_CLOSE = 0x00000001
};
typedef struct CoreAudioDrv
{
AudioUnit aUnit;
AudioUnit cUnit;
Ipp32u mChannels;
Ipp32u mFrequency;
Ipp32u mBitPerSample;
Ipp32u mPacketSize;
Ipp32u mChunkSize;
Ipp32u mChunksNumber;
Ipp32u mBufferSize; /* ! (chunksNumber + 1) * chunkSize */
Ipp32u mReadPosition;
Ipp32u mWritePosition;
Ipp32u mRenderFlag;
Ipp32f mVolume; /* [0,1] */
Ipp8u *mDataBuffer;
vm_mutex mLockBuffer;
vm_mutex mLockSender;
} CoreAudioDrv;
#endif // UMC_ENABLE_COREAUDIO_RENDER
#endif // __COREAUDIO_DRV_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -