OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AudioStream.h
Go to the documentation of this file.
1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2  *
3  * This library is open source and may be redistributed and/or modified under
4  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5  * (at your option) any later version. The full license is in LICENSE file
6  * included with this distribution, and on the openscenegraph.org website.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * OpenSceneGraph Public License for more details.
12 */
13 
14 #ifndef OSG_AUDIOSTREAM
15 #define OSG_AUDIOSTREAM 1
16 
17 #include <osg/Image>
18 #include <stdlib.h>
19 
20 namespace osg {
21 
24 {
25 public:
26 
27  AudioSink();
28 
29  virtual const char * libraryName() const { return "osg"; }
30  virtual const char * className() const { return "AudioSinkInterface"; }
31 
32  virtual void play() = 0;
33  virtual void pause() = 0;
34  virtual void stop() = 0;
35 
36  virtual bool playing() const = 0;
37 
38  virtual double getDelay() const { return _delay; }
39  virtual void setDelay(const double delay) { _delay = delay; }
40 
41  virtual void setVolume(float) {}
42  virtual float getVolume() const { return 0.0f; }
43 
44 private:
45 
46  virtual Object* cloneType() const { return 0; }
47  virtual Object* clone(const osg::CopyOp &) const { return 0; }
48 
49  double _delay;
50 };
51 
54 {
55  public:
56  AudioStream();
57 
59  AudioStream(const AudioStream& audio,const CopyOp& copyop=CopyOp::SHALLOW_COPY);
60 
61  virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const AudioStream*>(obj)!=0; }
62  virtual const char* libraryName() const { return "osg"; }
63  virtual const char* className() const { return "AudioStream"; }
64 
65  virtual void setAudioSink(osg::AudioSink* audio_sink) = 0;
66 
67  virtual void consumeAudioBuffer(void * const buffer, const size_t size) = 0;
68 
69  virtual int audioFrequency() const = 0;
70  virtual int audioNbChannels() const = 0;
71 
73  {
78  SAMPLE_FORMAT_F32
79  };
80 
81  virtual SampleFormat audioSampleFormat() const = 0;
82 };
83 
84 } // namespace
85 
86 #endif
#define OSG_EXPORT
Definition: Export.h:43
virtual void setDelay(const double delay)
Definition: AudioStream.h:39
virtual const char * libraryName() const
Definition: AudioStream.h:29
virtual void setVolume(float)
Definition: AudioStream.h:41
virtual float getVolume() const
Definition: AudioStream.h:42
T * clone(const T *t, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Definition: Object.h:242
virtual double getDelay() const
Definition: AudioStream.h:38
virtual const char * className() const
Definition: AudioStream.h:63
T * cloneType(const T *t)
Definition: Object.h:284
virtual bool isSameKindAs(const Object *obj) const
Definition: AudioStream.h:61
virtual const char * libraryName() const
Definition: AudioStream.h:62
Definition: AlphaFunc.h:19
virtual const char * className() const
Definition: AudioStream.h:30