Counter Strike : Global Offensive Source Code
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.
 
 
 
 
 
 

163 lines
5.1 KiB

/*
Copyright (C) Impulsonic, Inc. All rights reserved.
*/
#ifndef IPL_PHONON_API_COMMON_H
#define IPL_PHONON_API_COMMON_H
#if (defined(_WIN32) || defined(_WIN64))
#define IPLAPI __declspec(dllexport)
#else
#define IPLAPI __attribute__((visibility("default")))
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************************/
/* Basic Data Types */
/*************************************************************************/
/* Elementary data types. */
typedef void IPLvoid;
typedef char IPLint8;
typedef unsigned char IPLuint8;
typedef short IPLint16;
typedef unsigned short IPLuint16;
typedef int IPLint32;
typedef unsigned int IPLuint32;
typedef long long IPLint64;
typedef unsigned long long IPLuint64;
typedef float IPLfloat32;
typedef double IPLfloat64;
typedef unsigned char IPLbyte;
typedef size_t IPLsize;
typedef char* IPLstring;
/* Boolean values. */
typedef enum {
IPL_FALSE,
IPL_TRUE
} IPLbool;
/* Opaque object handles. */
typedef void* IPLhandle;
/* Status codes. */
typedef enum {
IPL_STATUS_SUCCESS,
IPL_STATUS_FAILURE,
IPL_STATUS_OUTOFMEMORY,
IPL_STATUS_INITIALIZATION
} IPLerror;
/*************************************************************************/
/* Context */
/*************************************************************************/
/* Logger function prototype. */
typedef IPLvoid (*IPLLogFunction)(char* message);
/* Memory allocator function prototypes. */
typedef IPLvoid* (*IPLAllocateFunction)(IPLsize, IPLsize);
typedef IPLvoid (*IPLFreeFunction)(IPLvoid*);
/* Context data structure. */
typedef struct {
IPLLogFunction logCallback;
IPLAllocateFunction allocateCallback;
IPLFreeFunction freeCallback;
} IPLGlobalContext;
/*************************************************************************/
/* Geometric Types */
/*************************************************************************/
/* Points in 3D space. */
typedef struct {
IPLfloat32 x;
IPLfloat32 y;
IPLfloat32 z;
} IPLVector3;
/*************************************************************************/
/* Audio Buffers */
/*************************************************************************/
/* Whether the audio buffer is Ambisonics or not. */
typedef enum {
IPL_CHANNELLAYOUTTYPE_SPEAKERS,
IPL_CHANNELLAYOUTTYPE_AMBISONICS
} IPLChannelLayoutType;
/* For speaker-based layouts, the type of layout used. */
typedef enum {
IPL_CHANNELLAYOUT_MONO,
IPL_CHANNELLAYOUT_STEREO,
IPL_CHANNELLAYOUT_QUADRAPHONIC,
IPL_CHANNELLAYOUT_FIVEPOINTONE,
IPL_CHANNELLAYOUT_SEVENPOINTONE,
IPL_CHANNELLAYOUT_CUSTOM
} IPLChannelLayout;
/* The different possible orderings of Ambisonics channels. */
typedef enum {
IPL_AMBISONICSORDERING_FURSEMALHAM,
IPL_AMBISONICSORDERING_ACN
} IPLAmbisonicsOrdering;
/* The different possible normalization conventions for Ambisonics. */
typedef enum {
IPL_AMBISONICSNORMALIZATION_FURSEMALHAM,
IPL_AMBISONICSNORMALIZATION_SN3D,
IPL_AMBISONICSNORMALIZATION_N3D
} IPLAmbisonicsNormalization;
/* Whether the data is interleaved or deinterleaved. */
typedef enum {
IPL_CHANNELORDER_INTERLEAVED,
IPL_CHANNELORDER_DEINTERLEAVED
} IPLChannelOrder;
/* The format of an audio buffer. */
typedef struct {
IPLChannelLayoutType channelLayoutType;
IPLChannelLayout channelLayout;
IPLint32 numSpeakers;
IPLVector3* speakerDirections;
IPLint32 ambisonicsOrder;
IPLAmbisonicsOrdering ambisonicsOrdering;
IPLAmbisonicsNormalization ambisonicsNormalization;
IPLChannelOrder channelOrder;
} IPLAudioFormat;
/* An audio buffer. */
typedef struct {
IPLAudioFormat format;
IPLint32 numSamples;
IPLfloat32* interleavedBuffer;
IPLfloat32** deinterleavedBuffer;
} IPLAudioBuffer;
/*************************************************************************/
/* DSP Parameters */
/*************************************************************************/
/* Properties of the DSP pipeline. */
typedef struct {
IPLint32 samplingRate;
IPLint32 frameSize;
} IPLDspParams;
#ifdef __cplusplus
}
#endif
#endif