summary refs log tree commit diff
diff options
context:
space:
mode:
authorStefan Reichör <stefan@xsteve.at>2017-09-23 21:33:20 +0200
committerThomas Danckaert <thomas.danckaert@gmail.com>2017-09-28 20:24:17 +0200
commit18a26f1c1300773ec01bc0afb86ca863b22fa285 (patch)
tree8bfa0e19dcbb2106ac387992b8a9270437becc56
parent1344deb937432b4463552b303a2ee13ff4037ebe (diff)
downloadguix-18a26f1c1300773ec01bc0afb86ca863b22fa285.tar.gz
gnu: Add footswitch.
I have tested the built footswitch tool with my foot switch. It works as expected.
Is accessibility.scm the correct location for this tool?

* gnu/packages/accessibility.scm (footswitch): New variable.
-rw-r--r--gnu/packages/accessibility.scm45
1 files changed, 44 insertions, 1 deletions
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index 0795808768..78cb64a2d7 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages xml)
@@ -29,7 +32,8 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages libusb))
 
 (define-public florence
   (package
@@ -76,3 +80,42 @@ available to help to click.")
     ;; The documentation is under FDL1.2, but we do not install the
     ;; documentation.
     (license license:gpl2+)))
+
+(define-public footswitch
+  (let ((commit "7cb0a9333a150c27c7e4746ee827765d244e567a"))
+    (package
+      (name "footswitch")
+      (version (git-version "0.1" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rgerganov/footswitch")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "0mg1vr4a9vls5y435w7wdnr1vb5059gy60lvrdfjgzhd2wwf47iw"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("hidapi" ,hidapi)))
+      (arguments
+       `(#:tests? #f ; no tests
+         #:make-flags (list "CC=gcc")
+         #:phases (modify-phases %standard-phases
+                    (delete 'configure)
+                    ;; Install target in the Makefile does not work for Guix
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let ((bin (string-append (assoc-ref outputs "out")
+                                                  "/bin")))
+                          (mkdir-p bin)
+                          (install-file "footswitch" bin)
+                          #t))))))
+      (home-page "https://github.com/rgerganov/footswitch")
+      (synopsis "Command line utility for PCsensor foot switch")
+      (description
+       "Command line utility for programming foot switches sold by PCsensor.
+It works for both single pedal devices and three pedal devices.  All supported
+devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
+    (license license:expat))))