X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Frba_adapter.cpp;h=0609ac96d038dc820a6fc80e8ee32fc5907c813f;hb=d8e72099ecbcadc6e8b242686cf012763a5f1a3a;hp=120d03221df1208c62575a739ec83870b5d3cb68;hpb=e1e8c07e202ffccc7b56f8f116a2ef1624028f91;p=src%2Fagl-compositor.git diff --git a/src/rba_adapter.cpp b/src/rba_adapter.cpp index 120d032..0609ac9 100644 --- a/src/rba_adapter.cpp +++ b/src/rba_adapter.cpp @@ -28,6 +28,8 @@ #include #include "rba_adapter.h" +#include "ivi-compositor.h" +#include #include #include "RBAJsonParser.hpp" @@ -52,27 +54,37 @@ bool rba_adapter_initialize(void) weston_log("RBAmodel is NULL\n"); return false; } - arb = new rba::RBAArbitrator(); + arb = new rba::RBAArbitrator(model); if (arb == nullptr) { weston_log("RBAArbitrator is NULL\n"); return false; } - arb->setModel(model); return true; } weston_log("RBAArbitrator model is already created\n"); return true; } -bool rba_adapter_arbitrate(const char *app_id) +bool rba_adapter_arbitrate(const char *app_id, struct ivi_compositor *ivi) { + bool allow_unregistred_app; + struct weston_config_section *section; string id(app_id); result = arb->execute(id+ "/NORMAL", true); + section = weston_config_get_section(ivi->config, "core", NULL, NULL); + weston_config_section_get_bool(section, "allow_unregistred_app", + &allow_unregistred_app, false); if (result->getStatusType() == rba::RBAResultStatusType::UNKNOWN_CONTENT_STATE) { weston_log("ERROR: Unknown context app: %s\n", app_id); - return false; + if(allow_unregistred_app) { + result = arb->execute("unknown_app/NORMAL", true); + weston_log("!!! WARNING !!! Allowed unknown application to open as allow_unregistred_app is set to 1 in config file.\n"); + weston_log("!!! WARNING !!! allow_unregistred_app should be disabled for release build.\n"); + } else { + return false; + } } if (result->getStatusType() == rba::RBAResultStatusType::FAILED || result->getStatusType() == rba::RBAResultStatusType::CANCEL_ERROR) {