Go to the documentation of this file.00001 #pragma once
00002
00003 enum FILEFORMAT {
00004 fileUnknown,
00005 fileByExt,
00006 fileWAVE,
00007 fileOGG,
00008 fileRAW,
00009 fileAU,
00010 };
00011
00012 typedef
00013 struct Buffer {
00014 } *pBuffer;
00015
00016 typedef
00017 struct Sound {
00018 virtual void play(void) = 0;
00019 virtual void pause(void) = 0;
00020 virtual void resume(void) = 0;
00021 virtual void stop(void) = 0;
00022 } *pSound;
00023
00024 typedef
00025 struct Music {
00026 virtual void play(void) = 0;
00027 virtual void pause(void) = 0;
00028 virtual void resume(void) = 0;
00029 virtual void stop(void) = 0;
00030 } *pMusic;
00031
00032 typedef
00033 class IAudio{
00034 public:
00035 virtual ~IAudio(){};
00036
00042 virtual bool init(void) = 0;
00043
00050 virtual void uninit(void) = 0;
00051
00056 virtual pBuffer createBuffer(const wchar* file, FILEFORMAT format = fileByExt) = 0;
00057
00062 virtual pSound createSound(pBuffer buffer, bool dynamic = false,
00063 float3* position = 0,
00064 float3* velocity = 0,
00065 float3* direction = 0,
00066 float distance = 100.0f, float coneAngle = 360.0f,
00067 bool loop = false, float volume = 1.0f) = 0;
00068
00075 virtual pMusic createMusic(const wchar* file, bool loop = true, float volume = 1.0f, FILEFORMAT format = fileByExt) = 0;
00076
00081 virtual void free(pBuffer& buffer) = 0;
00082
00087 virtual void free(pSound& sound) = 0;
00088
00093 virtual void free(pMusic& music) = 0;
00094
00099 virtual void listener(float3 position, float3 velocity, float3 direction) = 0;
00100
00105 virtual void options(float doppler = 1.0f, float speedofsound = 343.3f) = 0;
00106
00112 virtual void update(void) = 0;
00113
00121 virtual bool supports(FILEFORMAT fileformat, bool forSound = true) = 0;
00122 }* pAudio;