Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/sound/sound_source.h @ 7299

Last change on this file since 7299 was 7299, checked in by bensch, 18 years ago

orxonox/trunk: some nice Class-Stuff

File size: 1.8 KB
RevLine 
[4838]1/*!
[5386]2 * @file sound_source.h
3 * @brief Definition of the SoundSource.
[3245]4*/
[1853]5
[5386]6#ifndef _SOUND_SOURCE_H
7#define _SOUND_SOURCE_H
[1853]8
[3543]9#include "base_object.h"
[5386]10#include "alincl.h"
[1853]11
[4838]12// FORWARD DECLARATION
[5386]13class SoundBuffer;
14class PNode;
[3543]15
[5386]16//! A class that represents a SoundSource
17class SoundSource : public BaseObject
18{
19  public:
20    SoundSource(const PNode* sourceNode = NULL, const SoundBuffer* buffer = NULL);
[7299]21    SoundSource(const SoundSource& source);
22    SoundSource& operator=(const SoundSource& source);
23    bool operator==(const SoundSource& source);
24
[6981]25    virtual ~SoundSource();
[3543]26
[5386]27  // user interaction
28    void play();
29    void play(const SoundBuffer* buffer);
30    void stop();
31    void pause();
32    void rewind();
[2036]33
[5386]34  // development functions
35    /** @returns The ID of this Source */
36    inline ALuint getID() const { return this->sourceID; }
[5930]37    /** @returns true, if the Source is Playing */
38    inline bool   isPlaying() const { return this->bPlay; };
[7065]39    /** @param sourceNode the Source this is attached to. */
40    inline void setSourceNode(const PNode* sourceNode) { this->sourceNode = sourceNode;};
[5386]41    /** @returns the SoundBuffer of this Source */
42    inline const SoundBuffer* getBuffer() const { return this->buffer; }
43    /** @returns the SourceNode of this Source */
44    inline const PNode* getNode() const { return this->sourceNode;}
[1853]45
[5386]46    void setRolloffFactor(ALfloat rolloffFactor);
[1853]47
[5386]48  private:
[5917]49    bool                   bPlay;                 //!< If the Source is Playing.
[5386]50    ALuint                 sourceID;              //!< The ID of the Source
51    const SoundBuffer*     buffer;                //!< The buffer to play in this source.
[6634]52    const PNode*           sourceNode;            //!< The SourceNode representing the position/velocity... of this source.
[1853]53};
[5386]54#endif /* _SOUND_SOURCE_H */
Note: See TracBrowser for help on using the repository browser.