From 26ea9591bcb90c5ac201fce7ce2f0e1e092c703e Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Wed, 9 May 2018 16:32:02 -0700 Subject: ui: Use std::thread to create input/progress threads. Test: Build and boot into recovery on walleye. Check the long press detection; `Run graphics test`. Change-Id: Ic3e9b0652fc3ff6fb3ad118df5ebb9bb4abda2cd --- ui.h | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'ui.h') diff --git a/ui.h b/ui.h index a74b14f85..75390d83c 100644 --- a/ui.h +++ b/ui.h @@ -17,12 +17,13 @@ #ifndef RECOVERY_UI_H #define RECOVERY_UI_H -#include +#include // KEY_MAX #include -#include +#include #include #include +#include #include // Abstract class for controlling the user interface during recovery. @@ -51,7 +52,7 @@ class RecoveryUI { RecoveryUI(); - virtual ~RecoveryUI() {} + virtual ~RecoveryUI(); // Initializes the object; called before anything else. UI texts will be initialized according to // the given locale. Returns true on success. @@ -172,12 +173,6 @@ class RecoveryUI { OFF }; - struct key_timer_t { - RecoveryUI* ui; - int key_code; - int count; - }; - // The sensitivity when detecting a swipe. const int kTouchLowThreshold; const int kTouchHighThreshold; @@ -186,12 +181,10 @@ class RecoveryUI { void OnTouchDetected(int dx, int dy); int OnInputEvent(int fd, uint32_t epevents); void ProcessKey(int key_code, int updown); + void TimeKey(int key_code, int count); bool IsUsbConnected(); - static void* time_key_helper(void* cookie); - void time_key(int key_code, int count); - bool InitScreensaver(); // Key event input queue @@ -223,7 +216,8 @@ class RecoveryUI { bool touch_swiping_; bool is_bootreason_recovery_ui_; - pthread_t input_thread_; + std::thread input_thread_; + std::atomic input_thread_stopped_{ false }; ScreensaverState screensaver_state_; -- cgit v1.2.3