📄 oasissoundsystem.h
字号:
/******************************************************************************
* This source file is part of Bad Camel Gaming
* Copyright (C) 2003 Zephie Greyvenstein
* See Readme.html for acknowledgements
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*****************************************************************************/
/******************************************************************************
* FILENAME : oasisSoundSystem.h
* DESCRIPTION : Sound engine
* AUTHOR : Zephie Greyvenstein
*****************************************************************************/
/// Avoid double inclusion
#ifndef __SOUNDSYSTEM_H__
#define __SOUNDSYSTEM_H__
/// Include common stuff
#include "oasisCommon.h"
/// Include the rest of the needed oasis stuff
#include "oasisResourceManager.h"
#include "oasisSystem.h"
#include "oasisMixer.h"
#include "oasisPool.h"
#include "oasisSingleton.h"
#include "oasisVector3.h"
namespace Oasis {
/** Sound effects engine
@remarks
The sound system loads in and keeps handles on all sound effect templates
defined in scripts. Sound effects instances are then create from these
templates using the helper functions found in this class.
*/
class _oasisExport soundSystem : public resourceManager,
public system,
public mixer,
public pool,
public singleton< soundSystem > {
/// The sound resource needs access to data functions
friend class soundResource;
public:
/// Constructor
soundSystem( );
/// Destructor
virtual ~soundSystem( );
/// Get singleton
static soundSystem &get( void );
/// Get singleton pointer
static soundSystem *getPtr( void );
/// Reset this system
void reset( void );
/// Update this system
void update( real time );
/// Get a sound template for further editing
soundResource *getSoundTemplate( const string &name );
/// Create a new sound template and add it to the system
soundResource *createSoundTemplate( const string &name );
/** Create a new sound effect from a template
@remarks
You create sound effects via this function so that the sound system
can keep track of all sound effects in the system
*/
sound *createSound( const string &soundName,
const string &templateName );
/// Remove a sound effect from the system
void removeSound( sound *oldSound );
/// Remove a sound effect from the system
void removeSound( const string &soundName );
/// Stop all sounds in the sound system
void stopAllSounds( void );
/// Set the 3D listener position
void setListenerPosition( const vector3 &pos,
const vector3 &forward = vector3::UNITZ,
const vector3 &up = vector3::UNITY );
private:
/// Creates a new sound template as a resource
resource *createResource( const string &name );
/// Creates a new sound as a poolable
poolable *_createPoolable( void );
/// Parse a sound file
void _parseFile( Ogre::DataChunk &chunk );
/// Parse attributes for the sound file
void _parseAttribute( const Ogre::String &line, soundResource *file );
};
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -