| 724 | } |
| 725 | |
| 726 | FMOD_RESULT F_CALL setInt(FMOD_DSP_STATE* state, |
| 727 | int index, |
| 728 | int value) |
| 729 | { |
| 730 | auto effect = reinterpret_cast<State*>(state->plugindata); |
| 731 | |
| 732 | switch (index) |
| 733 | { |
| 734 | case IPL_SPATIALIZE_APPLY_DISTANCEATTENUATION: |
| 735 | effect->applyDistanceAttenuation = static_cast<ParameterApplyType>(value); |
| 736 | break; |
| 737 | case IPL_SPATIALIZE_APPLY_AIRABSORPTION: |
| 738 | effect->applyAirAbsorption = static_cast<ParameterApplyType>(value); |
| 739 | break; |
| 740 | case IPL_SPATIALIZE_APPLY_DIRECTIVITY: |
| 741 | effect->applyDirectivity = static_cast<ParameterApplyType>(value); |
| 742 | break; |
| 743 | case IPL_SPATIALIZE_APPLY_OCCLUSION: |
| 744 | effect->applyOcclusion = static_cast<ParameterApplyType>(value); |
| 745 | break; |
| 746 | case IPL_SPATIALIZE_APPLY_TRANSMISSION: |
| 747 | effect->applyTransmission = static_cast<ParameterApplyType>(value); |
| 748 | break; |
| 749 | case IPL_SPATIALIZE_HRTF_INTERPOLATION: |
| 750 | effect->hrtfInterpolation = static_cast<IPLHRTFInterpolation>(value); |
| 751 | break; |
| 752 | case IPL_SPATIALIZE_DISTANCEATTENUATION_ROLLOFFTYPE: |
| 753 | effect->distanceAttenuationRolloffType = static_cast<FMOD_DSP_PAN_3D_ROLLOFF_TYPE>(value); |
| 754 | break; |
| 755 | case IPL_SPATIALIZE_TRANSMISSION_TYPE: |
| 756 | effect->transmissionType = static_cast<IPLTransmissionType>(value); |
| 757 | break; |
| 758 | case IPL_SPATIALIZE_SIMULATION_OUTPUTS_HANDLE: |
| 759 | if (gSourceManager) |
| 760 | { |
| 761 | setSource(state, gSourceManager->getSource(value)); |
| 762 | } |
| 763 | break; |
| 764 | case IPL_SPATIALIZE_OUTPUT_FORMAT: |
| 765 | effect->outputFormat = static_cast<ParameterSpeakerFormatType>(value); |
| 766 | break; |
| 767 | default: |
| 768 | return FMOD_ERR_INVALID_PARAM; |
| 769 | } |
| 770 | |
| 771 | return FMOD_OK; |
| 772 | } |
| 773 | |
| 774 | FMOD_RESULT F_CALL setFloat(FMOD_DSP_STATE* state, |
| 775 | int index, |