From fabec436114bfe0a226453fc2c5ad2eb85cb54a0 Mon Sep 17 00:00:00 2001 From: Ed Rogalsky Date: Mon, 3 Mar 2014 21:02:07 +0100 Subject: [PATCH] jogshuttle: keys count function added to mediactrl --- src/jogshuttle.cpp | 2 ++ src/lib/external/media_ctrl/mediactrl.c | 11 +++++++++++ src/lib/external/media_ctrl/mediactrl.h | 1 + 3 files changed, 14 insertions(+) diff --git a/src/jogshuttle.cpp b/src/jogshuttle.cpp index c846e9c9..4506985e 100644 --- a/src/jogshuttle.cpp +++ b/src/jogshuttle.cpp @@ -411,6 +411,8 @@ DeviceMap JogShuttle::enumerateDevices(const QString& devPath) media_ctrl_open2(&mc, (char*)fileLink.toUtf8().data()); if (mc.fd > 0 && mc.device) { devs.insert(QString(mc.device->name), devFullPath); + kDebug() << QString(" [keys-count=%1] ").arg( + media_ctrl_get_keys_count(&mc)); } media_ctrl_close(&mc); } diff --git a/src/lib/external/media_ctrl/mediactrl.c b/src/lib/external/media_ctrl/mediactrl.c index 3558d825..104b5acf 100644 --- a/src/lib/external/media_ctrl/mediactrl.c +++ b/src/lib/external/media_ctrl/mediactrl.c @@ -171,6 +171,17 @@ struct media_ctrl_key *media_ctrl_get_key(struct media_ctrl *ctrl, int code, in return NULL; } +int media_ctrl_get_keys_count(struct media_ctrl *ctrl) +{ + int i = 0; + struct media_ctrl_key *keys = ctrl->device->keys; + + while ( keys[i].key != 0 ) { + i++; + } + + return i; +} void translate_contour_hid_event(struct media_ctrl *ctrl, struct input_event *ev, struct media_ctrl_event *me) { diff --git a/src/lib/external/media_ctrl/mediactrl.h b/src/lib/external/media_ctrl/mediactrl.h index 652b4ffe..fb10b2ba 100644 --- a/src/lib/external/media_ctrl/mediactrl.h +++ b/src/lib/external/media_ctrl/mediactrl.h @@ -148,6 +148,7 @@ void media_ctrl_close(struct media_ctrl *); void media_ctrl_read_event(struct media_ctrl *, struct media_ctrl_event *); struct media_ctrl_key *media_ctrl_get_keys(struct media_ctrl *); +int media_ctrl_get_keys_count(struct media_ctrl *); #ifdef __cplusplus } -- 2.39.2