* Free the data associated with this audio sample
*/
void free_data() {
- if ( _data ) free( _data ); _data = NULL;
+ if ( _data != NULL ) free( _data ); _data = NULL;
}
/**
* Set the frequency (in Herz) of this audio sample.
* @param freq Frequency
*/
- inline void set_frequency( int freq ) { _freq = freq; _changed = true; }
+ inline void set_frequency( int freq ) { _freq = freq; }
/**
* Returns the frequency (in Herz) of this audio sample.
_orientation = ori; _changed = true;
}
+ inline void set_rotation( const SGQuatd& ec2body ) {
+ _rotation = ec2body; _changed = true;
+ }
+
/**
* Set direction of this sound relative to the orientation.
* This is in the same coordinate system as OpenGL; y=up, z=back, x=right
* @param dir Sound emission direction
*/
inline void set_direction( const SGVec3f& dir ) {
- _direction = toVec3d(dir); _changed = true;
+ _direction = toVec3d(dir); _static_changed = true;
}
/**
* Define the audio cone parameters for directional audio.
- * Note: setting it to 1 degree will result in 0.5 degrees to both sides.
+ * Note: setting it to 2 degree will result in 1 degree to both sides.
* @param inner Inner cone angle (0 - 360 degrees)
* @param outer Outer cone angle (0 - 360 degrees)
* @param gain Remaining gain at the edge of the outer cone (0.0 - 1.0)
*/
void set_audio_cone( float inner, float outer, float gain ) {
- _inner_angle = inner;
- _outer_angle = outer;
- _outer_gain = gain;
+ _inner_angle = inner; _outer_angle = outer; _outer_gain = gain;
_static_changed = true;
}
SGVec3f _orivec; // orientation vector for OpenAL
SGVec3d _base_pos; // base position
+ SGQuatd _rotation;
+
std::string _refname; // name or file path
unsigned char* _data;