Skip to content
Snippets Groups Projects
Commit bf2ecd81 authored by Dylan Van Assche's avatar Dylan Van Assche
Browse files

Upgrade to 0_git20201114

parent 15a07ac7
No related branches found
No related tags found
No related merge requests found
From 8452b7739885918d640a69aca9babc3f09554c57 Mon Sep 17 00:00:00 2001
From: Dylan Van Assche <dylan.vanassche@ugent.be>
Date: Sat, 28 Nov 2020 08:20:32 +0100
Subject: [PATCH] fbd-feedback-manager: Allow device-specific feedbackd themes
---
src/fbd-feedback-manager.c | 39 ++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/src/fbd-feedback-manager.c b/src/fbd-feedback-manager.c
index ef508c7..9b91c38 100644
--- a/src/fbd-feedback-manager.c
+++ b/src/fbd-feedback-manager.c
@@ -25,6 +25,8 @@
#define APP_SCHEMA FEEDBACKD_SCHEMA_ID ".application"
#define APP_PREFIX "/org/sigxcpu/feedbackd/application/"
+#define DEVICE_TREE_PATH "/proc/device-tree/compatible"
+
/**
* SECTION:fbd-feedback-manager
@@ -380,6 +382,43 @@ fbd_feedback_manager_constructed (GObject *object)
G_CALLBACK (on_feedbackd_setting_changed), self);
}
+static gboolean
+find_config (gchar *themefile) {
+ gboolean success = FALSE;
+ gchar **device_name = NULL;
+ GError **error = NULL;
+
+ // Try to read the device name
+ if (g_file_test(DEVICE_TREE_PATH, (G_FILE_TEST_EXISTS & G_FILE_TEST_IS_REGULAR))) {
+ g_debug("Found device tree device name path");
+ success = g_file_get_contents (DEVICE_TREE_PATH, device_name, NULL, NULL);
+
+ // Check if feedbackd has a proper config available this device
+ if (success) {
+ g_debug("Read device name: %s", device_name);
+ config_path = g_strconcat(FEEDBACKD_THEME_DIR, device_name, "/default.json");
+ if (g_file_test(config_path, (G_FILE_TEST_EXISTS & G_FILE_TEST_IS_REGULAR))) {
+ g_info("Setting themefile to %s", config_path);
+ themefile = config_path;
+ }
+ else {
+ g_warning("No feedbackd theme available for %s, falling back to default", device_name);
+ success = FALSE;
+ }
+ }
+ else {
+ g_warning("Unable to read device name from device tree");
+ success = FALSE;
+ }
+ }
+
+ if (device_name != NULL) {
+ g_free(device_name);
+ }
+
+ return success;
+}
+
static void
fbd_feedback_manager_dispose (GObject *object)
{
--
2.25.1
# Forked from Alpine to provide a newer version
pkgname=feedbackd
pkgver=0_git20201114
pkgrel=0
pkgdesc="A daemon to provide haptic (and later more) feedback on events"
url="https://source.puri.sm/Librem5/feedbackd"
arch="all"
license="GPL-3.0-or-later"
depends="dbus"
makedepends="meson glib-dev gsound-dev libgudev-dev json-glib-dev gtk-doc
vala gobject-introspection-dev"
subpackages="$pkgname-dev"
source="https://source.puri.sm/Librem5/feedbackd/-/archive/v0.0.0+${pkgver#0_}/feedbackd-v0.0.0+${pkgver#0_}.tar.gz"
builddir="$srcdir/$pkgname-v0.0.0+${pkgver#0_}"
options="!check" # Tests fail in QEMU
build() {
abuild-meson \
-Dgtk_doc=false \
. output
meson compile ${JOBS:+-j ${JOBS}} -C output
}
check() {
meson test --no-rebuild -v -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm644 "$builddir"/debian/feedbackd.udev \
"$pkgdir"/usr/lib/udev/rules.d/90-feedbackd.rules
}
sha512sums="2a3e443c5f565dce7cdc25ade73934b5ab29c9efc6ceaa2d404111bfcd67fbc9b02893fc34559c8071aaba218686f2ba8109b2fd92a74e9f16955406ed6af6f6 feedbackd-v0.0.0+git20200726.tar.gz"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment