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

Method DownloadEffect

Feedback360/Feedback360.cpp:237–371  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

235}
236
237HRESULT Feedback360::DownloadEffect(CFUUIDRef EffectType, FFEffectDownloadID *EffectHandle, FFEFFECT *DiEffect, FFEffectParameterFlag Flags)
238{
239 __block HRESULT Result = FF_OK;
240
241 if (Flags & FFEP_NODOWNLOAD)
242 {
243 return FF_OK;
244 }
245
246 dispatch_sync(Queue, ^{
247 Feedback360Effect *Effect = NULL;
248 if (*EffectHandle == 0) {
249 EffectList.push_back(Feedback360Effect(EffectIndex++));
250 Effect = &(EffectList.back());
251 *EffectHandle = Effect->Handle;
252 } else {
253 for (LONG Index = 0; Index < EffectList.size(); Index++) {
254 if (EffectList[Index].Handle == *EffectHandle) {
255 Effect = &(EffectList[Index]);
256 break;
257 }
258 }
259 }
260
261 if (Effect == NULL || Result == -1) {
262 Result = FFERR_INTERNAL;
263 }
264 else {
265 Effect->Type = EffectType;
266 Effect->DiEffect.dwFlags = DiEffect->dwFlags;
267
268 if( Flags & FFEP_DURATION )
269 {
270 Effect->DiEffect.dwDuration = DiEffect->dwDuration;
271 }
272
273 if( Flags & FFEP_SAMPLEPERIOD )
274 {
275 Effect->DiEffect.dwSamplePeriod = DiEffect->dwSamplePeriod;
276 }
277
278 if( Flags & FFEP_GAIN )
279 {
280 Effect->DiEffect.dwGain = DiEffect->dwGain;
281 }
282
283 if( Flags & FFEP_TRIGGERBUTTON )
284 {
285 Effect->DiEffect.dwTriggerButton = DiEffect->dwTriggerButton;
286 }
287
288 if( Flags & FFEP_TRIGGERREPEATINTERVAL )
289 {
290 Effect->DiEffect.dwTriggerRepeatInterval = DiEffect->dwTriggerRepeatInterval;
291 }
292
293 if( Flags & FFEP_AXES )
294 {

Callers 1

sDownloadEffectMethod · 0.45

Calls 2

Feedback360EffectClass · 0.85
CurrentTimeUsingMachFunction · 0.70

Tested by

no test coverage detected