Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/audio/AudioManager.cc @ 1056

Last change on this file since 1056 was 1056, checked in by landauf, 16 years ago

don't panic, no codechanges!
added a link to www.orxonox.net

File size: 3.2 KB
Line 
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 *      Nicolas Perrenoud <nicolape_at_ee.ethz.ch>
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#include "AudioManager.h"
30
31#include <AL/alut.h>
32
33#include "core/Error.h"
34#include "core/Debug.h"
35
36namespace audio
37{
38        AudioManager::AudioManager()
39        {
40    ambientPath = "audio/ambient";
41
42    alutInit(NULL, 0);
43
44
45        }
46
47        AudioManager::~AudioManager()
48        {
49                for (unsigned int i=0;i<bgSounds.size();i++)
50                {
51                        bgSounds[i].release();
52                }
53                alutExit();
54        }
55
56        void AudioManager::ambientStart()
57        {
58//              currentBgSound = 0;
59    currentBgSound = rand() % bgSounds.size();
60                if (bgSounds.size() > 0)
61                {
62                        if(!bgSounds[currentBgSound].playback())
63                        {
64                orxonox::Error("Ogg refused to play.");
65                        }
66                        else
67                        {
68                                COUT(3) << "Info: Started playing background sound" << std::endl;
69                        }
70                }
71
72        }
73
74        void AudioManager::ambientStop()
75        {
76                COUT(3) << "Info: Stopped playing background sound" << std::endl;
77        }
78
79        void AudioManager::ambientAdd(std::string file)
80        {
81    std::string path = ambientPath + "/" + file + ".ogg";
82                AudioStream tmp(path);
83                tmp.open();
84                if (tmp.isLoaded())
85                {
86                        bgSounds.push_back(tmp);
87                        COUT(3) << "Info: Added background sound " << file << std::endl;
88                }
89        }
90
91        void AudioManager::tick(float dt)
92        {
93                if (bgSounds.size() > 0)
94                {
95                        if (bgSounds[currentBgSound].isLoaded())
96                        {
97                                bool playing = bgSounds[currentBgSound].update();
98                    if(!bgSounds[currentBgSound].playing() && playing)
99                    {
100                        if(!bgSounds[currentBgSound].playback())
101                            orxonox::Error("Ogg abruptly stopped.");
102                        else
103                            orxonox::Error("Ogg stream was interrupted.");
104
105                    }
106                                if (!playing)
107                                {
108//                                      if (currentBgSound < bgSounds.size()-1)
109//                                      {
110//                                              currentBgSound++;
111//                                      }
112//                                      else
113//                                      {
114//                                              currentBgSound=0;
115//                                      }
116          // switch to next sound in list/array
117          currentBgSound = ++currentBgSound % bgSounds.size();
118
119                                        if (!bgSounds[currentBgSound].isLoaded())
120                                        {
121                                                bgSounds[currentBgSound].release();
122                                                bgSounds[currentBgSound].open();
123                                        }
124                                        bgSounds[currentBgSound].playback();
125                                        COUT(3) << "Info: Playing next background sound" << std::endl;
126                                }
127                        }
128                }
129        }
130
131        void AudioManager::setPos(std::vector<float> newPosition)
132        {
133
134        }
135
136        void AudioManager::setSpeed(std::vector<float> newSpeed)
137        {
138
139        }
140
141        void AudioManager::setOri(std::vector<float> at, std::vector<float> up)
142        {
143
144        }
145}
Note: See TracBrowser for help on using the repository browser.