| 1192 | //----------------------------------------------------------------------------- |
| 1193 | |
| 1194 | void SFXSource::_onParameterEvent( SFXParameter* parameter, SFXParameterEvent event ) |
| 1195 | { |
| 1196 | switch( event ) |
| 1197 | { |
| 1198 | case SFXParameterEvent_ValueChanged: |
| 1199 | |
| 1200 | onParameterValueChange_callback( parameter ); |
| 1201 | |
| 1202 | switch( parameter->getChannel() ) |
| 1203 | { |
| 1204 | case SFXChannelStatus: |
| 1205 | { |
| 1206 | F32 value = parameter->getValue(); |
| 1207 | if( value >= F32( SFXStatusPlaying ) && value <= F32( SFXStatusStopped ) ) |
| 1208 | { |
| 1209 | SFXStatus status = ( SFXStatus ) U32( value ); |
| 1210 | switch( status ) |
| 1211 | { |
| 1212 | case SFXStatusPlaying: play(); break; |
| 1213 | case SFXStatusPaused: pause(); break; |
| 1214 | case SFXStatusStopped: stop(); break; |
| 1215 | |
| 1216 | default: |
| 1217 | break; |
| 1218 | } |
| 1219 | } |
| 1220 | break; |
| 1221 | } |
| 1222 | |
| 1223 | case SFXChannelVolume: |
| 1224 | setVolume( parameter->getValue() ); |
| 1225 | break; |
| 1226 | |
| 1227 | case SFXChannelPitch: |
| 1228 | setPitch( parameter->getValue() ); |
| 1229 | break; |
| 1230 | |
| 1231 | case SFXChannelPriority: |
| 1232 | setPriority( parameter->getValue() ); |
| 1233 | break; |
| 1234 | |
| 1235 | case SFXChannelMinDistance: |
| 1236 | setMinMaxDistance( parameter->getValue(), mMaxDistance ); |
| 1237 | break; |
| 1238 | |
| 1239 | case SFXChannelMaxDistance: |
| 1240 | setMinMaxDistance( mMinDistance, parameter->getValue() ); |
| 1241 | break; |
| 1242 | |
| 1243 | case SFXChannelPositionX: |
| 1244 | { |
| 1245 | Point3F position = mTransform.getPosition(); |
| 1246 | position.x = parameter->getValue(); |
| 1247 | mTransform.setPosition( position ); |
| 1248 | setTransform( mTransform ); |
| 1249 | break; |
| 1250 | } |
| 1251 |
nothing calls this directly
no test coverage detected