sfxNullVoice.h
Engine/source/sfx/null/sfxNullVoice.h
Classes:
class
Detailed Description
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef _SFXNULLVOICE_H_ 25#define _SFXNULLVOICE_H_ 26 27#ifndef _SFXVOICE_H_ 28 #include "sfx/sfxVoice.h" 29#endif 30#ifndef _TIMESOURCE_H_ 31 #include "core/util/timeSource.h" 32#endif 33 34 35class SFXNullBuffer; 36 37 38class SFXNullVoice : public SFXVoice 39{ 40 public: 41 42 typedef SFXVoice Parent; 43 friend class SFXNullDevice; 44 45 protected: 46 47 typedef GenericTimeSource< VirtualMSTimer> TimeSource; 48 49 SFXNullVoice( SFXNullBuffer* buffer ); 50 51 /// The virtual play timer. 52 mutable TimeSource mPlayTimer; 53 54 /// 55 bool mIsLooping; 56 57 // SFXVoice. 58 virtual SFXStatus _status() const; 59 virtual void _play(); 60 virtual void _pause(); 61 virtual void _stop(); 62 virtual void _seek( U32 sample ); 63 virtual U32 _tell() const; 64 65 /// 66 U32 _getPlayTime() const 67 { 68 return mPlayTimer.getPosition(); 69 } 70 71 public: 72 73 virtual ~SFXNullVoice(); 74 75 /// SFXVoice 76 SFXStatus getStatus() const; 77 void setPosition( U32 sample ); 78 void play( bool looping ); 79 void setMinMaxDistance( F32 min, F32 max ); 80 void setVelocity( const VectorF& velocity ); 81 void setTransform( const MatrixF& transform ); 82 void setVolume( F32 volume ); 83 void setPitch( F32 pitch ); 84 void setCone( F32 innerAngle, F32 outerAngle, F32 outerVolume ); 85}; 86 87#endif // _SFXNULLVOICE_H_ 88