00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VRS_SOUND_WAVEFORMBUFFERAL_H
00019 #define VRS_SOUND_WAVEFORMBUFFERAL_H
00020
00021
00022
00023
00024 #include <vrs/openal/bufferal.h>
00025
00026
00027 namespace VRS
00028 {
00029 namespace SOUND
00030 {
00031 class VRS_OPENAL_API WaveFormBufferAL : public BufferAL
00032 {
00033 public:
00034
00035 enum WaveShape
00036 {
00037 WAVEFORM_UNKNOWN = 0,
00038 WAVEFORM_SINE = ALUT_WAVEFORM_SINE,
00039 WAVEFORM_SQUARE = ALUT_WAVEFORM_SQUARE,
00040 WAVEFORM_SAWTOOTH = ALUT_WAVEFORM_SAWTOOTH,
00041 WAVEFORM_WHITENOISE = ALUT_WAVEFORM_WHITENOISE,
00042 WAVEFORM_IMPULSE = ALUT_WAVEFORM_IMPULSE
00043
00044 };
00045 VRS_SERIALIZABLE_CLASS_ENUM(WaveShape);
00046
00047 WaveFormBufferAL(WaveShape waveShape,
00048 float waveFrequency,
00049 float phase,
00050 float duration);
00051
00053 void setWaveShape(WaveShape waveShape);
00054 inline WaveShape getWaveShape(void) const
00055 {
00056 return this->waveShape_;
00057 }
00058
00060 void setWaveFrequency(float waveFrequency);
00061 inline float getWaveFrequency(void) const
00062 {
00063 return this->waveFrequency_;
00064 }
00065
00067 void setPhase(float phase);
00068 inline float getPhase(void) const
00069 {
00070 return this->phase_;
00071 }
00072
00074 void setDuration(float duration);
00075 inline float getDuration(void) const
00076 {
00077 return this->duration_;
00078 }
00079
00080 virtual unsigned int getName(void);
00081
00082 VRS_TYPEINFO(WaveFormBufferAL, BufferAL);
00083 VRS_SERIALIZABLE(WaveFormBufferAL);
00084
00085 protected:
00086
00087 WaveFormBufferAL(void);
00088
00089 private:
00090
00091 WaveShape waveShape_;
00092 float waveFrequency_;
00093 float phase_;
00094 float duration_;
00095
00096 };
00097
00098 };
00099
00100 };
00101
00102 #endif //VRS_SOUND_WAVEFORMBUFFERAL_H