fix offroad processing events in bg (#1266)

* fix offroad processing events in bg

* first run of ui

* actually, we don't need that at all

Co-authored-by: Comma Device <device@comma.ai>
pull/1269/head
George Hotz 5 years ago committed by GitHub
parent e074b4fbe8
commit f0779d86e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      selfdrive/ui/ui.cc

@ -42,12 +42,10 @@ static void set_awake(UIState *s, bool awake) {
// TODO: replace command_awake and command_sleep with direct calls to android // TODO: replace command_awake and command_sleep with direct calls to android
if (awake) { if (awake) {
LOGW("awake normal"); LOGW("awake normal");
system("service call window 18 i32 1"); // enable event processing
framebuffer_set_power(s->fb, HWC_POWER_MODE_NORMAL); framebuffer_set_power(s->fb, HWC_POWER_MODE_NORMAL);
} else { } else {
LOGW("awake off"); LOGW("awake off");
set_brightness(s, 0); set_brightness(s, 0);
system("service call window 18 i32 0"); // disable event processing
framebuffer_set_power(s->fb, HWC_POWER_MODE_OFF); framebuffer_set_power(s->fb, HWC_POWER_MODE_OFF);
} }
} }
@ -57,8 +55,20 @@ static void set_awake(UIState *s, bool awake) {
#endif #endif
} }
int event_processing_enabled = -1;
static void enable_event_processing(bool yes) {
if (event_processing_enabled != 1 && yes) {
system("service call window 18 i32 1"); // enable event processing
event_processing_enabled = 1;
} else if (event_processing_enabled != 0 && !yes) {
system("service call window 18 i32 0"); // disable event processing
event_processing_enabled = 0;
}
}
static void navigate_to_settings(UIState *s) { static void navigate_to_settings(UIState *s) {
#ifdef QCOM #ifdef QCOM
enable_event_processing(true);
system("am broadcast -a 'ai.comma.plus.SidebarSettingsTouchUpInside'"); system("am broadcast -a 'ai.comma.plus.SidebarSettingsTouchUpInside'");
#else #else
// computer UI doesn't have offroad settings // computer UI doesn't have offroad settings
@ -67,6 +77,9 @@ static void navigate_to_settings(UIState *s) {
static void navigate_to_home(UIState *s) { static void navigate_to_home(UIState *s) {
#ifdef QCOM #ifdef QCOM
if (s->vision_connected) {
enable_event_processing(false);
}
system("am broadcast -a 'ai.comma.plus.HomeButtonTouchUpInside'"); system("am broadcast -a 'ai.comma.plus.HomeButtonTouchUpInside'");
#else #else
// computer UI doesn't have offroad home // computer UI doesn't have offroad home
@ -722,6 +735,7 @@ static void* vision_connect_thread(void *args) {
s->vision_connected = true; s->vision_connected = true;
s->vision_connect_firstrun = true; s->vision_connect_firstrun = true;
enable_event_processing(false);
// Drain sockets // Drain sockets
while (true){ while (true){
@ -926,6 +940,8 @@ int main(int argc, char* argv[]) {
} }
if (!s->vision_connected) { if (!s->vision_connected) {
// always process events offroad
enable_event_processing(true);
if (s->status != STATUS_STOPPED) { if (s->status != STATUS_STOPPED) {
update_status(s, STATUS_STOPPED); update_status(s, STATUS_STOPPED);
} }

Loading…
Cancel
Save