Original Post
Hi, I've been playing around with force feedback in DirectInput; I redownloaded the Managed DirectX sdk since it's somewhat close to SlimDX. I've tried converting a sample from MDX to SlimDX but am having trouble. What I'm trying to achieve is a rumble on my force feedback joystick. I create the EffectParameter structure, fill it in, and then create the Effect object with it. I get the following error: SlimDX.DirectInput.DirectInputException was unhandled Message="DIERR_INCOMPLETEEFFECT & VFW_E_NO_TYPES & DMO_E_NO_MORE_ITEMS: The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types. (-2147220986)" Source="SlimDX" StackTrace: at SlimDX.Result.Throw[T](Object dataKey, Object dataValue) at SlimDX.Result.Record[T](Int32 hr, Boolean failed, Object dataKey, Object dataValue) at SlimDX.DirectInput.Effect.SetParameters(EffectParameters parameters, EffectParameterFlags flags) Here's my code:
int xAxisOffset = 0, yAxisOffset = 0;
int nextOffset = 0;
foreach (DeviceObjectInstance d in device.GetObjects()) {
if ((d.ObjectType & ObjectDeviceType.ForceFeedbackActuator)
!= 0) {
if (nextOffset == 0)
xAxisOffset = d.Offset;
else
yAxisOffset = d.Offset;
nextOffset++;
}
}
Effects eff1 = null;
Guid forceFeedbackGuid = EffectGuid.ConstantForce;
int[] offsets = new int[2];
offsets[0] = xAxisOffset;
offsets[1]=yAxisOffset;
int[] coords = {0, 0};
EffectParameters info = new EffectParameters();
info.Flags = EffectFlags.ObjectOffsets | EffectFlags.Cartesian;
ConstantForce typeSpec = new ConstantForce();
info.Duration = 1000;
info.SamplePeriod = device.Capabilities.ForceFeedbackSamplePeriod;
info.Parameters = typeSpec;
info.Gain = 5000;
info.SetAxes(offsets, coords);
info.StartDelay = 500;
eff1 = new Effect(device, forceFeedbackGuid, info); //This is the line i get the error on.
}
I'm still fairly new to force feedback, so I'm probably missing something obvious. Any help would be greatly appreciated! After looking at an effects file i realized I failed to set trigger button to -1. Everything works fine now. [Edited by - munawar on October 25, 2009 9:22:18 PM]