summaryrefslogtreecommitdiffstats
path: root/recipes-demo/qtquickcontrols2-agl-style/qtquickcontrols2-agl-style_git.bb
blob: 49d2e856515cf00e13a4f83f30fe6ecfe3c561ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SUMMARY     = "AGL QtQuickControls2 style customizations"
HOMEPAGE    = "https://git.automotivelinux.org/src/qtquickcontrols2-agl-style"
LICENSE     = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=815ca599c9df247a0c7f619bab123dad"

DEPENDS = "qtquickcontrols2"

PV = "1.0+git${SRCPV}"

SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qtquickcontrols2-agl-style;protocol=https;branch=${AGL_BRANCH}"
SRCREV = "c02692a3c20d9aed1192137a67d5be882c60e71f"

S = "${WORKDIR}/git"

inherit qmake5

FILES:${PN} += "${OE_QMAKE_PATH_QML}/QtQuick/Controls.2/AGL/*"

RDEPENDS:${PN} += " \
    qtquickcontrols-qmlplugins \
    qtquickcontrols2-qmlplugins \
    qtsvg-plugins \
"
* * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #define _GNU_SOURCE // needed for vasprintf #define AFB_BINDING_VERSION 2 #include <afb/afb-binding.h> #include <systemd/sd-event.h> #include <json-c/json_object.h> #include <stdbool.h> #include <string.h> #include "ctl-plugin.h" #include "wrap-json.h" CTLP_REGISTER("low-can"); typedef struct { bool door; bool window; } doorT; typedef struct { doorT* front_left; doorT* front_right; doorT* rear_left; doorT* rear_right; } allDoorsCtxT; // Call at initialisation time CTLP_ONLOAD(plugin, api) { allDoorsCtxT *allDoorCtx = (allDoorsCtxT*)calloc (1, sizeof(allDoorsCtxT)); memset(allDoorCtx, 0, sizeof(allDoorsCtxT)); AFB_NOTICE ("Low-can door plugin: label='%s' version='%s' info='%s'", plugin->label, plugin->version, plugin->info); return (void*)allDoorCtx; } CTLP_CAPI (isOpen, source, argsJ, eventJ, context) { const char* eventName; json_object *eventStatus = NULL; long long int *timestamp = NULL; allDoorsCtxT *ctx=(allDoorsCtxT*)context; AFB_DEBUG("Here is the situation: source:%s, args:%s, event:%s,\n fld: %s, flw: %s, frd: %s, frw: %s, rld: %s, rlw: %s, rrd: %s, rrw: %s", source->label, json_object_to_json_string(argsJ), json_object_to_json_string(eventJ), ctx->front_left->door ? "true":"false", ctx->front_left->window ? "true":"false", ctx->front_right->door ? "true":"false", ctx->front_right->window ? "true":"false", ctx->rear_left->door ? "true":"false", ctx->rear_left->window ? "true":"false", ctx->rear_right->door ? "true":"false", ctx->rear_right->window ? "true":"false" ); int err = wrap_json_unpack(eventJ, "{ss,sb,s?F}", "event", &eventName, "value", &eventStatus, "timestamp", &timestamp); if(err) { AFB_ERROR("Error parsing event %s", json_object_to_json_string(eventJ)); return -1; } if(strcasestr(eventName, "front_left")) { if(strcasestr(eventName, "door")) {ctx->front_left->door = eventStatus;} else if(strcasestr(eventName, "window")) {ctx->front_left->window = eventStatus;} else {AFB_WARNING("Unexpected behavior, this '%s' is not a door ! ", json_object_to_json_string(eventJ));} } else if(strcasestr(eventName, "front_right")) { if(strcasestr(eventName, "door")) {ctx->front_right->door = eventStatus;} else if(strcasestr(eventName, "window")) {ctx->front_right->window = eventStatus;} else {AFB_WARNING("Unexpected behavior, this '%s' is not a door ! ", json_object_to_json_string(eventJ));} } else if(strcasestr(eventName, "rear_left")) { if(strcasestr(eventName, "door")) {ctx->rear_left->door = eventStatus;} else if(strcasestr(eventName, "window")) {ctx->rear_left->window = eventStatus;} else {AFB_WARNING("Unexpected behavior, this '%s' is not a door ! ", json_object_to_json_string(eventJ));} } else if(strcasestr(eventName, "rear_right")) { if(strcasestr(eventName, "door")) {ctx->rear_right->door = eventStatus;} else if(strcasestr(eventName, "window")) {ctx->rear_right->window = eventStatus;} else {AFB_WARNING("Unexpected behavior, this '%s' is not a door ! ", json_object_to_json_string(eventJ));} } else {AFB_WARNING("Unexpected behavior, this '%s' is not a door ! ", json_object_to_json_string(eventJ));} return 0; }