Date: Sat, 17 Jul 2021 02:32:30 GMT From: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 4efef974205a - main - audio/portmidi: New port: Library for real time MIDI input and output Message-ID: <202107170232.16H2WUR4085245@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by acm: URL: https://cgit.FreeBSD.org/ports/commit/?id=4efef974205a73ebe689bd11db595e7ef3f23437 commit 4efef974205a73ebe689bd11db595e7ef3f23437 Author: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> AuthorDate: 2021-07-17 02:31:07 +0000 Commit: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> CommitDate: 2021-07-17 02:31:07 +0000 audio/portmidi: New port: Library for real time MIDI input and output PortMIDI is a cross platform (Windows, macOS, Linux, and BSDs which support alsalib) library for interfacing with operating systems' MIDI I/O APIs. It was started by Ross Bencina and Phil Burk, then maintained by Roger B. Dannenberg, and now maintained by the Mixxx DJ Software team. WWW: https://github.com/mixxxdj/portmidi --- audio/Makefile | 1 + audio/portmidi/Makefile | 20 +++++++++ audio/portmidi/distinfo | 3 ++ .../files/patch-src_portmidi_linux_finddefault.c | 21 +++++++++ audio/portmidi/files/patch-src_porttime_ptlinux.c | 51 ++++++++++++++++++++++ audio/portmidi/pkg-descr | 6 +++ audio/portmidi/pkg-plist | 10 +++++ 7 files changed, 112 insertions(+) diff --git a/audio/Makefile b/audio/Makefile index ddf0309c6e62..49276f145864 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -626,6 +626,7 @@ SUBDIR += poly-lv2 SUBDIR += polyphone SUBDIR += portaudio + SUBDIR += portmidi SUBDIR += praat SUBDIR += pragha SUBDIR += prelude-lv2 diff --git a/audio/portmidi/Makefile b/audio/portmidi/Makefile new file mode 100644 index 000000000000..e3f859e0061d --- /dev/null +++ b/audio/portmidi/Makefile @@ -0,0 +1,20 @@ +PORTNAME= portmidi +PORTVERSION= 235.0 +CATEGORIES= audio + +MAINTAINER= acm@FreeBSD.org +COMMENT= Library for real time MIDI input and output + +LICENSE= PL +LICENSE_NAME= PortMidi license +LICENSE_FILE= ${WRKSRC}/license.txt +LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept + +LIB_DEPENDS= libasound.so:audio/alsa-lib + +USES= cmake dos2unix localbase:ldflags + +USE_GITHUB= yes +GH_ACCOUNT= mixxxdj + +.include <bsd.port.mk> diff --git a/audio/portmidi/distinfo b/audio/portmidi/distinfo new file mode 100644 index 000000000000..b14169fd9758 --- /dev/null +++ b/audio/portmidi/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1626464614 +SHA256 (mixxxdj-portmidi-235.0_GH0.tar.gz) = 34cb2761b54965b2ffccf0cc50896e3460e2fd5336562469bd2bf3ce7ce7ae88 +SIZE (mixxxdj-portmidi-235.0_GH0.tar.gz) = 725719 diff --git a/audio/portmidi/files/patch-src_portmidi_linux_finddefault.c b/audio/portmidi/files/patch-src_portmidi_linux_finddefault.c new file mode 100644 index 000000000000..acff9dfac8cf --- /dev/null +++ b/audio/portmidi/files/patch-src_portmidi_linux_finddefault.c @@ -0,0 +1,21 @@ +--- src/portmidi/linux/finddefault.c.orig 2021-07-17 02:14:06 UTC ++++ src/portmidi/linux/finddefault.c +@@ -5,6 +5,9 @@ + #include <stdlib.h> + #include <stdio.h> + #include <string.h> ++#if defined(__FreeBSD__) ++#include <ctype.h> ++#endif + #include "portmidi.h" + + #define STRING_MAX 256 +@@ -27,7 +30,7 @@ int match_string(FILE *inf, char *s) + + + /* +-/* Parse preference files, find default device, search devices -- ++ * Parse preference files, find default device, search devices -- + */ + PmDeviceID find_default_device(char *path, int input, PmDeviceID id) + /* path -- the name of the preference we are searching for diff --git a/audio/portmidi/files/patch-src_porttime_ptlinux.c b/audio/portmidi/files/patch-src_porttime_ptlinux.c new file mode 100644 index 000000000000..6d04c73d9ca7 --- /dev/null +++ b/audio/portmidi/files/patch-src_porttime_ptlinux.c @@ -0,0 +1,51 @@ +--- src/porttime/ptlinux.c.orig 2021-07-17 02:14:06 UTC ++++ src/porttime/ptlinux.c +@@ -1,3 +1,4 @@ ++ + /* ptlinux.c -- portable timer implementation for linux */ + + +@@ -31,14 +32,14 @@ CHANGE LOG + #include "porttime.h" + #include "sys/time.h" + #include "sys/resource.h" +-#include "sys/timeb.h" + #include "pthread.h" + + #define TRUE 1 + #define FALSE 0 + + static int time_started_flag = FALSE; +-static struct timeb time_offset = {0, 0, 0, 0}; ++static struct timeval *time_offset; ++ + static pthread_t pt_thread_pid; + static int pt_thread_created = FALSE; + +@@ -79,7 +80,8 @@ static void *Pt_CallbackProc(void *p) + PtError Pt_Start(int resolution, PtCallback *callback, void *userData) + { + if (time_started_flag) return ptNoError; +- ftime(&time_offset); /* need this set before process runs */ ++ gettimeofday(time_offset, NULL); ++ + if (callback) { + int res; + pt_callback_parameters *parms = (pt_callback_parameters *) +@@ -121,10 +123,12 @@ int Pt_Started() + PtTimestamp Pt_Time() + { + long seconds, milliseconds; +- struct timeb now; +- ftime(&now); +- seconds = now.time - time_offset.time; +- milliseconds = now.millitm - time_offset.millitm; ++ struct timeval *now; ++ ++ gettimeofday(now, NULL); ++ ++ seconds = now->tv_sec - time_offset->tv_sec; ++ milliseconds = now->tv_usec - time_offset->tv_usec; + return seconds * 1000 + milliseconds; + } + diff --git a/audio/portmidi/pkg-descr b/audio/portmidi/pkg-descr new file mode 100644 index 000000000000..3b263dd52be6 --- /dev/null +++ b/audio/portmidi/pkg-descr @@ -0,0 +1,6 @@ +PortMIDI is a cross platform (Windows, macOS, Linux, and BSDs which support +alsalib) library for interfacing with operating systems' MIDI I/O APIs. It was +started by Ross Bencina and Phil Burk, then maintained by Roger B. Dannenberg, +and now maintained by the Mixxx DJ Software team. + +WWW: https://github.com/mixxxdj/portmidi diff --git a/audio/portmidi/pkg-plist b/audio/portmidi/pkg-plist new file mode 100644 index 000000000000..a2f8670ae7c6 --- /dev/null +++ b/audio/portmidi/pkg-plist @@ -0,0 +1,10 @@ +include/pmutil.h +include/portmidi.h +include/porttime.h +lib/cmake/PortMidi/PortMidiConfig.cmake +lib/cmake/PortMidi/PortMidiConfigVersion.cmake +lib/cmake/PortMidi/PortMidiTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/PortMidi/PortMidiTargets.cmake +lib/libportmidi.so +lib/libporttime.so +libdata/pkgconfig/portmidi.pc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107170232.16H2WUR4085245>