00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VRS_SOUND_WAVEFORMDATAAL_H
00019 #define VRS_SOUND_WAVEFORMDATAAL_H
00020
00021
00022
00023
00024 #include <vrs/openal/bufferdataal.h>
00025
00026
00027 namespace VRS
00028 {
00029 namespace SOUND
00030 {
00031 class VRS_OPENAL_API WaveFormDataAL : public BufferDataAL
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
00048 WaveFormDataAL(WaveShape waveShape,
00049 float waveFrequency,
00050 float phase,
00051 float duration);
00052
00053
00054 virtual void* getPointer(void);
00055
00057 void setWaveShape(WaveShape waveShape);
00058 inline WaveShape getWaveShape(void) const
00059 {
00060 return this->waveShape_;
00061 }
00062
00064 void setWaveFrequency(float waveFrequency);
00065 inline float getWaveFrequency(void) const
00066 {
00067 return this->waveFrequency_;
00068 }
00069
00071 void setPhase(float phase);
00072 inline float getPhase(void) const
00073 {
00074 return this->phase_;
00075 }
00076
00078 void setDuration(float duration);
00079 inline float getDuration(void) const
00080 {
00081 return this->duration_;
00082 }
00083
00084 VRS_TYPEINFO(WaveFormDataAL, BufferDataAL);
00085 VRS_SERIALIZABLE(WaveFormDataAL);
00086
00087 protected:
00088
00089 WaveFormDataAL(void);
00090
00091 private:
00092
00093 WaveShape waveShape_;
00094 float waveFrequency_;
00095 float phase_;
00096 float duration_;
00097
00098 };
00099
00100 };
00101
00102 };
00103
00104 #endif //VRS_SOUND_WAVEFORMDATAAL_H