Orxonox  0.0.5 Codename: Arcturus
AmbientSound.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Reto Grieder
24  * Kevin Young
25  * Co-authors:
26  * ...
27  *
28  */
29 
30 #ifndef _AmbientSound_H__
31 #define _AmbientSound_H__
32 
33 #include "OrxonoxPrereqs.h"
34 
35 #include "BaseSound.h"
36 #include "MoodManager.h"
37 
38 namespace orxonox
39 {
45  {
46  friend class SoundManager;
47  friend class WorldAmbientSound;
48 
49  public:
50  AmbientSound();
51 
52  virtual void play() override;
53  virtual bool stop() override;
54  virtual void pause() override;
55 
56  bool setAmbientSource(const std::string& source);
57  inline const std::string& getAmbientSource() const
58  { return this->ambientSource_; }
59 
60  void setPlayOnLoad(bool val);
61  bool getPlayOnLoad() const
62  { return this->bPlayOnLoad_; }
63 
64  protected:
66 
67  private:
68  virtual void preDestroy() override;
69  virtual float getRealVolume() override;
70  virtual bool moodChanged(const std::string& mood) override;
71  inline void ambientSourceChanged()
72  { this->setAmbientSource(this->ambientSource_); }
73  inline void playOnLoadChanged()
74  { this->setPlayOnLoad(this->bPlayOnLoad_); }
75 
77  bool bPlayOnLoad_;
78  };
79 }
80 
81 #endif /* _AmbientSound_H__ */
void source(const std::string &filename)
Reads the content of a file and executes the commands in it line by line.
Definition: ConsoleCommandCompilation.cc:167
void playOnLoadChanged()
Definition: AmbientSound.h:73
void ambientSourceChanged()
Definition: AmbientSound.h:71
::std::string string
Definition: gtest-port.h:756
Definition: MoodManager.h:44
const std::string & getAmbientSource() const
Definition: AmbientSound.h:57
The BaseSound class is the base class for all sound file loader classes.
Definition: BaseSound.h:45
std::string ambientSource_
Analogous to source_, but mood independent.
Definition: AmbientSound.h:76
This class is used to play and control ambient sound in a level file.
Definition: WorldAmbientSound.h:46
The SoundManager class manages the OpenAL device, context and listener position.
Definition: SoundManager.h:60
~AmbientSound()
Definition: AmbientSound.h:65
bool getPlayOnLoad() const
Definition: AmbientSound.h:61
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
bool bPlayOnLoad_
Play the sound immediately when loaded.
Definition: AmbientSound.h:77
Shared library macros, enums, constants and forward declarations for the orxonox library ...
#define _OrxonoxExport
Definition: OrxonoxPrereqs.h:60
The AmbientSound class is used to play background music.
Definition: AmbientSound.h:44