summaryrefslogtreecommitdiffstats
path: root/policy_manager
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-10-20 12:27:29 -0400
committerScott Murray <scott.murray@konsulko.com>2019-10-20 13:37:52 -0400
commitd6b295b89882b61ddefc4bed4b6f8dad0181d170 (patch)
tree00c4a6c74a0d7c7062d390b416509fa73ca47570 /policy_manager
parent8501d1f32139212ad1b26eaf08dabf42edab9c9a (diff)
Apply a heavily refactored version of the remote display changes from the CES 2019 demo #3 source demo3/common/agl-service-windowmanager in: https://git.automotivelinux.org/staging/new-apps The refactoring of the extracted changes has been done with an eye to reduce code duplication and minimize the changes to existing code. As well, the required default policy manager changes missing in the demo #3 tree have been added to produce a working default policy. At present the configuration has been hard-coded to assume use of the tbtnavi application on a Weston remoting display, but testing has also been done with a second display on one board. The changes should not impact operation of any other application, as only applications with roles listed in the "Remote" layer definition can be displayed on a configured second Weston screen. Bug-AGL: SPEC-2914 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I29380bbbec46969b75ed4fe7e8095db772524082
Diffstat (limited to 'policy_manager')
-rw-r--r--policy_manager/db/roles.db6
-rw-r--r--policy_manager/db/states.db9
-rw-r--r--policy_manager/stm/stm.c5
-rw-r--r--policy_manager/stm/stm.h5
-rw-r--r--policy_manager/stm/stub/stm_inner.c14
5 files changed, 39 insertions, 0 deletions
diff --git a/policy_manager/db/roles.db b/policy_manager/db/roles.db
index 184e602..9774274 100644
--- a/policy_manager/db/roles.db
+++ b/policy_manager/db/roles.db
@@ -35,6 +35,12 @@
"role": "system_alert",
"area": "on_screen",
"layer": "on_screen",
+ },
+ {
+ "category": "remote",
+ "role": "tbtnavi",
+ "area": "remote.fullscreen",
+ "layer": "remote_apps",
}
]
}
diff --git a/policy_manager/db/states.db b/policy_manager/db/states.db
index 371be3b..7883963 100644
--- a/policy_manager/db/states.db
+++ b/policy_manager/db/states.db
@@ -169,6 +169,15 @@
"category": "debug"
}
]
+ },
+ {
+ "name": "remote.fullscreen",
+ "areas": [
+ {
+ "name": "remote.fullscreen",
+ "category": "remote"
+ }
+ ]
}
]
}
diff --git a/policy_manager/stm/stm.c b/policy_manager/stm/stm.c
index c63a599..ecd8488 100644
--- a/policy_manager/stm/stm.c
+++ b/policy_manager/stm/stm.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2019 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,6 +41,7 @@ const char* kStmCategoryName[] = {
"system",
"software_keyboard",
"debug",
+ "remote",
};
const char* kStmAreaName[] = {
@@ -53,6 +55,7 @@ const char* kStmAreaName[] = {
"restriction.split.main",
"restriction.split.sub",
"software_keyboard",
+ "remote.fullscreen",
};
const char* kStmLayoutName[] = {
@@ -75,6 +78,7 @@ const char* kStmLayoutName[] = {
"debug.split.main",
"debug.split.sub",
"debug.fullscreen",
+ "remote.fullscreen",
};
const char* kStmLayerName[] = {
@@ -83,6 +87,7 @@ const char* kStmLayerName[] = {
"near_homescreen",
"restriction",
"on_screen",
+ "remote_apps",
};
const char* kStmModeName[] = {
diff --git a/policy_manager/stm/stm.h b/policy_manager/stm/stm.h
index deebf9c..330e10d 100644
--- a/policy_manager/stm/stm.h
+++ b/policy_manager/stm/stm.h
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2019 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -61,6 +62,7 @@ enum StmCtgNo {
StmCtgNoSystem,
StmCtgNoSoftwareKeyboard,
StmCtgNoDebug,
+ StmCtgNoRemote,
StmCtgNoNum,
@@ -80,6 +82,7 @@ enum StmAreaNo {
StmAreaNoRestrictionSplitMain,
StmAreaNoRestrictionSplitSub,
StmAreaNoSoftwareKyeboard,
+ StmAreaNoRemoteFullscreen,
StmAreaNoNum,
@@ -94,6 +97,7 @@ enum StmLayerNo {
StmLayerNoNearHomescreen,
StmLayerNoRestriction,
StmLayerNoOnScreen,
+ StmLayerNoRemoteApps,
StmLayerNoNum,
@@ -122,6 +126,7 @@ enum StmLayoutNo {
StmLayoutNoDbgSplMain,
StmLayoutNoDbgSplSub,
StmLayoutNoDbgFll,
+ StmLayoutNoRmtFll,
StmLayoutNoNum,
diff --git a/policy_manager/stm/stub/stm_inner.c b/policy_manager/stm/stub/stm_inner.c
index bd1b319..789ce5f 100644
--- a/policy_manager/stm/stub/stm_inner.c
+++ b/policy_manager/stm/stub/stm_inner.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2019 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -95,6 +96,11 @@ int stmTransitionStateInner(int event, StmState* state) {
g_stm_crr_state.layer[StmLayerNoOnScreen].state = StmLayoutNoSysAlt;
g_stm_crr_state.layer[StmLayerNoOnScreen].changed = STM_TRUE;
}
+ else if (StmCtgNoRemote == category_no)
+ {
+ g_stm_crr_state.layer[StmLayerNoRemoteApps].state = StmLayoutNoRmtFll;
+ g_stm_crr_state.layer[StmLayerNoRemoteApps].changed = STM_TRUE;
+ }
}
else if (StmEvtNoDeactivate == event_no)
{
@@ -138,6 +144,14 @@ int stmTransitionStateInner(int event, StmState* state) {
g_stm_crr_state.layer[StmLayerNoOnScreen].changed = STM_TRUE;
}
}
+ else if (StmCtgNoRemote == category_no)
+ {
+ if (StmLayoutNoRmtFll == g_stm_prv_state.layer[StmLayerNoRemoteApps].state )
+ {
+ g_stm_crr_state.layer[StmLayerNoRemoteApps].state = StmLayoutNoNone;
+ g_stm_crr_state.layer[StmLayerNoRemoteApps].changed = STM_TRUE;
+ }
+ }
}
// Copy current state for return