about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2021-01-06 21:31:30 +0100
committerGitHub <noreply@github.com>2021-01-06 21:31:30 +0100
commitd0b8b87220599ffcadebdb6e5fc6ab27346d4b88 (patch)
tree075fe03b052dc7026a7e80c65074c47a1a2ea369 /pkgs
parent7cd9d714ee019bc8aed04147e5a0d3c188837c4f (diff)
parent5aef5317f9abb0fe4ab7290633f2f9d5817b1bbe (diff)
Merge pull request #108570 from ymarkus/soundmodem
soundmodem: init at 0.20
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/radio/soundmodem/default.nix36
-rw-r--r--pkgs/applications/radio/soundmodem/matFix.patch11
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/applications/radio/soundmodem/default.nix b/pkgs/applications/radio/soundmodem/default.nix
new file mode 100644
index 0000000000000..d7410f9280943
--- /dev/null
+++ b/pkgs/applications/radio/soundmodem/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkg-config, alsaLib, audiofile, gtk2, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "soundmodem";
+  version = "0.20";
+
+  src = fetchurl {
+    url = "https://archive.org/download/${name}-${version}/${name}-${version}.tar.gz";
+    sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib audiofile gtk2 libxml2 ];
+
+  patches = [ ./matFix.patch ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Audio based modem for ham radio supporting ax.25";
+    longDescription = ''
+      This software allows a standard PC soundcard to be used as a packet radio "modem". The whole processing is done on the main processor CPU.
+      Unlike previous packet radio modem software, this new release offers several new benefits:
+        - Now uses standard operating system sound drivers (OSS/Free under Linux, /dev/audio under Solaris and DirectSound under Windows), thus runs on all soundcards for which drivers for the desired operating system are available.
+        - No fixed relationship between bitrate, sampling rate, and modem parameters. Modems may be parametrized, and multiple modems may even run on the same audio channel!
+        - Usermode solution allows the use of MMX, VIS, Floating point and other media instruction sets to speed up computation.
+        - Cross platform builds from a single source code provides ubiquitous availability.
+    '';
+    #homepage = "http://gna.org/projects/soundmodem"; # official, but "Connection refused"
+    homepage = "http://soundmodem.vk4msl.id.au/";
+    downloadPage = "https://archive.org/download/${name}-${version}/${name}-${version}.tar.gz";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/radio/soundmodem/matFix.patch b/pkgs/applications/radio/soundmodem/matFix.patch
new file mode 100644
index 0000000000000..55436cda3d414
--- /dev/null
+++ b/pkgs/applications/radio/soundmodem/matFix.patch
@@ -0,0 +1,11 @@
+--- a/matlib/mat.hh	2003-01-06 23:47:26.000000000 +0100
++++ b/matlib/mat.copy.hh	2021-01-06 10:05:34.332415179 +0100
+@@ -91,7 +91,7 @@
+                 memcpy(c, r, d1 * d3 * sizeof(c[0]));
+ }
+
+-template<typename T> void mdet(const T *c, unsigned int d)
++template<typename T> int mdet(const T *c, unsigned int d)
+ {
+         T *c2;
+         unsigned int i, j, k, l;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1796f04f308d6..71fb4bd60999e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -28667,6 +28667,8 @@ in
 
   snscrape = with python3Packages; toPythonApplication snscrape;
 
+  soundmodem = callPackage ../applications/radio/soundmodem {};
+
   soundOfSorting = callPackage ../misc/sound-of-sorting { };
 
   sourceAndTags = callPackage ../misc/source-and-tags {