You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
4.1 KiB
85 lines
4.1 KiB
/*
|
|
Copyright (C) Impulsonic, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef IPL_PHONON_API_3D_H
|
|
#define IPL_PHONON_API_3D_H
|
|
|
|
#include "phonon_common.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Context */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLerror iplCreate3DContext(IPLGlobalContext globalContext, IPLDspParams dspParams, IPLbyte* hrtfData, IPLhandle* context);
|
|
IPLAPI IPLvoid iplDestroy3DContext(IPLhandle* context);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Panning Effect */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLerror iplCreatePanningEffect(IPLhandle context, IPLAudioFormat inputFormat, IPLAudioFormat outputFormat, IPLhandle* effect);
|
|
IPLAPI IPLvoid iplDestroyPanningEffect(IPLhandle* effect);
|
|
IPLAPI IPLvoid iplApplyPanningEffect(IPLhandle effect, IPLAudioBuffer inputAudio, IPLVector3 direction, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Object-Based Binaural Effect */
|
|
/*************************************************************************/
|
|
|
|
/* HRTF interpolation schemes. */
|
|
typedef enum {
|
|
IPL_HRTFINTERPOLATION_NEAREST,
|
|
IPL_HRTFINTERPOLATION_BILINEAR
|
|
} IPLHrtfInterpolation;
|
|
|
|
IPLAPI IPLerror iplCreateBinauralEffect(IPLhandle context, IPLAudioFormat inputFormat, IPLAudioFormat outputFormat, IPLhandle* effect);
|
|
IPLAPI IPLvoid iplDestroyBinauralEffect(IPLhandle* effect);
|
|
IPLAPI IPLvoid iplApplyBinauralEffect(IPLhandle effect, IPLAudioBuffer inputAudio, IPLVector3 direction, IPLHrtfInterpolation interpolation, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Virtual Surround Effect */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLerror iplCreateVirtualSurroundEffect(IPLhandle context, IPLAudioFormat inputFormat, IPLAudioFormat outputFormat, IPLhandle* effect);
|
|
IPLAPI IPLvoid iplDestroyVirtualSurroundEffect(IPLhandle* effect);
|
|
IPLAPI IPLvoid iplApplyVirtualSurroundEffect(IPLhandle effect, IPLAudioBuffer inputAudio, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Ambisonics Binaural Effect */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLerror iplCreateAmbisonicsBinauralEffect(IPLhandle context, IPLAudioFormat inputFormat, IPLAudioFormat outputFormat, IPLhandle* effect);
|
|
IPLAPI IPLvoid iplDestroyAmbisonicsBinauralEffect(IPLhandle* effect);
|
|
IPLAPI IPLvoid iplApplyAmbisonicsBinauralEffect(IPLhandle effect, IPLAudioBuffer inputAudio, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Mixing */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLvoid iplMixAudioBuffers(IPLint32 numBuffers, IPLAudioBuffer* inputAudio, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
/*************************************************************************/
|
|
/* Format Conversion */
|
|
/*************************************************************************/
|
|
|
|
IPLAPI IPLvoid iplInterleaveAudioBuffer(IPLAudioBuffer inputAudio, IPLAudioBuffer outputAudio);
|
|
IPLAPI IPLvoid iplDeinterleaveAudioBuffer(IPLAudioBuffer inputAudio, IPLAudioBuffer outputAudio);
|
|
IPLAPI IPLvoid iplConvertAudioBufferFormat(IPLAudioBuffer inputAudio, IPLAudioBuffer outputAudio);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|