class SampleElement : public Element
{
- SGSoundSample *_sample;
- float _volume;
+ SGSharedPtr<SGSoundSample> _sample;
+ float _volume;
public:
- inline SampleElement (SGSoundSample *sample, float volume = 1.0)
+ inline SampleElement (SGSharedPtr<SGSoundSample> sample, float volume = 1.0)
: _sample(sample), _volume(volume) { silence = false; }
virtual inline void play (float volume) { if (_sample && (volume > 0.05)) { set_volume(volume); _sample->play_once(); } }
VoicePlayer *player;
double pitch;
- SGVec3d position;
- SGVec3f orientation;
- float inner_cone;
- float outer_cone;
- float outer_gain;
- float reference_dist;
- float max_dist;
template <class T>
inline void tie (SGPropertyNode *node, const char *name, T *ptr)
inline Speaker (VoicePlayer *_player)
: player(_player),
pitch(1),
- inner_cone(360),
- outer_cone(360),
- outer_gain(0),
- reference_dist(3),
- max_dist(10),
volume(1)
{
- position[0] = 0; position[1] = 0; position[2] = 0;
- orientation[0] = 0; orientation[1] = 0; orientation[2] = 0;
}
void bind (SGPropertyNode *node);
MK_VIII *mk;
- SGSampleGroup *_sgr;
+ SGSharedPtr<SGSampleGroup> _sgr;
Speaker speaker;
- map<string, SGSoundSample *> samples;
+ map< string, SGSharedPtr<SGSoundSample> > samples;
vector<Voice *> _voices;
bool looped;
: mk(device) {}
virtual bool passAirport(FGAirport *a) const;
-
- virtual FGPositioned::Type maxType() const {
- return FGPositioned::AIRPORT;
- }
private:
MK_VIII* mk;
};