The attached diff updates hydrogen to the latest version 1.2.6. Instead of updating the numerous patches and files for the sndio-backend, I have enabled portaudio and portmidi. This makes updating the port a lot easier. There are only a few patches left, some of them have already been upstreamed. Comments, test or OKs are welcome.
Index: Makefile =================================================================== RCS file: /cvs/ports/audio/hydrogen/Makefile,v retrieving revision 1.36 diff -u -p -u -p -r1.36 Makefile --- Makefile 13 Feb 2026 12:02:13 -0000 1.36 +++ Makefile 26 Jun 2026 10:34:37 -0000 @@ -1,71 +1,62 @@ COMMENT= software drum machine -V= 1.0.2 -DISTNAME= hydrogen-$V -CATEGORIES= audio -REVISION= 0 +V= 1.2.6 +DISTNAME= hydrogen-${V} +DISTFILES.doc= ${V}.tar.gz + +SHARED_LIBS= hydrogen-core-${V} 1.0 -HOMEPAGE= http://www.hydrogen-music.org/ +CATEGORIES= audio -SHARED_LIBS= hydrogen-core-$V 0.0 +HOMEPAGE= http://hydrogen-music.org/ # GPLv2 PERMIT_PACKAGE= Yes -WANTLIB += ${COMPILER_LIBCXX} archive c -WANTLIB += Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5Xml Qt5XmlPatterns -WANTLIB += lrdf m rubberband sndfile sndio z +WANTLIB += ${COMPILER_LIBCXX} GL Qt6Core Qt6Gui Qt6Network Qt6Svg +WANTLIB += Qt6Test Qt6Widgets Qt6Xml archive c execinfo lo lrdf +WANTLIB += m portaudio portmidi sndfile z SITES= ${SITE_SOURCEFORGE:=hydrogen/} +SITES.doc= https://github.com/hydrogen-music/documentation/archive/refs/tags/ -LIB_DEPENDS= audio/libsndfile \ - audio/rubberband \ +LIB_DEPENDS= audio/liblo \ + audio/libsndfile \ + audio/portaudio-svn \ + audio/portmidi \ archivers/libarchive \ textproc/liblrdf \ - x11/qt5/qtxmlpatterns + x11/qt6/qtsvg BUILD_DEPENDS= audio/ladspa \ devel/cppunit -RUN_DEPENDS= devel/desktop-file-utils +RUN_DEPENDS= devel/desktop-file-utils \ + x11/gtk+4,-guic \ + audio/rubberband MODULES= devel/cmake \ - x11/qt5 - -CONFIGURE_ENV= LADSPA_PATH=${LOCALBASE}/lib/ladspa + x11/qt6 CONFIGURE_ARGS= -DWANT_ALSA=OFF \ -DWANT_CPPUNIT=ON \ -DWANT_DEBUG=OFF \ -DWANT_JACK=OFF \ - -DWANT_JACKSESSION=OFF \ -DWANT_LADSPA=ON \ -DWANT_LRDF=ON \ - -DWANT_OSC=OFF \ - -DWANT_PORTAUDIO=OFF \ - -DWANT_PORTMIDI=OFF \ + -DWANT_OSC=ON \ + -DWANT_PORTAUDIO=ON \ + -DWANT_PORTMIDI=ON \ -DWANT_PULSEAUDIO=OFF \ - -DWANT_RUBBERBAND=ON \ - -DWANT_SNDIO=ON + -DWANT_QT6=ON \ + -DWANT_RUBBERBAND=OFF # Disable Doxygen CONFIGURE_ARGS += -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON -MODCMAKE_POLICY_VERSION_OVERRIDE = Yes - -post-extract: - cp ${FILESDIR}/Sndio{Audio,Midi}Driver.h \ - ${WRKSRC}/src/core/include/hydrogen/IO - cp ${FILESDIR}/sndio_{audio,midi}_driver.cpp \ - ${WRKSRC}/src/core/src/IO - -pre-configure: - find ${WRKSRC}/ -name "CMakeLists.txt" -type f -exec sed -i \ - -E 's/CMAKE_MINIMUM_REQUIRED\([[:space:]]*VERSION[[:space:]]+[^)]+\)/cmake_minimum_required(VERSION 3.5)/g' \ - {} \; - post-install: - cp -rp ${WRKSRC}/data/doc ${PREFIX}/share/doc/hydrogen + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/hydrogen + cp -rp ${WRKDIR}/documentation-${V}/* ${PREFIX}/share/doc/hydrogen/ do-test: cd ${WRKSRC} && ${WRKBUILD}/src/tests/tests Index: distinfo =================================================================== RCS file: /cvs/ports/audio/hydrogen/distinfo,v retrieving revision 1.9 diff -u -p -u -p -r1.9 distinfo --- distinfo 26 Apr 2023 21:18:22 -0000 1.9 +++ distinfo 26 Jun 2026 10:34:37 -0000 @@ -1,2 +1,4 @@ -SHA256 (hydrogen-1.0.2.tar.gz) = RHkQkAlruQnMcE3wVHVroUBnSUSvhnuFCX90DyuhNZc= -SIZE (hydrogen-1.0.2.tar.gz) = 15075455 +SHA256 (1.2.6.tar.gz) = N1zn1GCosz5FEEIzDv9Ezv//0K0iDVCyxJsFfSsBKX8= +SHA256 (hydrogen-1.2.6.tar.gz) = 77oyYQSYrN52+i4UcBfJGyDBPslF4F40jNQYP9FhO+E= +SIZE (1.2.6.tar.gz) = 41540294 +SIZE (hydrogen-1.2.6.tar.gz) = 14412178 Index: files/SndioAudioDriver.h =================================================================== RCS file: files/SndioAudioDriver.h diff -N files/SndioAudioDriver.h --- files/SndioAudioDriver.h 8 Jun 2019 18:42:32 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2009 Jacob Meuser <jakemsr@sdf.lonestar.org> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef SNDIO_AUDIO_DRIVER_H -#define SNDIO_AUDIO_DRIVER_H - -#include <hydrogen/IO/AudioOutput.h> -#include <hydrogen/IO/NullDriver.h> - -#ifdef H2CORE_HAVE_SNDIO - -#include <sys/types.h> -#include <sys/stat.h> -#include <stdio.h> -#include <unistd.h> -#include <inttypes.h> - -#include <iostream> - -#include <sndio.h> - -#include <hydrogen/globals.h> - - -namespace H2Core -{ - -typedef int (*audioProcessCallback)(uint32_t, void *); - -/* - * SNDIO Audio Driver - */ -class SndioAudioDriver : public AudioOutput -{ - H2_OBJECT -public: - SndioAudioDriver(audioProcessCallback processCallback); - ~SndioAudioDriver(); - - int init(unsigned bufferSize); - int connect(); - void disconnect(); - - void write(); - unsigned getBufferSize(); - unsigned getSampleRate(); - float* getOut_L(); - float* getOut_R(); - - virtual void play(); - virtual void stop(); - virtual void locate(unsigned long nFrame); - virtual void updateTransportInfo(); - virtual void setBpm(float fBPM); - -private: - struct sio_hdl *hdl; - struct sio_par par; - - short* audioBuffer; - float* out_L; - float* out_R; - - audioProcessCallback processCallback; -}; - -#else - -namespace H2Core { - SndioAudioDriver(audioProcessCallback processCallback) : NullDriver(processCallback) {} - -}; - -
No comments:
Post a Comment