Download raw body.
[update] audio/portmidi 217 to 2.0.4
The diff below updates audio/portmidi to 2.0.4.
(I have already submitted this update some time ago, see
https://marc.info/?l=openbsd-ports&m=168824866808246)
The project has moved to github and the version numbering scheme has changed.
A list of changes is here: https://github.com/PortMidi/portmidi/releases
I have build-tested the following dependent ports:
audio/audacity
audio/mscore
devel/pygame
emulators/hatari
games/dsda-doom
games/odamex
graphics/darktable
Everything seems to work as before, except for audio/mscore, which is now
picking up portmidi. I will send a diff for mscore as soon as this diff is
committed.
I'm not 100% sure that no other port is picking it up, but I don't think so.
Any comments or oks?
Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/portmidi/Makefile,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 Makefile
--- Makefile 7 Nov 2023 14:19:20 -0000 1.7
+++ Makefile 8 May 2025 13:04:24 -0000
@@ -1,33 +1,24 @@
COMMENT = library for real time input and output of MIDI data
-DISTNAME = portmidi-src-217
-PKGNAME = portmidi-217
-REVISION = 1
+GH_ACCOUNT = PortMidi
+GH_PROJECT = portmidi
+GH_TAGNAME = v2.0.4
+EPOCH = 0
-SHARED_LIBS = portmidi 0.0
+SHARED_LIBS = portmidi 1.0
CATEGORIES = audio
-HOMEPAGE = https://portmedia.sourceforge.net/
-
# ISC
PERMIT_PACKAGE = Yes
WANTLIB = pthread sndio
-SITES = ${SITE_SOURCEFORGE:=portmedia/}
-EXTRACT_SUFX = .zip
-
-MODULES = devel/cmake
+MODULES = devel/cmake
-CONFIGURE_ARGS+= -DPROJECT_BINARY_DIR=Release \
- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=${WRKBUILD}/Release \
- -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${WRKBUILD}/Release \
- -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${WRKBUILD}/Release
+CONFIGURE_ARGS+= -DUSE_SNDIO=ON
NO_TEST = Yes
-
-WRKDIST = ${WRKDIR}/portmidi
FIX_CRLF_FILES = porttime/ptlinux.c
Index: distinfo
===================================================================
RCS file: /cvs/ports/audio/portmidi/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 distinfo
--- distinfo 23 Mar 2019 13:30:08 -0000 1.1.1.1
+++ distinfo 8 May 2025 13:04:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (portmidi-src-217.zip) = COmokr2AvbERUhP7ctwpp78v8QizeBgFhqpl88/ULg8=
-SIZE (portmidi-src-217.zip) = 1030830
+SHA256 (portmidi-2.0.4.tar.gz) = ZIk+gjrhRsq9Otf5qanFMydGq+eEfFV7mbJXevqKYHw=
+SIZE (portmidi-2.0.4.tar.gz) = 263225
Index: files/portmidi.pc.in
===================================================================
RCS file: /cvs/ports/audio/portmidi/files/portmidi.pc.in,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 portmidi.pc.in
--- files/portmidi.pc.in 23 Mar 2019 13:30:08 -0000 1.1.1.1
+++ files/portmidi.pc.in 8 May 2025 13:04:24 -0000
@@ -1,11 +0,0 @@
-prefix=@DEST_DIR@
-exec_prefix=${prefix}
-libdir=${prefix}/lib
-includedir=${prefix}/include
-
-Name: libportmidi
-Description: Portable midi I/O
-Version: 217
-
-Libs: -L${libdir} -lportmidi
-Cflags: -I${includedir}
Index: files/pm_sndio/pmsndio.c
===================================================================
RCS file: /cvs/ports/audio/portmidi/files/pm_sndio/pmsndio.c,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 pmsndio.c
--- files/pm_sndio/pmsndio.c 10 May 2019 12:55:19 -0000 1.2
+++ files/pm_sndio/pmsndio.c 8 May 2025 13:04:24 -0000
@@ -12,8 +12,8 @@
#include "pminternal.h"
#include "porttime.h"
-#define NDEVS 9
-#define SYSEX_MAXLEN 1024
+#define NDEVS 9
+#define SYSEX_MAXLEN 1024
#define SYSEX_START 0xf0
#define SYSEX_END 0xf7
@@ -45,18 +45,18 @@ void pm_init()
/* default */
strcpy(devs[0].name, MIO_PORTANY);
- pm_add_device("SNDIO", devs[k].name, TRUE, (void *) &devs[k],
+ pm_add_device("SNDIO", devs[k].name, TRUE, FALSE, (void *) &devs[k],
&pm_sndio_in_dictionary);
- pm_add_device("SNDIO", devs[k].name, FALSE, (void *) &devs[k],
+ pm_add_device("SNDIO", devs[k].name, FALSE, FALSE, (void *) &devs[k],
&pm_sndio_out_dictionary);
k++;
for (i = 0; i < 4; i++) {
for (j = 0; j < 2; j++) {
sprintf(devs[k].name, "%s/%d", devices[i], j);
- pm_add_device("SNDIO", devs[k].name, TRUE, (void *) &devs[k],
+ pm_add_device("SNDIO", devs[k].name, TRUE, FALSE, (void *) &devs[k],
&pm_sndio_in_dictionary);
- pm_add_device("SNDIO", devs[k].name, FALSE, (void *) &devs[k],
+ pm_add_device("SNDIO", devs[k].name, FALSE, FALSE, (void *) &devs[k],
&pm_sndio_out_dictionary);
k++;
}
@@ -85,7 +85,7 @@ void pm_term(void)
PmDeviceID Pm_GetDefaultInputDeviceID() {
Pm_Initialize();
- return pm_default_input_device_id;
+ return pm_default_input_device_id;
}
PmDeviceID Pm_GetDefaultOutputDeviceID() {
@@ -107,14 +107,14 @@ static int midi_message_length(PmMessage
return common_len[st & 7];
else if (st >= 0x80)
return voice_len[(st >> 4) & 7];
- else
+ else
return 0;
}
void* input_thread(void *param)
{
PmInternal *midi = (PmInternal*)param;
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
struct pollfd pfd[1];
nfds_t nfds;
unsigned char st = 0, c = 0;
@@ -206,8 +206,7 @@ static void set_mode(struct mio_dev *dev
static PmError sndio_out_open(PmInternal *midi, void *driverInfo)
{
- descriptor_type desc = &descriptors[midi->device_id];
- struct mio_dev *dev = (struct mio_dev *) desc->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
if (dev->mode & MIO_OUT)
return pmNoError;
@@ -219,14 +218,12 @@ static PmError sndio_out_open(PmInternal
return pmHostError;
}
- midi->descriptor = (void *)dev;
return pmNoError;
}
static PmError sndio_in_open(PmInternal *midi, void *driverInfo)
{
- descriptor_type desc = &descriptors[midi->device_id];
- struct mio_dev *dev = (struct mio_dev *) desc->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
if (dev->mode & MIO_IN)
return pmNoError;
@@ -237,7 +234,6 @@ static PmError sndio_in_open(PmInternal
"mio_open (input) failed: %s\n", dev->name);
return pmHostError;
}
- midi->descriptor = (void *)dev;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&dev->thread, &attr, input_thread, ( void* )midi);
@@ -246,7 +242,7 @@ static PmError sndio_in_open(PmInternal
static PmError sndio_out_close(PmInternal *midi)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
if (dev->mode & MIO_OUT)
set_mode(dev, dev->mode & ~MIO_OUT);
@@ -255,7 +251,7 @@ static PmError sndio_out_close(PmInterna
static PmError sndio_in_close(PmInternal *midi)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
if (dev->mode & MIO_IN) {
set_mode(dev, dev->mode & ~MIO_IN);
@@ -280,7 +276,7 @@ static PmError do_write(struct mio_dev *
size_t w = mio_write(dev->hdl, addr, nbytes);
if (w != nbytes) {
- snprintf(dev->errmsg, PM_HOST_ERROR_MSG_LEN,
+ snprintf(dev->errmsg, PM_HOST_ERROR_MSG_LEN,
"mio_write failed, bytes written:%zu\n", w);
return pmHostError;
}
@@ -290,14 +286,19 @@ static PmError do_write(struct mio_dev *
static PmError sndio_write_byte(PmInternal *midi, unsigned char byte,
PmTimestamp timestamp)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
- return do_write(dev, &byte, 1);
+ if (midi->latency > 0) {
+ /* XXX the byte should be queued for later playback */
+ return do_write(dev, &byte, 1);
+ } else {
+ return do_write(dev, &byte, 1);
+ }
}
static PmError sndio_write_short(PmInternal *midi, PmEvent *event)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
int nbytes = midi_message_length(event->message);
if (midi->latency > 0) {
@@ -321,14 +322,14 @@ PmError sndio_sysex(PmInternal *midi, Pm
static unsigned int sndio_has_host_error(PmInternal *midi)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
return (dev->errmsg[0] != '\0');
}
static void sndio_get_host_error(PmInternal *midi, char *msg, unsigned int len)
{
- struct mio_dev *dev = (struct mio_dev *) midi->descriptor;
+ struct mio_dev *dev = pm_descriptors[midi->device_id].descriptor;
strlcpy(msg, dev->errmsg, len);
dev->errmsg[0] = '\0';
@@ -347,7 +348,6 @@ pm_fns_node pm_sndio_in_dictionary = {
sndio_in_close,
success_poll,
sndio_has_host_error,
- sndio_get_host_error
};
pm_fns_node pm_sndio_out_dictionary = {
@@ -363,6 +363,5 @@ pm_fns_node pm_sndio_out_dictionary = {
sndio_out_close,
none_poll,
sndio_has_host_error,
- sndio_get_host_error
};
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/audio/portmidi/patches/patch-CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt 11 Mar 2022 18:20:27 -0000 1.2
+++ patches/patch-CMakeLists_txt 8 May 2025 13:04:24 -0000
@@ -1,16 +1,24 @@
+-Option USE_SNDIO
+-Install static lib as well
+
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
-@@ -73,5 +73,11 @@ add_subdirectory(pm_test)
- add_subdirectory(pm_dylib)
+@@ -26,6 +26,8 @@ option(PM_USE_STATIC_RUNTIME
+ "Use MSVC static runtime. Only applies when BUILD_SHARED_LIBS is OFF"
+ ON)
- # Cannot figure out how to make an xcode Java application with CMake
--add_subdirectory(pm_java)
-+#add_subdirectory(pm_java)
++option(USE_SNDIO "Use sndio backend" OFF)
++
+ # MSVCRT_DLL is used to construct the MSVC_RUNTIME_LIBRARY property
+ # (see pm_common/CMakeLists.txt and pm_test/CMakeLists.txt)
+ if(PM_USE_STATIC_RUNTIME AND NOT BUILD_SHARED_LIBS)
+@@ -117,7 +119,7 @@ if(BUILD_JAVA_NATIVE_INTERFACE)
+ endif(BUILD_JAVA_NATIVE_INTERFACE)
-+set(DEST_DIR "${CMAKE_INSTALL_PREFIX}")
-+CONFIGURE_FILE("portmidi.pc.in" "portmidi.pc" @ONLY)
-+install(FILES
-+ "${CMAKE_CURRENT_BINARY_DIR}/portmidi.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig"
-+)
+ # Install the libraries and headers (Linux and Mac OS X command line)
+-INSTALL(TARGETS portmidi ${PMJNI_IF_EXISTS}
++INSTALL(TARGETS portmidi portmidi_s ${PMJNI_IF_EXISTS}
+ EXPORT PortMidiTargets
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
Index: patches/patch-pm_common_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/audio/portmidi/patches/patch-pm_common_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-pm_common_CMakeLists_txt
--- patches/patch-pm_common_CMakeLists_txt 11 Mar 2022 18:20:27 -0000 1.2
+++ patches/patch-pm_common_CMakeLists_txt 8 May 2025 13:04:24 -0000
@@ -1,55 +1,42 @@
+-Build static library as well
+-Use sndio backend
+
Index: pm_common/CMakeLists.txt
--- pm_common/CMakeLists.txt.orig
+++ pm_common/CMakeLists.txt
-@@ -66,21 +66,12 @@ if(UNIX)
- set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
- message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
- else(APPLE)
-- # LINUX settings...
-- include(FindJNI)
-- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
-- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
-- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
-- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
-- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
-- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
-- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
+@@ -37,9 +37,10 @@ set(PM_LIB_PUBLIC_SRC ${PMDIR}/pm_common/portmidi.c
+ ${PMDIR}/pm_common/pmutil.c
+ ${PMDIR}/porttime/porttime.c)
+ add_library(portmidi ${PM_LIB_PUBLIC_SRC})
++add_library(portmidi_s STATIC ${PM_LIB_PUBLIC_SRC})
-- set(LINUXSRC pmlinuxalsa pmlinux finddefault)
-- prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
-+ set(LINUXSRC pmsndio)
-+ prepend_path(LIBSRC ../pm_sndio/ ${LINUXSRC})
- list(APPEND LIBSRC ../porttime/ptlinux)
+ # MSVCRT_DLL is "DLL" for shared runtime library, and "" for static:
+-set_target_properties(portmidi PROPERTIES
++set_target_properties(portmidi portmidi_s PROPERTIES
+ VERSION ${LIBRARY_VERSION}
+ SOVERSION ${LIBRARY_SOVERSION}
+ OUTPUT_NAME "${PM_ACTUAL_LIB_NAME}"
+@@ -78,8 +79,22 @@ if(NOT WIN32)
+ find_package(Threads REQUIRED)
+ endif()
-- set(PM_NEEDED_LIBS pthread asound)
-+ set(PM_NEEDED_LIBS pthread sndio)
- endif(APPLE)
- else(UNIX)
- if(WIN32)
-@@ -99,7 +90,6 @@ else(UNIX)
- set(PM_NEEDED_LIBS winmm.lib)
- endif(WIN32)
- endif(UNIX)
--set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
-
- # this completes the list of library sources by adding shared code
- list(APPEND LIBSRC pmutil portmidi)
-@@ -109,17 +99,10 @@ add_library(portmidi-static ${LIBSRC})
- set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
- target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
-
--# define the jni library
--include_directories(${JAVA_INCLUDE_PATHS})
-
--set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
--add_library(pmjni SHARED ${JNISRC})
--target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
--set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
--
- # install the libraries (Linux and Mac OS X command line)
- if(UNIX)
-- INSTALL(TARGETS portmidi-static pmjni
-+ INSTALL(TARGETS portmidi-static
- LIBRARY DESTINATION /usr/local/lib
- ARCHIVE DESTINATION /usr/local/lib)
- # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
++# Check for sndio
++include (FindPackageHandleStandardArgs)
++find_path(SNDIO_INCLUDE_DIRS NAMES sndio.h)
++find_library(SNDIO_LIBRARY sndio)
++find_package_handle_standard_args(Sndio
++ REQUIRED_VARS SNDIO_LIBRARY SNDIO_INCLUDE_DIRS)
++
+ # first include the appropriate system-dependent file:
+-if(UNIX AND APPLE)
++if(SNDIO_FOUND AND USE_SNDIO)
++ set(PM_LIB_PRIVATE_SRC
++ ${PMDIR}/porttime/ptlinux.c
++ ${PMDIR}/pm_sndio/pmsndio.c)
++ set(PM_NEEDED_LIBS Threads::Threads ${SNDIO_LIBRARY} PARENT_SCOPE)
++ target_link_libraries(portmidi PRIVATE Threads::Threads ${SNDIO_LIBRARY})
++ target_include_directories(portmidi PRIVATE ${SNDIO_INCLUDE_DIRS})
++elseif(UNIX AND APPLE)
+ set(Threads::Threads "" PARENT_SCOPE)
+ find_library(COREAUDIO_LIBRARY CoreAudio REQUIRED)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation REQUIRED)
Index: patches/patch-pm_dylib_CMakeLists_txt
===================================================================
RCS file: patches/patch-pm_dylib_CMakeLists_txt
diff -N patches/patch-pm_dylib_CMakeLists_txt
--- patches/patch-pm_dylib_CMakeLists_txt 11 Mar 2022 18:20:27 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-Index: pm_dylib/CMakeLists.txt
---- pm_dylib/CMakeLists.txt.orig
-+++ pm_dylib/CMakeLists.txt
-@@ -62,30 +62,11 @@ if(UNIX)
- set(INSTALL_NAME_DIR "/usr/local/lib")
- message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
- else(APPLE)
-- # LINUX settings...
-- include(FindJNI)
-- # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
-- # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
-- # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
-- # note: user might need to set JAVA_INCLUDE_PATH manually
-- #
-- # this will probably break on BSD and other Unix systems; the fix
-- # depends on whether FindJNI can find Java or not. If yes, then
-- # we should try to rely on automatically set JAVA_INCLUDE_PATH and
-- # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
-- # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
-- # because JAVA_INCLUDE_PATH2 is pretty obscure)
-- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN}
-- CACHE STRING "where to find Java SDK include directory")
-- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
-- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
-- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
--
-- set(LINUXSRC pmlinuxalsa pmlinux finddefault)
-- prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
-+ set(LINUXSRC pmsndio)
-+ prepend_path(LIBSRC ../pm_sndio/ ${LINUXSRC})
- list(APPEND LIBSRC ../porttime/ptlinux)
-
-- set(PM_NEEDED_LIBS pthread asound)
-+ set(PM_NEEDED_LIBS pthread sndio)
- endif(APPLE)
- else(UNIX)
- if(WIN32)
Index: patches/patch-pm_test_CMakeLists_txt
===================================================================
RCS file: patches/patch-pm_test_CMakeLists_txt
diff -N patches/patch-pm_test_CMakeLists_txt
--- patches/patch-pm_test_CMakeLists_txt 11 Mar 2022 18:20:27 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-Index: pm_test/CMakeLists.txt
---- pm_test/CMakeLists.txt.orig
-+++ pm_test/CMakeLists.txt
-@@ -1,4 +1,5 @@
- # pm_test
-+cmake_policy(SET CMP0037 OLD)
-
- # set the build directory to be in portmidi, not in portmidi/pm_test
- # this is required for Xcode:
Index: patches/patch-porttime_ptlinux_c
===================================================================
RCS file: /cvs/ports/audio/portmidi/patches/patch-porttime_ptlinux_c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-porttime_ptlinux_c
--- patches/patch-porttime_ptlinux_c 11 Mar 2022 18:20:27 -0000 1.3
+++ patches/patch-porttime_ptlinux_c 8 May 2025 13:04:24 -0000
@@ -1,47 +1,22 @@
+Upstream commit 3209da8c9865efa3dbc1a2e642350c154df20d2a
+
Index: porttime/ptlinux.c
--- porttime/ptlinux.c.orig
+++ porttime/ptlinux.c
-@@ -31,14 +31,13 @@ CHANGE LOG
+@@ -31,11 +31,15 @@ CHANGE LOG
#include "porttime.h"
- #include "sys/time.h"
+ #include "time.h"
#include "sys/resource.h"
-#include "sys/timeb.h"
#include "pthread.h"
#define TRUE 1
#define FALSE 0
++
++#ifndef CLOCK_MONOTONIC_RAW
++ #define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC
++#endif
++
static int time_started_flag = FALSE;
--static struct timeb time_offset = {0, 0, 0, 0};
-+static struct timespec time_offset = {0, 0};
- static pthread_t pt_thread_pid;
- static int pt_thread_created = FALSE;
-
-@@ -79,7 +78,7 @@ 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 */
-+ clock_gettime(CLOCK_MONOTONIC, &time_offset); /* need this set before process runs */
- if (callback) {
- int res;
- pt_callback_parameters *parms = (pt_callback_parameters *)
-@@ -120,12 +119,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;
-- return seconds * 1000 + milliseconds;
-+ long seconds, nanoseconds;
-+ struct timespec now;
-+ clock_gettime(CLOCK_MONOTONIC, &now);
-+ seconds = now.tv_sec - time_offset.tv_sec;
-+ nanoseconds = now.tv_nsec - time_offset.tv_nsec;
-+ return seconds * 1000 + nanoseconds / 1000000;
- }
-
-
+ static struct timespec time_offset = {0, 0};
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/audio/portmidi/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 PLIST
--- pkg/PLIST 11 Mar 2022 18:20:27 -0000 1.2
+++ pkg/PLIST 8 May 2025 13:04:24 -0000
@@ -1,5 +1,12 @@
+include/pmutil.h
include/portmidi.h
include/porttime.h
+lib/cmake/
+lib/cmake/PortMidi/
+lib/cmake/PortMidi/PortMidiConfig.cmake
+lib/cmake/PortMidi/PortMidiConfigVersion.cmake
+lib/cmake/PortMidi/PortMidiTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/PortMidi/PortMidiTargets.cmake
+@static-lib lib/libportmidi.a
@lib lib/libportmidi.so.${LIBportmidi_VERSION}
-lib/libportmidi_s.a
lib/pkgconfig/portmidi.pc
[update] audio/portmidi 217 to 2.0.4