MCPcopy Create free account
hub / github.com/360Controller/360Controller / DownloadEffect

Method DownloadEffect

XBOBTFF/FFDriver.cpp:254–388  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

252}
253
254HRESULT FeedbackXBOBT::DownloadEffect(CFUUIDRef EffectType, FFEffectDownloadID *EffectHandle, FFEFFECT *DiEffect, FFEffectParameterFlag Flags)
255{
256 __block HRESULT Result = FF_OK;
257
258 if (Flags & FFEP_NODOWNLOAD)
259 {
260 return FF_OK;
261 }
262
263 dispatch_sync(Queue, ^{
264 FeedbackXBOEffect *Effect = NULL;
265 if (*EffectHandle == 0) {
266 EffectList.push_back(FeedbackXBOEffect(EffectIndex++));
267 Effect = &(EffectList.back());
268 *EffectHandle = Effect->Handle;
269 } else {
270 for (LONG Index = 0; Index < EffectList.size(); Index++) {
271 if (EffectList[Index].Handle == *EffectHandle) {
272 Effect = &(EffectList[Index]);
273 break;
274 }
275 }
276 }
277
278 if (Effect == NULL || Result == -1) {
279 Result = FFERR_INTERNAL;
280 }
281 else {
282 Effect->Type = EffectType;
283 Effect->DiEffect.dwFlags = DiEffect->dwFlags;
284
285 if( Flags & FFEP_DURATION )
286 {
287 Effect->DiEffect.dwDuration = DiEffect->dwDuration;
288 }
289
290 if( Flags & FFEP_SAMPLEPERIOD )
291 {
292 Effect->DiEffect.dwSamplePeriod = DiEffect->dwSamplePeriod;
293 }
294
295 if( Flags & FFEP_GAIN )
296 {
297 Effect->DiEffect.dwGain = DiEffect->dwGain;
298 }
299
300 if( Flags & FFEP_TRIGGERBUTTON )
301 {
302 Effect->DiEffect.dwTriggerButton = DiEffect->dwTriggerButton;
303 }
304
305 if( Flags & FFEP_TRIGGERREPEATINTERVAL )
306 {
307 Effect->DiEffect.dwTriggerRepeatInterval = DiEffect->dwTriggerRepeatInterval;
308 }
309
310 if( Flags & FFEP_AXES )
311 {

Callers 1

sDownloadEffectMethod · 0.45

Calls 2

FeedbackXBOEffectClass · 0.85
CurrentTimeUsingMachFunction · 0.70

Tested by

no test coverage detected