summaryrefslogtreecommitdiff
path: root/ivi-layermanagement-api/ilmInput/src/ilm_input.c
diff options
context:
space:
mode:
authorTran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>2023-03-20 18:00:41 +0700
committerTran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>2023-04-28 15:12:06 +0700
commit765e844c296f5db8ecd0b29e539698c82dceaf22 (patch)
tree6908519b5598a311570be4efce44893900861d01 /ivi-layermanagement-api/ilmInput/src/ilm_input.c
parent8a735a3ee6695778c9907f6bd044e9be7db1ef37 (diff)
downloadwayland-ivi-extension-765e844c296f5db8ecd0b29e539698c82dceaf22.tar.gz
ilmInput: support ilm_getDefaultSeat api to return default seat name
Sometimes the client need to know the default seat is available or not, or it wants to know which seat is default among multi seats. The seat_create_event should add more an argument for identification of default seat. The ilm_getDefaultSeat is going to query the list of seats to find the default seat name. Signed-off-by: Tran Ba Khang(MS/EMC31-XC) <Khang.TranBa@vn.bosch.com>
Diffstat (limited to 'ivi-layermanagement-api/ilmInput/src/ilm_input.c')
-rw-r--r--ivi-layermanagement-api/ilmInput/src/ilm_input.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/ivi-layermanagement-api/ilmInput/src/ilm_input.c b/ivi-layermanagement-api/ilmInput/src/ilm_input.c
index eae9b61..979bf56 100644
--- a/ivi-layermanagement-api/ilmInput/src/ilm_input.c
+++ b/ivi-layermanagement-api/ilmInput/src/ilm_input.c
@@ -333,3 +333,27 @@ ilm_getInputFocus(t_ilm_surface **surfaceIDs, ilmInputDevice **bitmasks,
return ILM_SUCCESS;
}
+
+ILM_EXPORT ilmErrorTypes
+ilm_getDefaultSeat(t_ilm_string *seat_name)
+{
+ struct ilm_control_context *ctx = NULL;
+ struct seat_context *seat = NULL;
+
+ if (seat_name == NULL) {
+ fprintf(stderr, "Invalid Argument\n");
+ return ILM_FAILED;
+ }
+
+ *seat_name = NULL;
+ ctx = sync_and_acquire_instance();
+ wl_list_for_each(seat, &ctx->wl.list_seat, link) {
+ if (seat->is_default) {
+ *seat_name = strdup(seat->seat_name);
+ break;
+ }
+ }
+
+ release_instance();
+ return (*seat_name) ? ILM_SUCCESS : ILM_FAILED;
+}