本文整理汇总了Golang中github.com/jteeuwen/evdev.Device.ForceFeedbackCaps方法的典型用法代码示例。如果您正苦于以下问题:Golang Device.ForceFeedbackCaps方法的具体用法?Golang Device.ForceFeedbackCaps怎么用?Golang Device.ForceFeedbackCaps使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jteeuwen/evdev.Device
的用法示例。
在下文中一共展示了Device.ForceFeedbackCaps方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: listCapabilities
// listCapabilities lists Force feedback capabilities for a given device.
//
// Testing for individual effect types can be done using the
// Device.Supports() method.
func listCapabilities(dev *evdev.Device) {
// Fetch the force feedback capabilities.
// The number of simultaneous effects and a
// bitset describing the type of effects.
count, caps := dev.ForceFeedbackCaps()
fmt.Printf("Number of simultaneous effects: %d\n", count)
for n := 0; n < caps.Len(); n++ {
if !caps.Test(n) {
continue
}
fmt.Printf(" - Effect 0x%02x: ", n)
switch n {
case evdev.FFConstant:
fmt.Printf("Constant")
case evdev.FFPeriodic:
fmt.Printf("Periodic")
case evdev.FFSpring:
fmt.Printf("Spring")
case evdev.FFFriction:
fmt.Printf("Friction")
case evdev.FFRumble:
fmt.Printf("Rumble")
case evdev.FFDamper:
fmt.Printf("Damper")
case evdev.FFRamp:
fmt.Printf("Ramp")
}
fmt.Println()
}
}
示例2: setEffects
// setEffects creates, uploads and plays a new Force feedback effect.
// This function uploads only 1 effect, but it can deal with
// up to N effects at the same time. Where N is whatever value
// returned from `Device.ForceFeedbackCaps()`.
func setEffects(dev *evdev.Device) {
_, caps := dev.ForceFeedbackCaps()
var effect evdev.Effect
effect.Id = -1
effect.Trigger.Button = 0
effect.Trigger.Interval = 0
effect.Replay.Length = 20000 // 20 seconds
effect.Replay.Delay = 0
// Some samples of various effect types.
// (un)comment any one to try them out. Note that
// the device must support a given effect type.
switch {
case dev.Test(caps, evdev.FFRumble):
rumble(&effect)
case dev.Test(caps, evdev.FFPeriodic):
periodic(&effect)
case dev.Test(caps, evdev.FFConstant):
constant(&effect)
case dev.Test(caps, evdev.FFSpring):
spring(&effect)
case dev.Test(caps, evdev.FFDamper):
damper(&effect)
}
// Upload the effect.
dev.SetEffects(&effect)
fmt.Printf("Effect id: %d\n", effect.Id)
// Play the effect.
dev.PlayEffect(effect.Id)
// Delete the effect.
dev.UnsetEffects(&effect)
}