00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef COIN_SOVRMLSOUND_H
00025 #define COIN_SOVRMLSOUND_H
00026
00027 #include <Inventor/nodes/SoSubNode.h>
00028 #include <Inventor/fields/SoSFNode.h>
00029 #include <Inventor/fields/SoSFBool.h>
00030 #include <Inventor/fields/SoSFFloat.h>
00031 #include <Inventor/fields/SoSFVec3f.h>
00032 #include <Inventor/SbTime.h>
00033
00034 class SoVRMLSoundP;
00035 class SoPath;
00036
00037 class COIN_DLL_API SoVRMLSound : public SoNode
00038 {
00039 typedef SoNode inherited;
00040 SO_NODE_HEADER(SoVRMLSound);
00041
00042 public:
00043 static void initClass(void);
00044 SoVRMLSound(void);
00045
00046 SoSFNode source;
00047 SoSFFloat intensity;
00048 SoSFFloat priority;
00049 SoSFVec3f location;
00050 SoSFVec3f direction;
00051 SoSFFloat minFront;
00052 SoSFFloat maxFront;
00053 SoSFFloat minBack;
00054 SoSFFloat maxBack;
00055 SoSFBool spatialize;
00056
00057 void setDopplerVelocity(float velocity);
00058 float getDopplerVelocity();
00059 void setDopplerFactor(float factor);
00060 float getDopplerFactor();
00061
00062 void startPlaying(SoPath *path, void *userdataptr);
00063 void stopPlaying(SoPath *path, void *userdataptr);
00064
00065 static void setDefaultBufferingProperties(int bufferLength, int numBuffers,
00066 SbTime sleepTime);
00067 void setBufferingProperties(int bufferLength, int numBuffers,
00068 SbTime sleepTime);
00069 void getBufferingProperties(int &bufferLength, int &numBuffers,
00070 SbTime &sleepTime);
00071
00072 virtual void audioRender(SoAudioRenderAction *action);
00073
00074 protected:
00075 virtual ~SoVRMLSound(void);
00076
00077 private:
00078 SoVRMLSoundP *pimpl;
00079 friend class SoVRMLSoundP;
00080 };
00081
00082 #endif // ! COIN_SOVRMLSOUND_H