7个版本 (破坏性)

0.6.0 2023年6月24日
0.5.0 2023年5月13日
0.4.0 2023年4月19日
0.3.1 2023年4月16日
0.1.0 2023年4月7日

#140 in Windows API

MIT/Apache

34KB
781

Crates.io docs.rs Crates.io

针对vjoy-sys的安全且惯用的包装器。

关于vJoy

vJoy可以模拟最多16个输入设备,每个设备最多有128个按钮,8个轴和4个帽开关(4向或连续)。这些虚拟设备可用于

  1. 模拟游戏手柄/摇杆,以模拟需要特定输入类型的老游戏。
  2. 将多个物理设备组合成一个虚拟设备。
  3. 将物理设备到虚拟设备的应用变换(例如,2按钮到轴重绑定,软件过滤等)。

虚拟设备对应用程序表现为常规输入设备。

用法

需要安装vJoy驱动程序版本2.1.9.1,并且仅适用于Windows。

在运行时通过libloading加载vJoy共享库。有关详细信息,请参阅集成测试。

示例

use vjoy::{VJoy, ButtonState, Error, HatState, FourWayHat};

fn main() -> Result<(), Error>{
    let mut vjoy = VJoy::from_default_dll_location()?;
    let device_1 = vjoy.get_device_state_mut(1)?;

    device_1.set_button(1, ButtonState::Pressed)?;
    device_1.set_axis(1, i32::MAX)?;

    let hat_type = device_1.hat_type();
    let value = match hat_type{
        HatState::Discrete(_) => HatState::Discrete(FourWayHat::East),
        HatState::Continuous(_) => HatState::Continuous(90 * 100),
    };
    device_1.set_hat(1, value)?;

    vjoy.update_all_devices()?;

    Ok(())
}

依赖关系

~0.5–2.9MB
~55K SLoC