This version uses Qt5 and adds support for midi output. Here is a list of new features: https://github.com/hydrogen-music/hydrogen/releases
(The OSC support is disabled for now as it needs audio/liblo, see https://marc.info/?l=openbsd-ports-cvs&m=150971570107043) Comments, ok?
Index: Makefile =================================================================== RCS file: /cvs/ports/audio/hydrogen/Makefile,v retrieving revision 1.27 diff -u -p -u -p -r1.27 Makefile --- Makefile 12 Jul 2019 20:43:34 -0000 1.27 +++ Makefile 21 Feb 2020 16:24:00 -0000 @@ -2,55 +2,59 @@ COMMENT= software drum machine -DISTNAME= hydrogen-0.9.7 +DISTNAME= hydrogen-1.0.0-beta1 CATEGORIES= audio HOMEPAGE= http://www.hydrogen-music.org/ -SHARED_LIBS= hydrogen-core-0.9.7 0.0 +SHARED_LIBS= hydrogen-core-1.0.0 0.0 # GPLv2 PERMIT_PACKAGE= Yes -WANTLIB += ${COMPILER_LIBCXX} QtGui QtNetwork QtXml QtXmlPatterns archive c -WANTLIB += lrdf m sndfile sndio z +WANTLIB += ${COMPILER_LIBCXX} archive c +WANTLIB += Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5Xml Qt5XmlPatterns +WANTLIB += lrdf m rubberband sndfile sndio z MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=hydrogen/} -COMPILER = base-clang ports-gcc base-gcc - LIB_DEPENDS= audio/libsndfile \ + audio/rubberband \ archivers/libarchive \ - textproc/liblrdf + textproc/liblrdf \ + x11/qt5/qtxmlpatterns -BUILD_DEPENDS= audio/ladspa +BUILD_DEPENDS= audio/ladspa \ + devel/cppunit RUN_DEPENDS= devel/desktop-file-utils MODULES= devel/cmake \ - x11/qt4 + x11/qt5 CONFIGURE_ENV= LADSPA_PATH=${LOCALBASE}/lib/ladspa CONFIGURE_ARGS= -DWANT_ALSA=OFF \ - -DWANT_CPPUNIT=OFF \ + -DWANT_CPPUNIT=ON \ -DWANT_DEBUG=OFF \ -DWANT_JACK=OFF \ -DWANT_JACKSESSION=OFF \ -DWANT_LADSPA=ON \ -DWANT_LRDF=ON \ - -DWANT_NSMSESSION=OFF \ + -DWANT_OSC=OFF \ -DWANT_PORTAUDIO=OFF \ -DWANT_PORTMIDI=OFF \ -DWANT_PULSEAUDIO=OFF \ + -DWANT_RUBBERBAND=ON \ -DWANT_SNDIO=ON -NO_TEST= 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 + +do-test: + cd ${WRKSRC} && ${WRKBUILD}/src/tests/tests .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/audio/hydrogen/distinfo,v retrieving revision 1.6 diff -u -p -u -p -r1.6 distinfo --- distinfo 8 Jun 2019 18:42:32 -0000 1.6 +++ distinfo 21 Feb 2020 16:24:00 -0000 @@ -1,2 +1,2 @@ -SHA256 (hydrogen-0.9.7.tar.gz) = zYNV6Qk9AwGDDmJf45+OI4usrdk+WlVsF1yLUG7UOCI= -SIZE (hydrogen-0.9.7.tar.gz) = 6420359 +SHA256 (hydrogen-1.0.0-beta1.tar.gz) = G2eNj1bvrARejfFeL6H6lRJ5lyvZtvGWcvv+vpBOlBo= +SIZE (hydrogen-1.0.0-beta1.tar.gz) = 13744583 Index: files/SndioMidiDriver.h =================================================================== RCS file: /cvs/ports/audio/hydrogen/files/SndioMidiDriver.h,v retrieving revision 1.2 diff -u -p -u -p -r1.2 SndioMidiDriver.h --- files/SndioMidiDriver.h 8 Jun 2019 18:42:32 -0000 1.2 +++ files/SndioMidiDriver.h 21 Feb 2020 16:24:00 -0000 @@ -18,6 +18,7 @@ #define SNDIO_MIDI_DRIVER_H #include <hydrogen/IO/MidiInput.h> +#include <hydrogen/IO/MidiOutput.h> #ifdef H2CORE_HAVE_SNDIO @@ -26,7 +27,7 @@ namespace H2Core { -class SndioMidiDriver : public virtual MidiInput +class SndioMidiDriver : public virtual MidiInput, public virtual MidiOutput { H2_OBJECT public: @@ -39,6 +40,11 @@ public: virtual void open(); virtual void close(); virtual std::vector<QString> getOutputPortList(); + + virtual void handleQueueNote( Note* pNote ); + virtual void handleQueueNoteOff( int channel, int key, int velocity ); + virtual void handleQueueAllNoteOff(); + virtual void handleOutgoingControlChange( int param, int value, int channel ); private: Index: files/sndio_audio_driver.cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/files/sndio_audio_driver.cpp,v retrieving revision 1.2 diff -u -p -u -p -r1.2 sndio_audio_driver.cpp --- files/sndio_audio_driver.cpp 8 Jun 2019 18:42:32 -0000 1.2 +++ files/sndio_audio_driver.cpp 21 Feb 2020 16:24:00 -0000 @@ -91,15 +91,13 @@ int SndioAudioDriver::connect() Preferences *preferencesMng = Preferences::get_instance(); struct sio_par reqpar; - char audioDevice[32]; + QString audioDevice = preferencesMng->m_sSndioDevice; - snprintf(audioDevice, 32, preferencesMng->m_sSndioDevice.toAscii()); - - if (strncmp(audioDevice, "", 1) == 0 || - strncmp(audioDevice, "default", 8) == 0) + if (audioDevice == "" || + audioDevice == "default") hdl = sio_open(NULL, SIO_PLAY, 0); else - hdl = sio_open(audioDevice, SIO_PLAY, 0); + hdl = sio_open(audioDevice.toLocal8Bit(), SIO_PLAY, 0); if (hdl == NULL) { ERRORLOG("sio_open failed"); Index: files/sndio_midi_driver.cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/files/sndio_midi_driver.cpp,v retrieving revision 1.3 diff -u -p -u -p -r1.3 sndio_midi_driver.cpp --- files/sndio_midi_driver.cpp 8 Jun 2019 18:42:32 -0000 1.3 +++ files/sndio_midi_driver.cpp 21 Feb 2020 16:24:00 -0000 @@ -20,6 +20,10 @@ #include <poll.h> #include <pthread.h> +#include <hydrogen/hydrogen.h> +#include <hydrogen/basics/note.h> +#include <hydrogen/basics/instrument.h> +#include <hydrogen/basics/instrument_list.h> #include <hydrogen/Preferences.h> namespace H2Core @@ -183,7 +187,7 @@ void* SndioMidiDriver_thread( void* para } SndioMidiDriver::SndioMidiDriver() - : MidiInput("SndioMidiDriver"), Object( "SndioMidiDriver" ) + : MidiInput("SndioMidiDriver"), MidiOutput("SndioMidiDriver"), Object( "SndioMidiDriver" ) , m_bRunning(false) { hdl = NULL; @@ -198,18 +202,16 @@ SndioMidiDriver::~SndioMidiDriver() void SndioMidiDriver::open() { - char midiDevice[32]; + QString midiDevice = Preferences::get_instance()->m_sMidiPortName; INFOLOG("SndioMidiDriver::open"); - snprintf(midiDevice, 32, (Preferences::get_instance()->m_sMidiPortName).toAscii()); - - if (strncmp(midiDevice, "", 1) == 0 || - strncmp(midiDevice, "None", 5) == 0 || - strncmp(midiDevice, "default", 8) == 0) - hdl = mio_open(MIO_PORTANY, MIO_IN, 0); + if (midiDevice == "" || + midiDevice == "None" || + midiDevice == "default") + hdl = mio_open(MIO_PORTANY, MIO_IN | MIO_OUT, 0); else - hdl = mio_open(midiDevice, MIO_IN, 0); + hdl = mio_open(midiDevice.toLocal8Bit(), MIO_IN | MIO_OUT, 0); if (!hdl) { ERRORLOG("mio_open failed"); @@ -257,6 +259,76 @@ std::vector<QString> SndioMidiDriver::ge } return portList; +} + +void SndioMidiDriver::handleQueueNote( Note* pNote ) +{ + uint8_t data[3]; + int key = pNote->get_midi_key(); + int velocity = pNote->get_midi_velocity(); + int channel = pNote->get_instrument()->get_midi_out_channel(); + + if (!hdl || channel < 0) + return; + + data[0] = 0x80 | channel; + data[1] = key; + data[2] = velocity; + mio_write(hdl, data, 3); + + data[0] = 0x90 | channel; + mio_write(hdl, data, 3); +} + +void SndioMidiDriver::handleQueueNoteOff( int channel, int key, int velocity ) +{ + uint8_t data[3]; + + if (!hdl) + return; + + data[0] = 0x80 | channel; + data[1] = key; + data[2] = velocity; + mio_write(hdl, data, 3); +} + +void SndioMidiDriver::handleQueueAllNoteOff() +{ + uint8_t data[3]; + InstrumentList *instList = Hydrogen::get_instance()->getSong()->get_instrument_list(); + Instrument *curInst; + int channel; + int key; + unsigned int numInstruments = instList->size(); + + if (!hdl) + return; + + for (int index = 0; index < numInstruments; ++index) { + curInst = instList->get(index); + channel = curInst->get_midi_out_channel(); + if (channel < 0) { + continue; + } + key = curInst->get_midi_out_note(); + data[0] = 0x80 | channel; + data[1] = key; + data[2] = 0; + mio_write(hdl, data, 3); + } +} + +void SndioMidiDriver::handleOutgoingControlChange( int param, int value, int channel ) +{ + uint8_t data[3]; + + if (!hdl || channel < 0) + return; + + data[0] = 0xB0 | channel; + data[1] = param; + data[2] = value; } }; Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-CMakeLists_txt,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 8 Jun 2019 18:42:32 -0000 1.1 +++ patches/patch-CMakeLists_txt 21 Feb 2020 16:24:00 -0000 @@ -5,23 +5,24 @@ Add sndio support Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -63,6 +63,7 @@ ELSE() - OPTION(WANT_OSS "Include OSS (Open Sound System) support" OFF) +@@ -45,6 +45,8 @@ ELSE() + OPTION(WANT_ALSA "Include ALSA (Advanced Linux Sound Architecture) support" ON) ENDIF() -+OPTION(WANT_SNDIO "Include Sndio support" ON) - OPTION(WANT_ALSA "Include ALSA (Advanced Linux Sound Architecture) support" ON) - IF(MINGW) - OPTION(WANT_JACK "Include JACK (Jack Audio Connection Kit) support" ON) -@@ -193,6 +194,7 @@ IF( WANT_LIBARCHIVE AND LIBARCHIVE_FOUND) ++OPTION(WANT_SNDIO "Include Sndio support" ON) ++ + OPTION(WANT_LIBARCHIVE "Enable use of libarchive instead of libtar" ON) + OPTION(WANT_LADSPA "Enable use of LADSPA plugins" ON) + +@@ -197,6 +199,7 @@ IF( WANT_LIBARCHIVE AND LIBARCHIVE_FOUND) SET(WANT_LIBTAR FALSE) ENDIF() FIND_HELPER(LIBSNDFILE sndfile sndfile.h sndfile) -+INCLUDE_DIRECTORIES(${LIBSNDFILE_INCLUDE_DIR}) ++INCLUDE_DIRECTORIES(${LIBSNDFILE_INCLUDE_DIRS}) FIND_HELPER(ALSA alsa alsa/asoundlib.h asound ) FIND_LADSPA(LADSPA ladspa.h noise) -@@ -204,6 +206,8 @@ ELSE() +@@ -208,6 +211,8 @@ ELSE() FIND_HELPER(OSS oss sys/soundcard.h OSSlib ) ENDIF() @@ -30,16 +31,16 @@ Index: CMakeLists.txt FIND_HELPER(JACK jack jack/jack.h jack) CHECK_LIBRARY_EXISTS(jack jack_port_rename "" HAVE_JACK_PORT_RENAME) FIND_HELPER(JACKSESSION jack jack/session.h jack) -@@ -243,7 +247,7 @@ endif(DOXYGEN_FOUND) +@@ -246,7 +251,7 @@ endif(DOXYGEN_FOUND) # # COMPUTE H2CORE_HAVE_xxx xxx_STATUS_REPORT # --SET(STATUS_LIST LIBSNDFILE LIBTAR LIBARCHIVE LADSPA ALSA OSS JACK JACKSESSION NSMSESSION COREAUDIO COREMIDI PORTAUDIO PORTMIDI PULSEAUDIO LASH LRDF RAPTOR RUBBERBAND CPPUNIT ) -+SET(STATUS_LIST LIBSNDFILE LIBTAR LIBARCHIVE LADSPA SNDIO ALSA OSS JACK JACKSESSION NSMSESSION COREAUDIO COREMIDI PORTAUDIO PORTMIDI PULSEAUDIO LASH LRDF RAPTOR RUBBERBAND CPPUNIT ) +-SET(STATUS_LIST LIBSNDFILE LIBTAR LIBARCHIVE LADSPA ALSA OSS JACK JACKSESSION OSC COREAUDIO COREMIDI PORTAUDIO PORTMIDI PULSEAUDIO LASH LRDF RUBBERBAND CPPUNIT ) ++SET(STATUS_LIST LIBSNDFILE LIBTAR LIBARCHIVE LADSPA SNDIO ALSA OSS JACK JACKSESSION OSC COREAUDIO COREMIDI PORTAUDIO PORTMIDI PULSEAUDIO LASH LRDF RUBBERBAND CPPUNIT ) FOREACH( _pkg ${STATUS_LIST}) COMPUTE_PKGS_FLAGS(${_pkg}) ENDFOREACH() -@@ -293,6 +297,7 @@ COLOR_MESSAGE("${cyan}Main librarires${reset} +@@ -296,6 +301,7 @@ COLOR_MESSAGE("* ${purple}libsndfile${reset} COLOR_MESSAGE("${cyan}Supported audio interfaces${reset} -------------------------- @@ -47,3 +48,12 @@ Index: CMakeLists.txt * ${purple}ALSA${reset} : ${ALSA_STATUS} * ${purple}OSS${reset} : ${OSS_STATUS} * ${purple}JACK${reset} : ${JACK_STATUS} +@@ -360,7 +366,7 @@ ENDIF() + IF(NOT MINGW AND NOT APPLE) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.appdata.xml DESTINATION "${CMAKE_INSTALL_PREFIX}/share/appdata") + INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.desktop DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications") +- INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/img/gray/h2-icon.svg DESTINATION "/usr/share/pixmaps") ++ INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/img/gray/h2-icon.svg DESTINATION "${CMAKE_INSTALL_PREFIX}/share/pixmaps") + INSTALL(FILES ${CMAKE_SOURCE_DIR}/linux/hydrogen.1 DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man1") + ENDIF() + Index: patches/patch-cmake_StatusSupportOptions_cmake =================================================================== RCS file: patches/patch-cmake_StatusSupportOptions_cmake diff -N patches/patch-cmake_StatusSupportOptions_cmake --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cmake_StatusSupportOptions_cmake 21 Feb 2020 16:24:00 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: cmake/StatusSupportOptions.cmake +--- cmake/StatusSupportOptions.cmake.orig ++++ cmake/StatusSupportOptions.cmake +@@ -21,7 +21,7 @@ function(COLOR_MESSAGE TEXT) + endfunction() + + macro(COMPUTE_PKGS_FLAGS prefix) +- if(NOT ${prefix}_FOUND) ++ if(NOT ${prefix}_FOUND OR NOT WANT_${prefix}) + SET(${prefix}_LIBRARIES "" ) + SET(${prefix}_INCLUDE_DIRS "" ) + endif() Index: patches/patch-src_core_CMakeLists_txt =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-src_core_CMakeLists_txt,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_core_CMakeLists_txt --- patches/patch-src_core_CMakeLists_txt 8 Jun 2019 18:42:32 -0000 1.1 +++ patches/patch-src_core_CMakeLists_txt 21 Feb 2020 16:24:00 -0000 @@ -6,14 +6,14 @@ Index: src/core/CMakeLists.txt --- src/core/CMakeLists.txt.orig +++ src/core/CMakeLists.txt @@ -13,6 +13,7 @@ INCLUDE_DIRECTORIES( include - ${LIBTAR_INCLUDE_DIR} - ${LIBARCHIVE_INCLUDE_DIR} - ${LIBSNDFILE_INCLUDE_DIR} -+ ${SNDIO_INCLUDE_DIR} - ${ALSA_INCLUDE_DIR} - ${OSS_INCLUDE_DIR} - ${JACK_INCLUDE_DIR} -@@ -34,6 +35,7 @@ TARGET_LINK_LIBRARIES(hydrogen-core-${VERSION} + ${LIBTAR_INCLUDE_DIRS} + ${LIBARCHIVE_INCLUDE_DIRS} + ${LIBSNDFILE_INCLUDE_DIRS} ++ ${SNDIO_INCLUDE_DIRS} + ${ALSA_INCLUDE_DIRS} + ${OSS_INCLUDE_DIRS} + ${JACK_INCLUDE_DIRS} +@@ -30,6 +31,7 @@ TARGET_LINK_LIBRARIES(hydrogen-core-${VERSION} ${LIBTAR_LIBRARIES} ${LIBARCHIVE_LIBRARIES} ${LIBSNDFILE_LIBRARIES} @@ -21,13 +21,3 @@ Index: src/core/CMakeLists.txt ${ALSA_LIBRARIES} ${OSS_LIBRARIES} ${JACK_LIBRARIES} -@@ -60,9 +62,3 @@ INSTALL(TARGETS hydrogen-core-${VERSION} - # do not copy directory hierarchy - #PUBLIC_HEADER DESTINATION include/hydrogen - ) -- --IF(NOT APPPLE AND NOT WIN32) -- INSTALL(DIRECTORY include DESTINATION "${CMAKE_INSTALL_PREFIX}" FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE) -- INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/hydrogen/config.h" DESTINATION "${CMAKE_INSTALL_PREFIX}/include/hydrogen" ) --ENDIF() -- Index: patches/patch-src_core_src_hydrogen_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-src_core_src_hydrogen_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_core_src_hydrogen_cpp --- patches/patch-src_core_src_hydrogen_cpp 8 Jun 2019 18:42:32 -0000 1.1 +++ patches/patch-src_core_src_hydrogen_cpp 21 Feb 2020 16:24:00 -0000 @@ -5,7 +5,7 @@ Add sndio support Index: src/core/src/hydrogen.cpp --- src/core/src/hydrogen.cpp.orig +++ src/core/src/hydrogen.cpp -@@ -89,6 +89,8 @@ +@@ -91,6 +91,8 @@ #include <hydrogen/IO/PortMidiDriver.h> #include <hydrogen/IO/CoreAudioDriver.h> #include <hydrogen/IO/PulseAudioDriver.h> @@ -14,7 +14,7 @@ Index: src/core/src/hydrogen.cpp namespace H2Core { -@@ -1392,7 +1394,13 @@ AudioOutput* createDriver( const QString& sDriver ) +@@ -1411,7 +1413,13 @@ AudioOutput* createDriver( const QString& sDriver ) Preferences *pPref = Preferences::get_instance(); AudioOutput *pDriver = NULL; @@ -29,7 +29,7 @@ Index: src/core/src/hydrogen.cpp pDriver = new OssDriver( audioEngine_process ); if ( pDriver->class_name() == NullDriver::class_name() ) { delete pDriver; -@@ -1491,6 +1499,7 @@ void audioEngine_startAudioDrivers() +@@ -1510,6 +1518,7 @@ void audioEngine_startAudioDrivers() QString sAudioDriver = preferencesMng->m_sAudioDriver; if ( sAudioDriver == "Auto" ) { #ifndef WIN32 @@ -37,7 +37,7 @@ Index: src/core/src/hydrogen.cpp if ( ( m_pAudioDriver = createDriver( "Jack" ) ) == NULL ) { if ( ( m_pAudioDriver = createDriver( "Alsa" ) ) == NULL ) { if ( ( m_pAudioDriver = createDriver( "CoreAudio" ) ) == NULL ) { -@@ -1510,6 +1519,7 @@ void audioEngine_startAudioDrivers() +@@ -1529,6 +1538,7 @@ void audioEngine_startAudioDrivers() } } } @@ -45,14 +45,16 @@ Index: src/core/src/hydrogen.cpp #else //On Windows systems, use PortAudio is the prioritized backend if ( ( m_pAudioDriver = createDriver( "PortAudio" ) ) == NULL ) { -@@ -1545,7 +1555,13 @@ void audioEngine_startAudioDrivers() +@@ -1564,7 +1574,15 @@ void audioEngine_startAudioDrivers() } } - if ( preferencesMng->m_sMidiDriver == "ALSA" ) { + if ( preferencesMng->m_sMidiDriver == "SndioMidi" ) { +#ifdef H2CORE_HAVE_SNDIO -+ m_pMidiDriver = new SndioMidiDriver(); ++ SndioMidiDriver *sndioMidiDriver = new SndioMidiDriver(); ++ m_pMidiDriver = sndioMidiDriver; ++ m_pMidiDriverOut = sndioMidiDriver; + m_pMidiDriver->open(); + m_pMidiDriver->setActive( true ); +#endif Index: patches/patch-src_core_src_preferences_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-src_core_src_preferences_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_core_src_preferences_cpp --- patches/patch-src_core_src_preferences_cpp 8 Jun 2019 18:42:32 -0000 1.1 +++ patches/patch-src_core_src_preferences_cpp 21 Feb 2020 16:24:00 -0000 @@ -5,7 +5,7 @@ Add sndio support Index: src/core/src/preferences.cpp --- src/core/src/preferences.cpp.orig +++ src/core/src/preferences.cpp -@@ -182,11 +182,14 @@ Preferences::Preferences() +@@ -200,11 +200,14 @@ Preferences::Preferences() m_nBufferSize = 1024; m_nSampleRate = 44100; @@ -21,7 +21,7 @@ Index: src/core/src/preferences.cpp m_sMidiPortName = QString("None"); m_nMidiChannelFilter = -1; m_bMidiNoteOffIgnore = false; -@@ -468,6 +471,16 @@ void Preferences::loadPreferences( bool bGlobal ) +@@ -491,6 +494,16 @@ void Preferences::loadPreferences( bool bGlobal ) m_nBufferSize = LocalFileMng::readXmlInt( audioEngineNode, "buffer_size", m_nBufferSize ); m_nSampleRate = LocalFileMng::readXmlInt( audioEngineNode, "samplerate", m_nSampleRate ); @@ -38,7 +38,7 @@ Index: src/core/src/preferences.cpp //// OSS DRIVER //// QDomNode ossDriverNode = audioEngineNode.firstChildElement( "oss_driver" ); if ( ossDriverNode.isNull() ) { -@@ -477,6 +490,7 @@ void Preferences::loadPreferences( bool bGlobal ) +@@ -500,6 +513,7 @@ void Preferences::loadPreferences( bool bGlobal ) m_sOSSDevice = LocalFileMng::readXmlString( ossDriverNode, "ossDevice", m_sOSSDevice ); } @@ -46,7 +46,7 @@ Index: src/core/src/preferences.cpp //// JACK DRIVER //// QDomNode jackDriverNode = audioEngineNode.firstChildElement( "jack_driver" ); if ( jackDriverNode.isNull() ) { -@@ -523,7 +537,7 @@ void Preferences::loadPreferences( bool bGlobal ) +@@ -546,7 +560,7 @@ void Preferences::loadPreferences( bool bGlobal ) WARNINGLOG( "midi_driver node not found" ); recreate = true; } else { @@ -55,7 +55,7 @@ Index: src/core/src/preferences.cpp m_sMidiPortName = LocalFileMng::readXmlString( midiDriverNode, "port_name", "None" ); m_nMidiChannelFilter = LocalFileMng::readXmlInt( midiDriverNode, "channel_filter", -1 ); m_bMidiNoteOffIgnore = LocalFileMng::readXmlBool( midiDriverNode, "ignore_note_off", true ); -@@ -830,6 +844,13 @@ void Preferences::savePreferences() +@@ -872,6 +886,13 @@ void Preferences::savePreferences() LocalFileMng::writeXmlString( audioEngineNode, "maxNotes", QString("%1").arg( m_nMaxNotes ) ); LocalFileMng::writeXmlString( audioEngineNode, "buffer_size", QString("%1").arg( m_nBufferSize ) ); LocalFileMng::writeXmlString( audioEngineNode, "samplerate", QString("%1").arg( m_nSampleRate ) ); Index: patches/patch-src_gui_src_PreferencesDialog_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-src_gui_src_PreferencesDialog_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_gui_src_PreferencesDialog_cpp --- patches/patch-src_gui_src_PreferencesDialog_cpp 8 Jun 2019 18:42:32 -0000 1.1 +++ patches/patch-src_gui_src_PreferencesDialog_cpp 21 Feb 2020 16:24:00 -0000 @@ -5,7 +5,7 @@ Add sndio support Index: src/gui/src/PreferencesDialog.cpp --- src/gui/src/PreferencesDialog.cpp.orig +++ src/gui/src/PreferencesDialog.cpp -@@ -64,6 +64,9 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) +@@ -63,6 +63,9 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) driverComboBox->clear(); driverComboBox->addItem( "Auto" ); @@ -15,7 +15,7 @@ Index: src/gui/src/PreferencesDialog.cpp #ifdef H2CORE_HAVE_JACK driverComboBox->addItem( "Jack" ); #endif -@@ -95,6 +98,9 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) +@@ -94,6 +97,9 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) m_pMidiDriverComboBox->clear(); @@ -25,7 +25,7 @@ Index: src/gui/src/PreferencesDialog.cpp #ifdef H2CORE_HAVE_ALSA m_pMidiDriverComboBox->addItem( "ALSA" ); #endif -@@ -333,6 +339,9 @@ void PreferencesDialog::on_okBtn_clicked() +@@ -341,6 +347,9 @@ void PreferencesDialog::on_okBtn_clicked() if (driverComboBox->currentText() == "Auto" ) { pPref->m_sAudioDriver = "Auto"; } @@ -35,7 +35,7 @@ Index: src/gui/src/PreferencesDialog.cpp else if (driverComboBox->currentText() == "Jack" ) { pPref->m_sAudioDriver = "Jack"; } -@@ -394,7 +403,10 @@ void PreferencesDialog::on_okBtn_clicked() +@@ -402,7 +411,10 @@ void PreferencesDialog::on_okBtn_clicked() // maxVoices pPref->m_nMaxNotes = maxVoicesTxt->value(); @@ -47,7 +47,7 @@ Index: src/gui/src/PreferencesDialog.cpp pPref->m_sMidiDriver = "ALSA"; } else if ( m_pMidiDriverComboBox->currentText() == "PortMidi" ) { -@@ -514,6 +526,11 @@ void PreferencesDialog::updateDriverInfo() +@@ -527,6 +539,11 @@ void PreferencesDialog::updateDriverInfo() Preferences *pPref = Preferences::get_instance(); QString info; @@ -59,7 +59,7 @@ Index: src/gui/src/PreferencesDialog.cpp bool bJack_support = false; #ifdef H2CORE_HAVE_JACK bJack_support = true; -@@ -553,6 +570,19 @@ void PreferencesDialog::updateDriverInfo() +@@ -566,6 +583,19 @@ void PreferencesDialog::updateDriverInfo() sampleRateComboBox->setEnabled( false ); trackOutputComboBox->setEnabled( false ); connectDefaultsCheckBox->setEnabled( false ); Index: patches/patch-src_tests_CMakeLists_txt =================================================================== RCS file: patches/patch-src_tests_CMakeLists_txt diff -N patches/patch-src_tests_CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_tests_CMakeLists_txt 21 Feb 2020 16:24:00 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: src/tests/CMakeLists.txt +--- src/tests/CMakeLists.txt.orig ++++ src/tests/CMakeLists.txt +@@ -5,7 +5,7 @@ include_directories( + ${CMAKE_SOURCE_DIR}/src/core/include # core headers + ${CMAKE_BINARY_DIR}/src/core/include # generated config.h + ${QT_INCLUDES} # TODO be able to remove this +- ${CPPUNIT_INCLUDE_DIR} ++ ${CPPUNIT_INCLUDE_DIRS} + ) + FILE(GLOB_RECURSE TESTS_SRCS *.cpp) + link_directories() Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/audio/hydrogen/pkg/PLIST,v retrieving revision 1.5 diff -u -p -u -p -r1.5 PLIST --- pkg/PLIST 8 Jun 2019 18:42:32 -0000 1.5 +++ pkg/PLIST 21 Feb 2020 16:24:00 -0000 @@ -1,9 +1,84 @@ -@comment $OpenBSD: PLIST,v 1.5 2019/06/08 18:42:32 rapha Exp $ +@comment $OpenBSD: PLIST,v$ @bin bin/h2cli @bin bin/h2player -@bin bin/h2synth @bin bin/hydrogen -@lib lib/libhydrogen-core-0.9.7.so.${LIBhydrogen-core-0.9.7_VERSION} +include/hydrogen/ +include/hydrogen/IO/ +include/hydrogen/IO/AlsaAudioDriver.h +include/hydrogen/IO/AlsaMidiDriver.h +include/hydrogen/IO/AudioOutput.h +include/hydrogen/IO/CoreAudioDriver.h +include/hydrogen/IO/CoreMidiDriver.h +include/hydrogen/IO/DiskWriterDriver.h +include/hydrogen/IO/FakeDriver.h +include/hydrogen/IO/JackAudioDriver.h +include/hydrogen/IO/JackMidiDriver.h +include/hydrogen/IO/MidiCommon.h +include/hydrogen/IO/MidiInput.h +include/hydrogen/IO/MidiOutput.h +include/hydrogen/IO/NullDriver.h +include/hydrogen/IO/OssDriver.h +include/hydrogen/IO/PortAudioDriver.h +include/hydrogen/IO/PortMidiDriver.h +include/hydrogen/IO/PulseAudioDriver.h +include/hydrogen/IO/SndioAudioDriver.h +include/hydrogen/IO/SndioMidiDriver.h +include/hydrogen/IO/TransportInfo.h +include/hydrogen/LashClient.h +include/hydrogen/LocalFileMng.h +include/hydrogen/Preferences.h +include/hydrogen/audio_engine.h +include/hydrogen/automation_path_serializer.h +include/hydrogen/basics/ +include/hydrogen/basics/adsr.h +include/hydrogen/basics/automation_path.h +include/hydrogen/basics/drumkit.h +include/hydrogen/basics/drumkit_component.h +include/hydrogen/basics/instrument.h +include/hydrogen/basics/instrument_component.h +include/hydrogen/basics/instrument_layer.h +include/hydrogen/basics/instrument_list.h +include/hydrogen/basics/note.h +include/hydrogen/basics/pattern.h +include/hydrogen/basics/pattern_list.h +include/hydrogen/basics/sample.h +include/hydrogen/basics/song.h +include/hydrogen/config.h +include/hydrogen/core_action_controller.h +include/hydrogen/event_queue.h +include/hydrogen/fx/ +include/hydrogen/fx/Effects.h +include/hydrogen/fx/LadspaFX.h +include/hydrogen/fx/ladspa.h +include/hydrogen/globals.h +include/hydrogen/h2_exception.h +include/hydrogen/helpers/ +include/hydrogen/helpers/filesystem.h +include/hydrogen/helpers/legacy.h +include/hydrogen/helpers/xml.h +include/hydrogen/hydrogen.h +include/hydrogen/lilypond/ +include/hydrogen/lilypond/lilypond.h +include/hydrogen/logger.h +include/hydrogen/midi_action.h +include/hydrogen/midi_map.h +include/hydrogen/nsm.h +include/hydrogen/nsm_client.h +include/hydrogen/object.h +include/hydrogen/osc_server.h +include/hydrogen/playlist.h +include/hydrogen/rt_clock.h +include/hydrogen/sampler/ +include/hydrogen/sampler/Sampler.h +include/hydrogen/smf/ +include/hydrogen/smf/SMF.h +include/hydrogen/smf/SMFEvent.h +include/hydrogen/synth/ +include/hydrogen/synth/Synth.h +include/hydrogen/timehelper.h +include/hydrogen/timeline.h +include/hydrogen/version.h +@lib lib/libhydrogen-core-1.0.0.so.${LIBhydrogen-core-1.0.0_VERSION} @man man/man1/hydrogen.1 share/appdata/ share/appdata/hydrogen.appdata.xml @@ -23,7 +98,7 @@ share/hydrogen/data/demo_songs/tutorial_ share/hydrogen/data/doc/ share/hydrogen/data/doc/Makefile share/hydrogen/data/doc/MidiInstrumentMapping.ods -share/hydrogen/data/doc/README.DOCUMENTATION.txt +share/hydrogen/data/doc/README.md share/hydrogen/data/doc/TODO share/hydrogen/data/doc/img/ share/hydrogen/data/doc/img/AudioEngineInfoDialog.png @@ -225,25 +300,94 @@ share/hydrogen/data/doc/tutorial.pot share/hydrogen/data/doc/tutorial_fr.po share/hydrogen/data/doc/tutorial_it.po share/hydrogen/data/drumkits/ -share/hydrogen/data/drumkits/GMkit/ -share/hydrogen/data/drumkits/GMkit/clap_Dry_c.flac -share/hydrogen/data/drumkits/GMkit/cra_Jazz.flac -share/hydrogen/data/drumkits/GMkit/cra_Rock_a.flac -share/hydrogen/data/drumkits/GMkit/cym_Jazz.flac -share/hydrogen/data/drumkits/GMkit/cym_Rock_b.flac -share/hydrogen/data/drumkits/GMkit/drumkit.xml -share/hydrogen/data/drumkits/GMkit/emptySample.flac -share/hydrogen/data/drumkits/GMkit/hhc_Dry_a.flac -share/hydrogen/data/drumkits/GMkit/hhc_Rock_b.flac -share/hydrogen/data/drumkits/GMkit/hhp_Dry_a.flac -share/hydrogen/data/drumkits/GMkit/kick_Dry_b.flac -share/hydrogen/data/drumkits/GMkit/misc_Cowbell.flac -share/hydrogen/data/drumkits/GMkit/sn_Jazz_c.flac -share/hydrogen/data/drumkits/GMkit/sn_Wet_b.flac -share/hydrogen/data/drumkits/GMkit/stick_Woody.flac -share/hydrogen/data/drumkits/GMkit/tom_Rock_hi.flac -share/hydrogen/data/drumkits/GMkit/tom_Rock_lo.flac -share/hydrogen/data/drumkits/GMkit/tom_Rock_mid.flac +share/hydrogen/data/drumkits/GMRockKit/ +share/hydrogen/data/drumkits/GMRockKit/24Ride-1.wav +share/hydrogen/data/drumkits/GMRockKit/24Ride-2.wav +share/hydrogen/data/drumkits/GMRockKit/24Ride-3.wav +share/hydrogen/data/drumkits/GMRockKit/24Ride-4.wav +share/hydrogen/data/drumkits/GMRockKit/24Ride-5.wav +share/hydrogen/data/drumkits/GMRockKit/Bell-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Bell-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Bell-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Bell-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Bell-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Cowbell-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Cowbell-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Cowbell-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Cowbell-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Cowbell-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Crash-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Crash-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Crash-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Crash-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Crash-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/HandClap.wav +share/hydrogen/data/drumkits/GMRockKit/HatClosed-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/HatClosed-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/HatClosed-Med.wav +share/hydrogen/data/drumkits/GMRockKit/HatClosed-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/HatClosed-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/HatOpen-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/HatOpen-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/HatOpen-Med.wav +share/hydrogen/data/drumkits/GMRockKit/HatOpen-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/HatOpen-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/HatPedal-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/HatPedal-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/HatPedal-Med.wav +share/hydrogen/data/drumkits/GMRockKit/HatPedal-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/HatPedal-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/HatSemiOpen-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/HatSemiOpen-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/HatSemiOpen-Med.wav +share/hydrogen/data/drumkits/GMRockKit/HatSemiOpen-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/HatSemiOpen-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Kick-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Kick-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Kick-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Kick-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Kick-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Ride-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Ride-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Ride-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Ride-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Ride-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/SideStick-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/SideStick-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/SideStick-Med.wav +share/hydrogen/data/drumkits/GMRockKit/SideStick-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/SideStick-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Snare-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Snare-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Snare-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Snare-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Snare-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/SnareRimshot-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/SnareRimshot-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/SnareRimshot-Med.wav +share/hydrogen/data/drumkits/GMRockKit/SnareRimshot-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/SnareRimshot-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Splash-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Splash-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Splash-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Splash-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Splash-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Tom1-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Tom1-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Tom1-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Tom1-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Tom1-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/Tom2-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/Tom2-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/Tom2-Med.wav +share/hydrogen/data/drumkits/GMRockKit/Tom2-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/Tom2-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/TomFloor-Hard.wav +share/hydrogen/data/drumkits/GMRockKit/TomFloor-Hardest.wav +share/hydrogen/data/drumkits/GMRockKit/TomFloor-Med.wav +share/hydrogen/data/drumkits/GMRockKit/TomFloor-Soft.wav +share/hydrogen/data/drumkits/GMRockKit/TomFloor-Softest.wav +share/hydrogen/data/drumkits/GMRockKit/drumkit.xml share/hydrogen/data/drumkits/TR808EmulationKit/ share/hydrogen/data/drumkits/TR808EmulationKit/808_Clap.flac share/hydrogen/data/drumkits/TR808EmulationKit/808_Clave.flac @@ -299,6 +443,8 @@ share/hydrogen/data/i18n/hydrogen.sr.qm share/hydrogen/data/i18n/hydrogen.sr.ts share/hydrogen/data/i18n/hydrogen.sv.qm share/hydrogen/data/i18n/hydrogen.sv.ts +share/hydrogen/data/i18n/hydrogen.uk.qm +share/hydrogen/data/i18n/hydrogen.uk.ts @comment share/hydrogen/data/i18n/stats.py @comment share/hydrogen/data/i18n/updateTranslations.sh share/hydrogen/data/img/ @@ -358,7 +504,6 @@ share/hydrogen/data/img/gray/lcd/LCDSpin share/hydrogen/data/img/gray/lcd/LCDSpinBox_up_off.png share/hydrogen/data/img/gray/lcd/LCDSpinBox_up_on.png share/hydrogen/data/img/gray/lcd/LCDSpinBox_up_over.png -share/hydrogen/data/img/gray/mdiBackground.png share/hydrogen/data/img/gray/mixerPanel/ share/hydrogen/data/img/gray/mixerPanel/background_FX.png share/hydrogen/data/img/gray/mixerPanel/btn_edit_off.png @@ -418,11 +563,8 @@ share/hydrogen/data/img/gray/mixerPanel/ share/hydrogen/data/img/gray/patternEditor/ share/hydrogen/data/img/gray/patternEditor/background_channel.png share/hydrogen/data/img/gray/patternEditor/background_rec-new.png -share/hydrogen/data/img/gray/patternEditor/background_rec.png share/hydrogen/data/img/gray/patternEditor/background_res-new.png -share/hydrogen/data/img/gray/patternEditor/background_res.png share/hydrogen/data/img/gray/patternEditor/background_zoom-new.png -share/hydrogen/data/img/gray/patternEditor/background_zoom.png share/hydrogen/data/img/gray/patternEditor/btn_dropdown_off.png share/hydrogen/data/img/gray/patternEditor/btn_dropdown_on.png share/hydrogen/data/img/gray/patternEditor/btn_dropdown_over.png @@ -566,6 +708,12 @@ share/hydrogen/data/img/gray/songEditor/ share/hydrogen/data/img/gray/songEditor/btn_up_off.png share/hydrogen/data/img/gray/songEditor/btn_up_on.png share/hydrogen/data/img/gray/songEditor/btn_up_over.png +share/hydrogen/data/img/gray/songEditor/btn_viewPL_off.png +share/hydrogen/data/img/gray/songEditor/btn_viewPL_on.png +share/hydrogen/data/img/gray/songEditor/btn_viewPL_over.png +share/hydrogen/data/img/gray/songEditor/btn_viewTL_off.png +share/hydrogen/data/img/gray/songEditor/btn_viewTL_on.png +share/hydrogen/data/img/gray/songEditor/btn_viewTL_over.png share/hydrogen/data/img/gray/songEditor/playingPattern_off.png share/hydrogen/data/img/gray/songEditor/playingPattern_on.png share/hydrogen/data/img/gray/songEditor/songEditorLabelABG.png @@ -573,6 +721,8 @@ share/hydrogen/data/img/gray/songEditor/ share/hydrogen/data/img/gray/songEditor/songEditorLabelSBG.png share/hydrogen/data/img/gray/splash/ share/hydrogen/data/img/gray/splash/splash.png +share/hydrogen/data/img/gray/warning.png +share/hydrogen/data/img/gray/warning.svg share/hydrogen/data/img/gray/waveDisplay/ share/hydrogen/data/img/gray/waveDisplay/background.png share/hydrogen/data/img/gray/waveDisplay/bgsamplewavedisplay.png @@ -602,3 +752,5 @@ share/hydrogen/data/xsd/ share/hydrogen/data/xsd/drumkit.xsd share/hydrogen/data/xsd/drumkit_pattern.xsd @tag update-desktop-database +share/pixmaps/ +share/pixmaps/h2-icon.svg