X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fsound%2Fsample_openal.cxx;h=3c9cb864ad81403fc1d06794c3722046bde1d35f;hb=bcb320b537b6f7e5e3724e8a30d309322171eb43;hp=f716f4a1eac44bae20e36b137d8585d54f464aae;hpb=8d551c266430b283da04e1a9e4fdf70e8f63362f;p=simgear.git diff --git a/simgear/sound/sample_openal.cxx b/simgear/sound/sample_openal.cxx index f716f4a1..3c9cb864 100644 --- a/simgear/sound/sample_openal.cxx +++ b/simgear/sound/sample_openal.cxx @@ -27,11 +27,13 @@ #endif #include // rand() +#include #include #include #include -#include +#include +#include #include "soundmgr_openal.hxx" #include "sample_openal.hxx" @@ -77,7 +79,7 @@ SGSoundSample::SGSoundSample() : } // constructor -SGSoundSample::SGSoundSample( const char *path, const char *file ) : +SGSoundSample::SGSoundSample(const char *file, const SGPath& currentDir) : _absolute_pos(SGVec3d::zeros()), _relative_pos(SGVec3d::zeros()), _direction(SGVec3d::zeros()), @@ -109,11 +111,8 @@ SGSoundSample::SGSoundSample( const char *path, const char *file ) : _static_changed(true), _is_file(true) { - SGPath samplepath( path ); - if ( strlen(file) ) { - samplepath.append( file ); - } - _refname = samplepath.str(); + SGPath p = simgear::ResourceManager::instance()->findPath(file, currentDir); + _refname = p.str(); } // constructor @@ -192,21 +191,20 @@ SGSoundSample::SGSoundSample( void** data, int len, int freq, int format ) : // destructor SGSoundSample::~SGSoundSample() { - if (_data) free(_data); + if ( _data != NULL ) free(_data); } void SGSoundSample::update_pos_and_orientation() { _absolute_pos = _base_pos; - if ( _relative_pos[0] || _relative_pos[1] || _relative_pos[2] ) { - _absolute_pos += _rotation.backTransform(_relative_pos); + if (_relative_pos[0] || _relative_pos[1] || _relative_pos[2] ) { + _absolute_pos += _rotation.rotate( _relative_pos ); } + _orivec = SGVec3f::zeros(); if ( _direction[0] || _direction[1] || _direction[2] ) { - _orivec = toVec3f(_rotation.rotate(_direction) ); + _orivec = toVec3f( _rotation.rotate( _direction ) ); } - else - _orivec = SGVec3f::zeros(); } string SGSoundSample::random_string() { @@ -220,3 +218,13 @@ string SGSoundSample::random_string() { return rstr; } +SGPath SGSoundSample::file_path() const +{ + if (!_is_file) { + return SGPath(); + } + + return SGPath(_refname); +} + +