From b6d20a57501ba92d233e00ed0029522e121da886 Mon Sep 17 00:00:00 2001 From: grace Date: Fri, 10 Jul 2020 23:08:15 -0700 Subject: [PATCH] DRY button validation --- run_controller_cli.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/run_controller_cli.py b/run_controller_cli.py index caf1cc8..d8ef746 100644 --- a/run_controller_cli.py +++ b/run_controller_cli.py @@ -150,11 +150,7 @@ async def set_nfc(controller_state, file_path): async def mash_button(controller_state, button, interval): - # waits until controller is fully connected - await controller_state.connect() - - if button not in controller_state.button_state.get_available_buttons(): - raise ValueError(f'Button {button} does not exist on {controller_state.get_controller()}') + await ensure_valid_button(controller_state, button) user_input = asyncio.ensure_future( ainput(prompt=f'Pressing the {button} button every {interval} seconds... Press to stop.') @@ -169,24 +165,24 @@ async def mash_button(controller_state, button, interval): async def hold_button(controller_state, button): - # waits until controller is fully connected - await controller_state.connect() - - if button not in controller_state.button_state.get_available_buttons(): - raise ValueError(f'Button {button} does not exist on {controller_state.get_controller()}') + await ensure_valid_button(controller_state, button) await button_down(controller_state, button) async def release_button(controller_state, button): + await ensure_valid_button(controller_state, button) + + await button_up(controller_state, button) + + +async def ensure_valid_button(controller_state, button): # waits until controller is fully connected await controller_state.connect() if button not in controller_state.button_state.get_available_buttons(): raise ValueError(f'Button {button} does not exist on {controller_state.get_controller()}') - await button_up(controller_state, button) - async def _main(args): # parse the spi flash