summaryrefslogtreecommitdiffstats
path: root/recipes-platform/images/agl-cluster-demo-platform.bb
blob: d5c92742f48fdffdcaa5bf35ef541f293e7921d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DESCRIPTION = "AGL Cluster Demo Platform image currently contains a simple cluster interface."

LICENSE = "MIT"

require recipes-platform/images/agl-image-boot.inc

IMAGE_FEATURES += "splash package-management ssh-server-openssh"

inherit features_check

REQUIRED_DISTRO_FEATURES = "wayland"

# add packages for cluster demo platform (include demo apps) here
IMAGE_INSTALL:append = " \
    packagegroup-agl-cluster-demo-platform \
    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "cluster-dashboard-demo-config", "", d)} \
    ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
    "
/span>(eventJ)); // retrieve section config from api handle CtlConfigT *ctrlConfig = (CtlConfigT*) afb_dynapi_get_userdata(apiHandle); CtlActionT* actions = ctrlConfig->sections[CTL_SECTION_EVENT].actions; int index= ActionLabelToIndex(actions, evtLabel); if (index < 0) { AFB_ApiWarning(apiHandle, "CtlDispatchEvent: fail to find uid=%s in action event section", evtLabel); return; } // create a dummy source for action CtlSourceT source; source.uid = actions[index].uid; source.api = actions[index].api; source.request = NULL; // Best effort ignoring error to exec corresponding action (void) ActionExecOne (&source, &actions[index], eventJ); } #else // In API-V2 controller config is unique and static extern CtlConfigT *ctrlConfig; // call action attached to even name if any PUBLIC void CtrlDispatchV2Event(const char *evtLabel, json_object *eventJ) { CtlActionT* actions = ctrlConfig->sections[CTL_SECTION_EVENT].actions; int index= ActionLabelToIndex(actions, evtLabel); if (index < 0) { AFB_WARNING ("CtlDispatchEvent: fail to find uid=%s in action event section", evtLabel); return; } CtlSourceT source; source.uid = actions[index].uid; source.api = actions[index].api; source.request = AFB_ReqNone; // Best effort ignoring error to exec corresponding action (void) ActionExecOne (&source, &actions[index], eventJ); } #endif // onload section receive one action or an array of actions PUBLIC int EventConfig(AFB_ApiT apiHandle, CtlSectionT *section, json_object *actionsJ) { // Load time parse actions in config file if (actionsJ != NULL) { section->actions= ActionConfig(apiHandle, actionsJ, 0); if (!section->actions) { AFB_ApiError (apiHandle, "EventLoad config fail processing onload actions"); goto OnErrorExit; } } return 0; OnErrorExit: return 1; }