implements PLN-0107
This commit is contained in:
parent
5381ae02b1
commit
f45b3a38cb
@ -1350,8 +1350,9 @@ fn input_touch_x(
|
|||||||
ctx: &mut HostContext<'_>,
|
ctx: &mut HostContext<'_>,
|
||||||
) -> Result<Vec<Value>, IntrinsicExecutionError> {
|
) -> Result<Vec<Value>, IntrinsicExecutionError> {
|
||||||
expect_touch_handle(args, "x")?;
|
expect_touch_handle(args, "x")?;
|
||||||
let hw = ctx.require_hw().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
let platform =
|
||||||
Ok(vec![Value::Int64(hw.touch().x() as i64)])
|
ctx.require_platform().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
||||||
|
Ok(vec![Value::Int64(platform.input().touch().x() as i64)])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn input_touch_y(
|
fn input_touch_y(
|
||||||
@ -1359,8 +1360,9 @@ fn input_touch_y(
|
|||||||
ctx: &mut HostContext<'_>,
|
ctx: &mut HostContext<'_>,
|
||||||
) -> Result<Vec<Value>, IntrinsicExecutionError> {
|
) -> Result<Vec<Value>, IntrinsicExecutionError> {
|
||||||
expect_touch_handle(args, "y")?;
|
expect_touch_handle(args, "y")?;
|
||||||
let hw = ctx.require_hw().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
let platform =
|
||||||
Ok(vec![Value::Int64(hw.touch().y() as i64)])
|
ctx.require_platform().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
||||||
|
Ok(vec![Value::Int64(platform.input().touch().y() as i64)])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn input_button_pressed(
|
fn input_button_pressed(
|
||||||
@ -1435,9 +1437,11 @@ fn resolve_button(
|
|||||||
ctx: &mut HostContext<'_>,
|
ctx: &mut HostContext<'_>,
|
||||||
) -> Result<prometeu_hal::button::Button, IntrinsicExecutionError> {
|
) -> Result<prometeu_hal::button::Button, IntrinsicExecutionError> {
|
||||||
let carrier = expect_builtin_carrier(args, 0)?;
|
let carrier = expect_builtin_carrier(args, 0)?;
|
||||||
let hw = ctx.require_hw().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
let platform =
|
||||||
|
ctx.require_platform().map_err(|_| IntrinsicExecutionError::HardwareUnavailable)?;
|
||||||
|
let input = platform.input();
|
||||||
if carrier == TOUCH_BUTTON_CARRIER {
|
if carrier == TOUCH_BUTTON_CARRIER {
|
||||||
return Ok(*hw.touch().f());
|
return Ok(*input.touch().f());
|
||||||
}
|
}
|
||||||
|
|
||||||
let Some(index) = carrier.checked_sub(PAD_BUTTON_BASE) else {
|
let Some(index) = carrier.checked_sub(PAD_BUTTON_BASE) else {
|
||||||
@ -1448,18 +1452,18 @@ fn resolve_button(
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
let button = match index {
|
let button = match index {
|
||||||
0 => *hw.pad().up(),
|
0 => *input.pad().up(),
|
||||||
1 => *hw.pad().down(),
|
1 => *input.pad().down(),
|
||||||
2 => *hw.pad().left(),
|
2 => *input.pad().left(),
|
||||||
3 => *hw.pad().right(),
|
3 => *input.pad().right(),
|
||||||
4 => *hw.pad().a(),
|
4 => *input.pad().a(),
|
||||||
5 => *hw.pad().b(),
|
5 => *input.pad().b(),
|
||||||
6 => *hw.pad().x(),
|
6 => *input.pad().x(),
|
||||||
7 => *hw.pad().y(),
|
7 => *input.pad().y(),
|
||||||
8 => *hw.pad().l(),
|
8 => *input.pad().l(),
|
||||||
9 => *hw.pad().r(),
|
9 => *input.pad().r(),
|
||||||
10 => *hw.pad().start(),
|
10 => *input.pad().start(),
|
||||||
11 => *hw.pad().select(),
|
11 => *input.pad().select(),
|
||||||
_ => {
|
_ => {
|
||||||
return Err(IntrinsicExecutionError::InvalidBuiltinCarrier {
|
return Err(IntrinsicExecutionError::InvalidBuiltinCarrier {
|
||||||
owner: "input.button",
|
owner: "input.button",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user