nixpkgs/pkgs/applications/radio/soundmodem/default.nix
2024-04-08 22:15:15 +02:00

49 lines
2.1 KiB
Nix

{ lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2, copyDesktopItems, makeDesktopItem }:
stdenv.mkDerivation rec {
pname = "soundmodem";
version = "0.20";
src = fetchurl {
url = "https://archive.org/download/soundmodem-${version}/soundmodem-${version}.tar.gz";
sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
};
nativeBuildInputs = [
pkg-config
copyDesktopItems
];
buildInputs = [ alsa-lib audiofile gtk2 libxml2 ];
patches = [ ./matFix.patch ];
doCheck = true;
desktopItems = [
(makeDesktopItem {
name = "SoundmodemConfig";
exec = "soundmodemconfig";
desktopName = "SoundModemConfig";
comment = "Audio based modem for ham radio supporting ax.25";
categories = [ "Audio" ];
})
];
meta = with 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/${pname}-${version}/${pname}-${version}.tar.gz";
license = licenses.gpl2Only;
maintainers = with maintainers; [ ymarkus ];
platforms = platforms.all;
};
}