📄 sdlaudio_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 __SDLAUDIO_DRV_H__
#define __SDLAUDIO_DRV_H__
#include <umc_defs.h>
#ifdef UMC_ENABLE_SDL_AUDIO_RENDER
#include <SDL/SDL.h>
#include <ipps.h>
#include <vm_mutex.h>
#include <vm_debug.h>
#define SDLAUDIO_BUFFERS_NUM 32
#define SDLAUDIO_BUFFERS_SIZE 32 * 1024
#define SDLAUDIO_FORMAT AUDIO_S16SYS
/* Note: it's better to use 2**k falue (required for some systems). */
#define SDLAUDIO_SAMPLES 1024
#define CHECK_RESULT(err, msg, rez) \
if (result != err) { \
vm_debug_trace(VM_DEBUG_NONE, VM_STRING("SDLAudio:" msg " FAILED")); \
return rez; \
}
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
void *sdlaudioInit(const Ipp32u Frequency,
const Ipp32u Channels,
const Ipp32u BitPerSample);
Ipp32s sdlaudioPlay(void *Driver,
Ipp8u* Buffer,
Ipp32s Size);
Ipp32s sdlaudioReset(void *Driver);
void sdlaudioClose(void *Driver);
Ipp32s sdlaudioPause(void *Driver);
Ipp32s sdlaudioResume(void *Driver);
Ipp32f sdlaudioSetVolume (void *Driver, Ipp32f volume);
Ipp32f sdlaudioGetVolume (void *Driver);
#ifdef __cplusplus
}
#endif /* __cplusplus */
enum sdlaudioRenderFlag
{
SDLAUDIO_RENDER_OPEN = 0x00000000,
SDLAUDIO_RENDER_CLOSE = 0x00000001
};
typedef struct SDLAudioDrv
{
Ipp32u mChannels;
Ipp32u mFrequency;
Ipp32u mBitPerSample;
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;
} SDLAudioDrv;
#endif // UMC_ENABLE_SDL_AUDIO_RENDER
#endif // __SDLAUDIO_DRV_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -