| 147 | // -------------------------------------------------------------------------------------------------------------------- |
| 148 | |
| 149 | IPLerror CContext::createPathEffect(IPLAudioSettings* audioSettings, |
| 150 | IPLPathEffectSettings* effectSettings, |
| 151 | IPathEffect** effect) |
| 152 | { |
| 153 | if (!audioSettings || !effectSettings || !effect) |
| 154 | return IPL_STATUS_FAILURE; |
| 155 | |
| 156 | if (audioSettings->samplingRate <= 0 || audioSettings->frameSize <= 0) |
| 157 | return IPL_STATUS_FAILURE; |
| 158 | |
| 159 | if (effectSettings->maxOrder < 0 || 3 < effectSettings->maxOrder) |
| 160 | return IPL_STATUS_FAILURE; |
| 161 | |
| 162 | try |
| 163 | { |
| 164 | auto _effect = reinterpret_cast<CPathEffect*>(gMemory().allocate(sizeof(CPathEffect), Memory::kDefaultAlignment)); |
| 165 | new (_effect) CPathEffect(this, audioSettings, effectSettings); |
| 166 | *effect = _effect; |
| 167 | } |
| 168 | catch (Exception e) |
| 169 | { |
| 170 | return static_cast<IPLerror>(e.status()); |
| 171 | } |
| 172 | |
| 173 | return IPL_STATUS_SUCCESS; |
| 174 | } |
| 175 | |
| 176 | } |
no test coverage detected