The version of hydrogen in ports is quite old, and when you startup the GUI, it is totally broken and unusable.
So the patch below updates to 0.9.5 (still quite old), but with 0.9.6 the build infrastructure was changed from scons to cmake, so updating to something newer is an excercise left for another day ;) I also tested the MIDI input, seems the midi device names changed since 2010 from rmidi:X to rmidi/X so updated that, as well as using MIO_PORTANY as default when passing the device to mio_open. So MIDI input kind of works with my umidi keyboard now, either setting MIDIDEVICE env var, or configuring it in the preferences. any comments, or even OK? cheers, Sebastian Index: Makefile =================================================================== RCS file: /cvs/ports/audio/hydrogen/Makefile,v retrieving revision 1.24 diff -u -r1.24 Makefile --- Makefile 24 Oct 2018 14:27:57 -0000 1.24 +++ Makefile 7 Jan 2019 22:26:55 -0000 @@ -2,8 +2,7 @@ COMMENT= software drum machine -DISTNAME= hydrogen-0.9.4 -REVISION= 7 +DISTNAME= hydrogen-0.9.5 CATEGORIES= audio HOMEPAGE= http://www.hydrogen-music.org/ Index: distinfo =================================================================== RCS file: /cvs/ports/audio/hydrogen/distinfo,v retrieving revision 1.4 diff -u -r1.4 distinfo --- distinfo 18 Jan 2015 03:12:42 -0000 1.4 +++ distinfo 7 Jan 2019 22:26:55 -0000 @@ -1,2 +1,2 @@ -SHA256 (hydrogen-0.9.4.tar.gz) = mCt2i0joQCEElJxk+sTXTYBPQbarG5BFdxGEDamWhdc= -SIZE (hydrogen-0.9.4.tar.gz) = 3808532 +SHA256 (hydrogen-0.9.5.tar.gz) = ljxz75EeyedYnlAtF987eU3QJ9fpmja1EVoLtROJ2cM= +SIZE (hydrogen-0.9.5.tar.gz) = 5239702 Index: files/sndio_midi_driver.cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/files/sndio_midi_driver.cpp,v retrieving revision 1.1 diff -u -r1.1 sndio_midi_driver.cpp --- files/sndio_midi_driver.cpp 11 Jan 2010 05:11:32 -0000 1.1 +++ files/sndio_midi_driver.cpp 7 Jan 2019 22:26:55 -0000 @@ -34,7 +34,7 @@ MidiMessage msg; struct pollfd pfd; nfds_t nfds; - char buf[1], sysex_data[256], status = 0; + unsigned char buf[1], sysex_data[256], status = 0; int i, msglen, count = 0, sysex_len = 0; _INFOLOG("SndioMidiDriver_thread starting"); @@ -181,7 +181,7 @@ } SndioMidiDriver::SndioMidiDriver() - : MidiInput("SndioMidiDriver") + : MidiInput("SndioMidiDriver"), Object( "SndioMidiDriver" ) , m_bRunning(false) { hdl = NULL; @@ -205,7 +205,7 @@ if (strncmp(midiDevice, "", 1) == 0 || strncmp(midiDevice, "None", 5) == 0 || strncmp(midiDevice, "default", 8) == 0) - hdl = mio_open(NULL, MIO_IN, 0); + hdl = mio_open(MIO_PORTANY, MIO_IN, 0); else hdl = mio_open(midiDevice, MIO_IN, 0); @@ -240,15 +240,15 @@ QString name; int i; - /* midithru:* */ + /* midithru/* */ for (i = 0; i < 4; i++) { - name = "midithru:" + QString::number(i); + name = "midithru/" + QString::number(i); portList.push_back(name); } - /* rmidi:* */ + /* rmidi/* */ for (i = 0; i < 8; i++) { - name = "rmidi:" + QString::number(i); + name = "rmidi/" + QString::number(i); QFileInfo di("/dev/rmidi" + QString::number(i)); if (di.exists()) portList.push_back(name); Index: patches/patch-Sconstruct =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-Sconstruct,v retrieving revision 1.2 diff -u -r1.2 patch-Sconstruct --- patches/patch-Sconstruct 20 Jul 2011 12:08:24 -0000 1.2 +++ patches/patch-Sconstruct 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-Sconstruct,v 1.2 2011/07/20 12:08:24 sthen Exp $ ---- Sconstruct.orig Mon Sep 7 22:31:13 2009 -+++ Sconstruct Wed Jul 20 12:45:04 2011 -@@ -47,20 +47,21 @@ def get_platform_flags( opts ): +Index: Sconstruct +--- Sconstruct.orig ++++ Sconstruct +@@ -47,19 +47,20 @@ def get_platform_flags( opts ): env = Environment( options = opts ) @@ -18,16 +19,15 @@ #cppflags += " %s" % get_optimized_flags( target_cpu ) for flag in env["optflags"].split(" "): cppflags.append(flag) - - + if str(env['oss']) == "1": cppflags.append('-DOSS_SUPPORT') + if str(env['sndio']) == "1": cppflags.append('-DSNDIO_SUPPORT') if str(env['alsa']) == "1": cppflags.append('-DALSA_SUPPORT') if str(env['jack']) == "1": cppflags.append('-DJACK_SUPPORT') if str(env['lash']) == "1": cppflags.append('-DLASH_SUPPORT') -@@ -87,6 +88,12 @@ def get_platform_flags( opts ): - if sys.platform == 'linux2': +@@ -96,6 +97,12 @@ def get_platform_flags( opts ): ldflags.append('-lasound') + # ldflags.append('-lrubberband') + elif sys.platform.find('openbsd') != -1: + for flag in env["localinc"].split(" "): @@ -38,7 +38,7 @@ elif sys.platform == "win32": includes.append( '3rdparty\libsndfile-1_0_17' ) includes.append( 'build\pthreads\include' ) -@@ -158,8 +165,9 @@ def download_3rdparty_libs(): +@@ -167,8 +174,9 @@ def download_3rdparty_libs(): def get_svn_revision(): if sys.platform != "win32": @@ -50,42 +50,41 @@ else: return "win32 build" -@@ -260,6 +268,7 @@ def get_hydrogen_gui( lib_hydrogen , opts ): - if str(env['flac']) == "1": env.Append( LIBS = ["FLAC","FLAC++"] ) +@@ -271,6 +279,7 @@ def get_hydrogen_gui( lib_hydrogen , opts ): + if str(env['lrdf']) == "1": env.Append( LIBS = ["lrdf"] ) if str(env['jack']) == "1": env.Append( LIBS = ["jack"]) if str(env['alsa']) == "1": env.Append( LIBS = ["asound"]) + if str(env['sndio']) == "1": env.Append( LIBS = ["sndio"]) if str(env['libarchive']) == "1": env.Append( LIBS = ["archive"]) else: env.Append( LIBS = ["tar"]) if str(env['portaudio']) == "1": env.Append( LIBS = [ "portaudio" ] ) -@@ -326,6 +335,8 @@ opts.Add('libarchive', 'Set to 1 to enable libarchive +@@ -340,6 +349,8 @@ opts.Add('libarchive', 'Set to 1 to enable libarchive opts.Add('prefix','Default: /usr/local',"/usr/local") opts.Add('DESTDIR','Default: none',"") opts.Add('optflags','Default: none',"") +opts.Add('localinc','Default: none',"") +opts.Add('locallib','Default: none',"") + opts.Add('gui','Set to 0 to disable the Gui',1) #platform dependent settings - if sys.platform == "darwin": -@@ -334,6 +345,8 @@ if sys.platform == "darwin": - if sys.platform != "win32": - opts.Add('oss', 'Set to 1 to enable oss',1) +@@ -357,6 +368,7 @@ if sys.platform == "darwin": -+ opts.Add('sndio', 'Set to 1 to enable sndio',1) -+ + elif sys.platform != "win32": + opts.Add('oss', 'Set to 1 to enable oss',1) ++ opts.Add('sndio', 'Set to 1 to enable sndio',1) opts.Add('portmidi', 'Set to 1 to enable portmidi',0) - opts.Add('portaudio', 'Set to 1 to enable portaudio',0) -@@ -348,7 +361,7 @@ if sys.platform != "win32": - - opts.Add('flac', 'Set to 1 to enable flac',1) + opts.Add('lash', 'Set to 1 to enable lash',0) +@@ -364,7 +376,7 @@ elif sys.platform != "win32": + opts.Add('jack', 'Set to 1 to enable jack',1) + opts.Add('lrdf', 'Set to 1 to enable lrdf',1) else: - #alsa, lash,oss and jack are not available on windows + #alsa, lash,oss, jack and sndio are not available on windows opts.Add('portmidi', 'Set to 1 to enable portmidi',1) - opts.Add('portaudio', 'Set to 1 to enable portaudio',1) -@@ -459,7 +472,7 @@ print "" + opts.Add('oss', 'Set to 1 to enable oss',0) +@@ -458,7 +470,7 @@ print "" print "=================================================================" print " Hydrogen build script" print "" @@ -94,7 +93,7 @@ print " Platform: %s" % platform if str(env['debug']) == "1" : -@@ -475,6 +488,7 @@ print "Feature Overview:\n" +@@ -474,6 +486,7 @@ print "Feature Overview:\n" print " lash: " + printStatus( env["lash"] ) print " oss: " + printStatus( env["oss"] ) Index: patches/patch-data_hydrogen_default_conf =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-data_hydrogen_default_conf,v retrieving revision 1.2 diff -u -r1.2 patch-data_hydrogen_default_conf --- patches/patch-data_hydrogen_default_conf 11 Jan 2010 05:11:32 -0000 1.2 +++ patches/patch-data_hydrogen_default_conf 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-data_hydrogen_default_conf,v 1.2 2010/01/11 05:11:32 jakemsr Exp $ ---- data/hydrogen.default.conf.orig Wed Aug 26 05:12:27 2009 -+++ data/hydrogen.default.conf Sat Jan 2 03:20:03 2010 -@@ -27,7 +27,7 @@ +Index: data/hydrogen.default.conf +--- data/hydrogen.default.conf.orig ++++ data/hydrogen.default.conf +@@ -30,7 +30,7 @@ <lastNews>-</lastNews> <audio_engine> @@ -10,7 +11,7 @@ <use_metronome>false</use_metronome> <metronome_volume>0.5</metronome_volume> <maxNotes>256</maxNotes> -@@ -38,6 +38,10 @@ +@@ -41,6 +41,10 @@ <ossDevice>/dev/dsp</ossDevice> </oss_driver> @@ -21,7 +22,7 @@ <jack_driver> <jack_port_name_1>alsa_pcm:playback_1</jack_port_name_1> <jack_port_name_2>alsa_pcm:playback_2</jack_port_name_2> -@@ -52,7 +56,7 @@ +@@ -55,7 +59,7 @@ </alsa_audio_driver> <midi_driver> Index: patches/patch-features_pri =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-features_pri,v retrieving revision 1.1 diff -u -r1.1 patch-features_pri --- patches/patch-features_pri 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-features_pri 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-features_pri,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- features.pri.orig Fri Jan 1 03:05:13 2010 -+++ features.pri Fri Jan 1 03:05:45 2010 -@@ -33,6 +33,7 @@ linux-g++ { +Index: features.pri +--- features.pri.orig ++++ features.pri +@@ -30,6 +30,7 @@ linux-g++ { H2DEFINES += LADSPA_SUPPORT H2DEFINES += LRDF_SUPPORT H2DEFINES += OSS_SUPPORT @@ -9,7 +10,7 @@ } linux-g++-64 { -@@ -43,6 +44,7 @@ linux-g++-64 { +@@ -39,6 +40,7 @@ linux-g++-64 { H2DEFINES += LADSPA_SUPPORT H2DEFINES += LRDF_SUPPORT H2DEFINES += OSS_SUPPORT Index: patches/patch-gui_src_MainForm_cpp =================================================================== RCS file: patches/patch-gui_src_MainForm_cpp diff -N patches/patch-gui_src_MainForm_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gui_src_MainForm_cpp 7 Jan 2019 22:26:55 -0000 @@ -0,0 +1,22 @@ +$OpenBSD$ + +Index: gui/src/MainForm.cpp +--- gui/src/MainForm.cpp.orig ++++ gui/src/MainForm.cpp +@@ -21,6 +21,7 @@ + */ + #include "version.h" + ++#include "unistd.h" + + #include <hydrogen/hydrogen.h> + #include <hydrogen/playlist.h> +@@ -1392,7 +1393,7 @@ bool MainForm::eventFilter( QObject *o, QEvent *e ) + float pan_L = 1.0; + float pan_R = 1.0; + +- engine->addRealtimeNote (row, velocity, pan_L, pan_R, NULL, NULL, NULL , row + 36); ++ engine->addRealtimeNote (row, velocity, pan_L, pan_R, 0.0, NULL, NULL , row + 36); + + return TRUE; // eat event + } Index: patches/patch-gui_src_PreferencesDialog_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-gui_src_PreferencesDialog_cpp,v retrieving revision 1.1 diff -u -r1.1 patch-gui_src_PreferencesDialog_cpp --- patches/patch-gui_src_PreferencesDialog_cpp 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-gui_src_PreferencesDialog_cpp 7 Jan 2019 22:26:55 -0000 @@ -1,6 +1,7 @@ $OpenBSD: patch-gui_src_PreferencesDialog_cpp,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- gui/src/PreferencesDialog.cpp.orig Wed Jul 22 20:10:25 2009 -+++ gui/src/PreferencesDialog.cpp Sat Jan 2 03:24:33 2010 +Index: gui/src/PreferencesDialog.cpp +--- gui/src/PreferencesDialog.cpp.orig ++++ gui/src/PreferencesDialog.cpp @@ -63,6 +63,7 @@ PreferencesDialog::PreferencesDialog(QWidget* parent) driverComboBox->addItem( "ALSA" ); driverComboBox->addItem( "OSS" ); @@ -45,7 +46,7 @@ else { ERRORLOG( "Unknown midi input from preferences [" + pPref->m_sMidiDriver + "]" ); } -@@ -297,6 +305,10 @@ void PreferencesDialog::on_okBtn_clicked() +@@ -308,6 +316,10 @@ void PreferencesDialog::on_okBtn_clicked() else if (driverComboBox->currentText() == "PortAudio" ) { pPref->m_sAudioDriver = "PortAudio"; } @@ -56,7 +57,7 @@ else if (driverComboBox->currentText() == "CoreAudio" ) { pPref->m_sAudioDriver = "CoreAudio"; } -@@ -346,6 +358,9 @@ void PreferencesDialog::on_okBtn_clicked() +@@ -355,6 +367,9 @@ void PreferencesDialog::on_okBtn_clicked() else if ( m_pMidiDriverComboBox->currentText() == "PortMidi" ) { pPref->m_sMidiDriver = "PortMidi"; } @@ -66,7 +67,7 @@ else if ( m_pMidiDriverComboBox->currentText() == "CoreMidi" ) { pPref->m_sMidiDriver = "CoreMidi"; } -@@ -439,6 +454,11 @@ void PreferencesDialog::updateDriverInfo() +@@ -457,6 +472,11 @@ void PreferencesDialog::updateDriverInfo() bPortAudio_support = true; #endif @@ -78,7 +79,7 @@ bool bCoreAudio_support = false; #ifdef COREAUDIO_SUPPORT bCoreAudio_support = true; -@@ -488,6 +508,19 @@ void PreferencesDialog::updateDriverInfo() +@@ -506,6 +526,19 @@ void PreferencesDialog::updateDriverInfo() } m_pAudioDeviceTxt->setEnabled(true); m_pAudioDeviceTxt->setText( pPref->m_sAlsaAudioDevice ); Index: patches/patch-gui_src_main_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-gui_src_main_cpp,v retrieving revision 1.1 diff -u -r1.1 patch-gui_src_main_cpp --- patches/patch-gui_src_main_cpp 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-gui_src_main_cpp 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-gui_src_main_cpp,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- gui/src/main.cpp.orig Fri Jan 1 21:17:50 2010 -+++ gui/src/main.cpp Fri Jan 1 21:22:45 2010 -@@ -219,6 +219,9 @@ int main(int argc, char *argv[]) +Index: gui/src/main.cpp +--- gui/src/main.cpp.orig ++++ gui/src/main.cpp +@@ -265,6 +265,9 @@ int main(int argc, char *argv[]) if (sSelectedDriver == "auto") { pPref->m_sAudioDriver = "Auto"; } @@ -11,12 +12,12 @@ else if (sSelectedDriver == "jack") { pPref->m_sAudioDriver = "Jack"; } -@@ -380,7 +383,7 @@ void showInfo() +@@ -441,7 +444,7 @@ void showInfo() void showUsage() { std::cout << "Usage: hydrogen [-v] [-h] -s file" << std::endl; - std::cout << " -d, --driver AUDIODRIVER - Use the selected audio driver (jack, alsa, oss)" << std::endl; + std::cout << " -d, --driver AUDIODRIVER - Use the selected audio driver (jack, alsa, oss, sndio)" << std::endl; std::cout << " -s, --song FILE - Load a song (*.h2song) at startup" << std::endl; - #ifdef LASH_SUPPORT - std::cout << " --lash-no-start-server - If LASH server not running, don't start" << endl + std::cout << " -p, --playlist FILE - Load a playlist (*.h2playlist) at startup" << std::endl; + std::cout << " -k, --kit drumkit_name - Load a drumkit at startup" << std::endl; Index: patches/patch-libs_hydrogen_include_hydrogen_Preferences_h =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-libs_hydrogen_include_hydrogen_Preferences_h,v retrieving revision 1.1 diff -u -r1.1 patch-libs_hydrogen_include_hydrogen_Preferences_h --- patches/patch-libs_hydrogen_include_hydrogen_Preferences_h 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-libs_hydrogen_include_hydrogen_Preferences_h 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-libs_hydrogen_include_hydrogen_Preferences_h,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- libs/hydrogen/include/hydrogen/Preferences.h.orig Fri Jan 1 02:59:34 2010 -+++ libs/hydrogen/include/hydrogen/Preferences.h Fri Jan 1 02:59:59 2010 -@@ -188,6 +188,9 @@ class Preferences : public Object (public) +Index: libs/hydrogen/include/hydrogen/Preferences.h +--- libs/hydrogen/include/hydrogen/Preferences.h.orig ++++ libs/hydrogen/include/hydrogen/Preferences.h +@@ -203,6 +203,9 @@ class Preferences : public Object (public) //___ oss driver properties ___ QString m_sOSSDevice; ///< Device used for output Index: patches/patch-libs_hydrogen_src_hydrogen_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-libs_hydrogen_src_hydrogen_cpp,v retrieving revision 1.1 diff -u -r1.1 patch-libs_hydrogen_src_hydrogen_cpp --- patches/patch-libs_hydrogen_src_hydrogen_cpp 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-libs_hydrogen_src_hydrogen_cpp 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-libs_hydrogen_src_hydrogen_cpp,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- libs/hydrogen/src/hydrogen.cpp.orig Wed Jul 22 20:36:28 2009 -+++ libs/hydrogen/src/hydrogen.cpp Fri Jan 1 16:35:38 2010 -@@ -67,6 +67,8 @@ +Index: libs/hydrogen/src/hydrogen.cpp +--- libs/hydrogen/src/hydrogen.cpp.orig ++++ libs/hydrogen/src/hydrogen.cpp +@@ -69,6 +69,8 @@ #include <hydrogen/playlist.h> #include "IO/OssDriver.h" @@ -10,7 +11,7 @@ #include "IO/FakeDriver.h" #include "IO/AlsaAudioDriver.h" #include "IO/PortAudioDriver.h" -@@ -1492,6 +1494,12 @@ AudioOutput* createDriver( const QString& sDriver ) +@@ -1554,6 +1556,12 @@ AudioOutput* createDriver( const QString& sDriver ) delete pDriver; pDriver = NULL; } @@ -23,7 +24,7 @@ } else if ( sDriver == "Jack" ) { pDriver = new JackOutput( audioEngine_process ); if ( pDriver->get_class_name() == "NullDriver" ) { -@@ -1579,6 +1587,7 @@ void audioEngine_startAudioDrivers() +@@ -1641,6 +1649,7 @@ void audioEngine_startAudioDrivers() QString sAudioDriver = preferencesMng->m_sAudioDriver; // sAudioDriver = "Auto"; if ( sAudioDriver == "Auto" ) { @@ -31,7 +32,7 @@ if ( ( m_pAudioDriver = createDriver( "Jack" ) ) == NULL ) { if ( ( m_pAudioDriver = createDriver( "Alsa" ) ) == NULL ) { if ( ( m_pAudioDriver = createDriver( "CoreAudio" ) ) == NULL ) { -@@ -1596,6 +1605,7 @@ void audioEngine_startAudioDrivers() +@@ -1658,6 +1667,7 @@ void audioEngine_startAudioDrivers() } } } @@ -39,10 +40,10 @@ } else { m_pAudioDriver = createDriver( sAudioDriver ); if ( m_pAudioDriver == NULL ) { -@@ -1613,6 +1623,12 @@ void audioEngine_startAudioDrivers() - #ifdef ALSA_SUPPORT - // Create MIDI driver - m_pMidiDriver = new AlsaMidiDriver(); +@@ -1677,6 +1687,12 @@ void audioEngine_startAudioDrivers() + AlsaMidiDriver *alsaMidiDriver = new AlsaMidiDriver(); + m_pMidiDriverOut = alsaMidiDriver; + m_pMidiDriver = alsaMidiDriver; + m_pMidiDriver->open(); + m_pMidiDriver->setActive( true ); +#endif Index: patches/patch-libs_hydrogen_src_local_file_mgr_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-libs_hydrogen_src_local_file_mgr_cpp,v retrieving revision 1.1 diff -u -r1.1 patch-libs_hydrogen_src_local_file_mgr_cpp --- patches/patch-libs_hydrogen_src_local_file_mgr_cpp 16 Apr 2018 20:19:15 -0000 1.1 +++ patches/patch-libs_hydrogen_src_local_file_mgr_cpp 7 Jan 2019 22:26:55 -0000 @@ -3,7 +3,34 @@ Index: libs/hydrogen/src/local_file_mgr.cpp --- libs/hydrogen/src/local_file_mgr.cpp.orig +++ libs/hydrogen/src/local_file_mgr.cpp -@@ -922,9 +922,9 @@ int LocalFileMng::loadPlayList( const std::string& pat +@@ -297,7 +297,7 @@ int LocalFileMng::savePattern( Song *song , int select + + QFile file( sPatternXmlFilename ); + if ( !file.open(QIODevice::WriteOnly) ) +- return NULL; ++ return 0; + + QTextStream TextStream( &file ); + doc.save( TextStream, 1 ); +@@ -917,7 +917,7 @@ int LocalFileMng::saveDrumkit( Drumkit *info ) + + QFile file( sDrumkitXmlFilename ); + if ( !file.open(QIODevice::WriteOnly) ) +- return NULL; ++ return 0; + + QTextStream TextStream( &file ); + doc.save( TextStream, 1 ); +@@ -963,7 +963,7 @@ int LocalFileMng::savePlayList( const std::string& pat + QString filename = QString( patternname.c_str() ); + QFile file(filename); + if ( !file.open(QIODevice::WriteOnly) ) +- return NULL; ++ return 0; + + QTextStream TextStream( &file ); + doc.save( TextStream, 1 ); +@@ -980,9 +980,9 @@ int LocalFileMng::loadPlayList( const std::string& pat std::string playlistInfoFile = patternname; std::ifstream verify( playlistInfoFile.c_str() , std::ios::in | std::ios::binary ); @@ -14,13 +41,13 @@ + return 1; } - TiXmlDocument doc( playlistInfoFile.c_str() ); -@@ -935,7 +935,7 @@ int LocalFileMng::loadPlayList( const std::string& pat - TiXmlNode* rootNode; // root element - if ( !( rootNode = doc.FirstChild( "playlist" ) ) ) { + QDomDocument doc = LocalFileMng::openXmlDocument( QString( patternname.c_str() ) ); +@@ -992,7 +992,7 @@ int LocalFileMng::loadPlayList( const std::string& pat + QDomNode rootNode = doc.firstChildElement( "playlist" ); // root element + if ( rootNode.isNull() ) { ERRORLOG( "Error reading playlist: playlist node not found" ); - return NULL; + return 1; } - - TiXmlNode* playlistNode = rootNode->FirstChild( "Songs" ); + QDomNode playlistNode = rootNode.firstChildElement( "Songs" ); + Index: patches/patch-libs_hydrogen_src_preferences_cpp =================================================================== RCS file: /cvs/ports/audio/hydrogen/patches/patch-libs_hydrogen_src_preferences_cpp,v retrieving revision 1.1 diff -u -r1.1 patch-libs_hydrogen_src_preferences_cpp --- patches/patch-libs_hydrogen_src_preferences_cpp 11 Jan 2010 05:11:32 -0000 1.1 +++ patches/patch-libs_hydrogen_src_preferences_cpp 7 Jan 2019 22:26:55 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-libs_hydrogen_src_preferences_cpp,v 1.1 2010/01/11 05:11:32 jakemsr Exp $ ---- libs/hydrogen/src/preferences.cpp.orig Wed Aug 26 05:12:27 2009 -+++ libs/hydrogen/src/preferences.cpp Sat Jan 2 03:22:38 2010 -@@ -143,7 +143,7 @@ Preferences::Preferences() +Index: libs/hydrogen/src/preferences.cpp +--- libs/hydrogen/src/preferences.cpp.orig ++++ libs/hydrogen/src/preferences.cpp +@@ -183,7 +183,7 @@ Preferences::Preferences() m_patternCategories.push_back( QString("not_categorized") ); //___ audio engine properties ___ @@ -10,7 +11,7 @@ m_bUseMetronome = false; m_fMetronomeVolume = 0.5; m_nMaxNotes = 256; -@@ -153,8 +153,11 @@ Preferences::Preferences() +@@ -193,8 +193,11 @@ Preferences::Preferences() //___ oss driver properties ___ m_sOSSDevice = QString("/dev/dsp"); @@ -23,13 +24,13 @@ m_sMidiPortName = QString("None"); m_nMidiChannelFilter = -1; m_bMidiNoteOffIgnore = false; -@@ -423,6 +426,15 @@ void Preferences::loadPreferences( bool bGlobal ) +@@ -484,6 +487,15 @@ void Preferences::loadPreferences( bool bGlobal ) m_sOSSDevice = LocalFileMng::readXmlString( ossDriverNode, "ossDevice", m_sOSSDevice ); } + //// SNDIO AUDIO DRIVER //// -+ TiXmlNode* sndioAudioDriverNode; -+ if ( !( sndioAudioDriverNode = audioEngineNode->FirstChild( "sndio_driver" ) ) ) { ++ QDomNode sndioAudioDriverNode = audioEngineNode.firstChildElement( "sndio_driver" ); ++ if ( sndioAudioDriverNode.isNull() ) { + WARNINGLOG( "sndio_driver node not found" ); + recreate = true; + } else { @@ -37,9 +38,9 @@ + } + //// JACK DRIVER //// - TiXmlNode* jackDriverNode; - if ( !( jackDriverNode = audioEngineNode->FirstChild( "jack_driver" ) ) ) { -@@ -469,7 +481,7 @@ void Preferences::loadPreferences( bool bGlobal ) + QDomNode jackDriverNode = audioEngineNode.firstChildElement( "jack_driver" ); + if ( jackDriverNode.isNull() ) { +@@ -530,7 +542,7 @@ void Preferences::loadPreferences( bool bGlobal ) WARNINGLOG( "midi_driver node not found" ); recreate = true; } else { @@ -48,17 +49,17 @@ 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 ); -@@ -750,6 +762,13 @@ void Preferences::savePreferences() - LocalFileMng::writeXmlString( &ossDriverNode, "ossDevice", m_sOSSDevice ); +@@ -830,6 +842,13 @@ void Preferences::savePreferences() + LocalFileMng::writeXmlString( ossDriverNode, "ossDevice", m_sOSSDevice ); } - audioEngineNode.InsertEndChild( ossDriverNode ); + audioEngineNode.appendChild( ossDriverNode ); + + //// SNDIO DRIVER //// -+ TiXmlElement sndioAudioDriverNode( "sndio_driver" ); ++ QDomNode sndioAudioDriverNode = doc.createElement( "sndio_driver" ); + { -+ LocalFileMng::writeXmlString( &sndioAudioDriverNode, "sndioDevice", m_sSndioDevice ); ++ LocalFileMng::writeXmlString( sndioAudioDriverNode, "sndioDevice", m_sSndioDevice ); + } -+ audioEngineNode.InsertEndChild( sndioAudioDriverNode ); ++ audioEngineNode.appendChild( sndioAudioDriverNode ); //// JACK DRIVER //// - TiXmlElement jackDriverNode( "jack_driver" ); + QDomNode jackDriverNode = doc.createElement( "jack_driver" ); Index: patches/patch-libs_hydrogen_src_song_cpp =================================================================== RCS file: patches/patch-libs_hydrogen_src_song_cpp diff -N patches/patch-libs_hydrogen_src_song_cpp --- patches/patch-libs_hydrogen_src_song_cpp 27 Oct 2010 22:06:13 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-libs_hydrogen_src_song_cpp,v 1.1 2010/10/27 22:06:13 espie Exp $ ---- libs/hydrogen/src/song.cpp.orig Wed Oct 27 23:58:12 2010 -+++ libs/hydrogen/src/song.cpp Wed Oct 27 23:58:24 2010 -@@ -141,7 +141,7 @@ Song* Song::get_default_song(){ - song->set_swing_factor( 0.0 ); - - InstrumentList* pList = new InstrumentList(); -- Instrument *pNewInstr = new Instrument(QString( 0 ), "New instrument", new ADSR()); -+ Instrument *pNewInstr = new Instrument(QString(), "New instrument", new ADSR()); - pList->add( pNewInstr ); - song->set_instrument_list( pList ); - Index: patches/patch-libs_hydrogen_src_xml_tinyxmlparser_cpp =================================================================== RCS file: patches/patch-libs_hydrogen_src_xml_tinyxmlparser_cpp diff -N patches/patch-libs_hydrogen_src_xml_tinyxmlparser_cpp --- patches/patch-libs_hydrogen_src_xml_tinyxmlparser_cpp 16 Apr 2018 20:19:15 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,40 +0,0 @@ -$OpenBSD: patch-libs_hydrogen_src_xml_tinyxmlparser_cpp,v 1.1 2018/04/16 20:19:15 naddy Exp $ - -Index: libs/hydrogen/src/xml/tinyxmlparser.cpp ---- libs/hydrogen/src/xml/tinyxmlparser.cpp.orig -+++ libs/hydrogen/src/xml/tinyxmlparser.cpp -@@ -327,14 +327,14 @@ const char* TiXmlDocument::Parse( const char* p ) - if ( !p || !*p ) - { - SetError( TIXML_ERROR_DOCUMENT_EMPTY ); -- return false; -+ return 0; - } - - p = SkipWhiteSpace( p ); - if ( !p ) - { - SetError( TIXML_ERROR_DOCUMENT_EMPTY ); -- return false; -+ return 0; - } - - while ( p && *p ) -@@ -542,7 +542,7 @@ const char* TiXmlElement::Parse( const char* p ) - if ( !p || !*p || *p != '<' ) - { - if ( document ) document->SetError( TIXML_ERROR_PARSING_ELEMENT ); -- return false; -+ return 0; - } - - p = SkipWhiteSpace( p+1 ); -@@ -552,7 +552,7 @@ const char* TiXmlElement::Parse( const char* p ) - if ( !p || !*p ) - { - if ( document ) document->SetError( TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME ); -- return false; -+ return 0; - } - - TIXML_STRING endTag ("</"); Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/audio/hydrogen/pkg/PLIST,v retrieving revision 1.3 diff -u -r1.3 PLIST --- pkg/PLIST 27 Jun 2018 21:03:35 -0000 1.3 +++ pkg/PLIST 7 Jan 2019 22:26:55 -0000 @@ -19,17 +19,33 @@ share/hydrogen/data/doc/img/ share/hydrogen/data/doc/img/AudioEngineInfoDialog.png share/hydrogen/data/doc/img/CreateNewPattern.png +share/hydrogen/data/doc/img/Director.png +share/hydrogen/data/doc/img/Downloading_SoundLibrary.png share/hydrogen/data/doc/img/DrumkitExport.png share/hydrogen/data/doc/img/DrumkitImport.png share/hydrogen/data/doc/img/DrumkitLoad.png share/hydrogen/data/doc/img/DrumkitSave.png +share/hydrogen/data/doc/img/FX_send_knobs.png +share/hydrogen/data/doc/img/GUI_Sections.svg +share/hydrogen/data/doc/img/GUI_Sections_0.9.5.png share/hydrogen/data/doc/img/HearNewNotes.png +share/hydrogen/data/doc/img/Hydrogen_0.9.5_gui.png +share/hydrogen/data/doc/img/InstrumentMapping.png +share/hydrogen/data/doc/img/Instrument_General.png +share/hydrogen/data/doc/img/Instrument_Layers.png +share/hydrogen/data/doc/img/JackTrans_Master.png +share/hydrogen/data/doc/img/LADSPA_FX_Properties.png +share/hydrogen/data/doc/img/MainControls_Rubberband_btn.png share/hydrogen/data/doc/img/MainModePattern.png share/hydrogen/data/doc/img/MainModeSong.png share/hydrogen/data/doc/img/MainPlay.png share/hydrogen/data/doc/img/MainRecord.png share/hydrogen/data/doc/img/MainStop.png share/hydrogen/data/doc/img/MainToolbar.png +share/hydrogen/data/doc/img/MainToolbar_V2.png +share/hydrogen/data/doc/img/MeasureSettings.png +share/hydrogen/data/doc/img/MidiIN_CPU.png +share/hydrogen/data/doc/img/Midi_Actions.png share/hydrogen/data/doc/img/Mixer.png share/hydrogen/data/doc/img/MixerDelay.png share/hydrogen/data/doc/img/MixerFX.png @@ -46,18 +62,30 @@ share/hydrogen/data/doc/img/MixerSolo.png share/hydrogen/data/doc/img/MovePatternDown.png share/hydrogen/data/doc/img/MovePatternUp.png +share/hydrogen/data/doc/img/NoteKey.png +share/hydrogen/data/doc/img/NoteOff_NoteLength.png share/hydrogen/data/doc/img/PatternEditor.png share/hydrogen/data/doc/img/PatternEditorButtons.png +share/hydrogen/data/doc/img/PatternEditorControls.png share/hydrogen/data/doc/img/PatternEditorDownUp.png share/hydrogen/data/doc/img/PatternEditorInstr.png +share/hydrogen/data/doc/img/PatternEditorInstr_V2.png share/hydrogen/data/doc/img/PatternEditorPattern.png share/hydrogen/data/doc/img/PatternEditorRecording.png share/hydrogen/data/doc/img/PatternEditorSizeRes.png +share/hydrogen/data/doc/img/PatternEditor_DrumMode.png +share/hydrogen/data/doc/img/PatternEditor_PianoMode.png share/hydrogen/data/doc/img/PreferencesAppearance.png share/hydrogen/data/doc/img/PreferencesAudioSystem.png +share/hydrogen/data/doc/img/PreferencesAudioSystem_V2.png share/hydrogen/data/doc/img/PreferencesGeneral.png +share/hydrogen/data/doc/img/PreferencesGeneral_V2.png share/hydrogen/data/doc/img/PreferencesMidiSystem.png +share/hydrogen/data/doc/img/PreferencesMidiSystem_V2.png +share/hydrogen/data/doc/img/Rec_button.png share/hydrogen/data/doc/img/Res.png +share/hydrogen/data/doc/img/SampleEditor.png +share/hydrogen/data/doc/img/SampleEditor_V5.png share/hydrogen/data/doc/img/SongEditor.png share/hydrogen/data/doc/img/SongEditorAddLayer.png share/hydrogen/data/doc/img/SongEditorButtons.png @@ -68,11 +96,20 @@ share/hydrogen/data/doc/img/SongEditorSelectMode.png share/hydrogen/data/doc/img/SongLoop.png share/hydrogen/data/doc/img/SongOperations.png +share/hydrogen/data/doc/img/SoundLibrary.png +share/hydrogen/data/doc/img/Sound_Library_import.png +share/hydrogen/data/doc/img/SoundlibraryHierarchy.svg +share/hydrogen/data/doc/img/SoundlibraryHierarchy_V3.png +share/hydrogen/data/doc/img/SoundlibraryHierarchy_V4.png share/hydrogen/data/doc/img/Tutorial2.h2song share/hydrogen/data/doc/img/TutorialEnd.png share/hydrogen/data/doc/img/TutorialStart.png +share/hydrogen/data/doc/img/Virtual_patterns_menu.png +share/hydrogen/data/doc/img/add_tag.png +share/hydrogen/data/doc/img/add_tempo_change.png share/hydrogen/data/doc/img/background_BPM.png share/hydrogen/data/doc/img/background_Control.png +share/hydrogen/data/doc/img/background_Control_V2.png share/hydrogen/data/doc/img/background_Load.png share/hydrogen/data/doc/img/background_Mode.png share/hydrogen/data/doc/img/bg_topPanel.png @@ -80,6 +117,7 @@ share/hydrogen/data/doc/img/btn_clear_off.png share/hydrogen/data/doc/img/btn_draw.png share/hydrogen/data/doc/img/btn_edit_on.png +share/hydrogen/data/doc/img/btn_hear.png share/hydrogen/data/doc/img/btn_hear_on.png share/hydrogen/data/doc/img/btn_live_on.png share/hydrogen/data/doc/img/btn_loop_on.png @@ -104,14 +142,17 @@ share/hydrogen/data/doc/img/bypass_on.png share/hydrogen/data/doc/img/bypass_over.png share/hydrogen/data/doc/img/cpuload.png +share/hydrogen/data/doc/img/director.png share/hydrogen/data/doc/img/downBtn_on.png share/hydrogen/data/doc/img/edit_off.png +share/hydrogen/data/doc/img/fill_clear_pattern.png share/hydrogen/data/doc/img/hearBtn_on.png share/hydrogen/data/doc/img/instr_ed0.png share/hydrogen/data/doc/img/instr_ed1.png share/hydrogen/data/doc/img/item_selected.png share/hydrogen/data/doc/img/jack_transport.png share/hydrogen/data/doc/img/midi_in.png +share/hydrogen/data/doc/img/mixer-instrrack_btn.png share/hydrogen/data/doc/img/newPatternBtn_on.png share/hydrogen/data/doc/img/nl/ share/hydrogen/data/doc/img/nl/DrumkitExport.png @@ -132,13 +173,17 @@ share/hydrogen/data/doc/img/nl/SongEditorInsertMode.png share/hydrogen/data/doc/img/nl/SongEditorSelectMode.png share/hydrogen/data/doc/img/nl/SongEditorSelectModeCopy.png +share/hydrogen/data/doc/img/pattern_properties.png share/hydrogen/data/doc/img/quantBtn_off.png share/hydrogen/data/doc/img/quantBtn_on.png share/hydrogen/data/doc/img/recBtn_on.png +share/hydrogen/data/doc/img/screenshot-director.png share/hydrogen/data/doc/img/showFX_on.png share/hydrogen/data/doc/img/showPeaks_on.png share/hydrogen/data/doc/img/songFuncBtn_on.png +share/hydrogen/data/doc/img/tag_bar.png share/hydrogen/data/doc/img/tastiera.png +share/hydrogen/data/doc/img/tempo_bar.png share/hydrogen/data/doc/img/upBtn_on.png share/hydrogen/data/doc/img_tutorial/ share/hydrogen/data/doc/img_tutorial/Bridge1_4th.png @@ -224,7 +269,10 @@ share/hydrogen/data/hydrogen.default.conf @comment share/hydrogen/data/hydrogen.default.conf.orig share/hydrogen/data/i18n/ +share/hydrogen/data/i18n/hydrogen.ca.qm share/hydrogen/data/i18n/hydrogen.ca.ts +share/hydrogen/data/i18n/hydrogen.cs.qm +share/hydrogen/data/i18n/hydrogen.cs.ts share/hydrogen/data/i18n/hydrogen.de.qm share/hydrogen/data/i18n/hydrogen.de.ts share/hydrogen/data/i18n/hydrogen.es.qm @@ -288,11 +336,15 @@ share/hydrogen/data/img/gray/instrumentEditor/deleteLayer_off.png share/hydrogen/data/img/gray/instrumentEditor/deleteLayer_on.png share/hydrogen/data/img/gray/instrumentEditor/deleteLayer_over.png +share/hydrogen/data/img/gray/instrumentEditor/editLayer_off.png +share/hydrogen/data/img/gray/instrumentEditor/editLayer_on.png +share/hydrogen/data/img/gray/instrumentEditor/editLayer_over.png share/hydrogen/data/img/gray/instrumentEditor/instrumentTab.png share/hydrogen/data/img/gray/instrumentEditor/instrumentTab_top.png share/hydrogen/data/img/gray/instrumentEditor/instrument_show_off.png share/hydrogen/data/img/gray/instrumentEditor/instrument_show_on.png share/hydrogen/data/img/gray/instrumentEditor/layerTab.png +share/hydrogen/data/img/gray/instrumentEditor/layerTabnew.png share/hydrogen/data/img/gray/instrumentEditor/library_show_off.png share/hydrogen/data/img/gray/instrumentEditor/library_show_on.png share/hydrogen/data/img/gray/instrumentEditor/loadLayer_off.png @@ -425,6 +477,12 @@ share/hydrogen/data/img/gray/playerControlPanel/btn_play_off.png share/hydrogen/data/img/gray/playerControlPanel/btn_play_on.png share/hydrogen/data/img/gray/playerControlPanel/btn_play_over.png +share/hydrogen/data/img/gray/playerControlPanel/btn_rec_off.png +share/hydrogen/data/img/gray/playerControlPanel/btn_rec_on.png +share/hydrogen/data/img/gray/playerControlPanel/btn_rec_over.png +share/hydrogen/data/img/gray/playerControlPanel/btn_recdel_off.png +share/hydrogen/data/img/gray/playerControlPanel/btn_recdel_on.png +share/hydrogen/data/img/gray/playerControlPanel/btn_recdel_over.png share/hydrogen/data/img/gray/playerControlPanel/btn_rwd_off.png share/hydrogen/data/img/gray/playerControlPanel/btn_rwd_on.png share/hydrogen/data/img/gray/playerControlPanel/btn_rwd_over.png @@ -468,6 +526,8 @@ share/hydrogen/data/img/gray/playerControlPanel/midiActivity_on.png share/hydrogen/data/img/gray/playerControlPanel/onoff.png share/hydrogen/data/img/gray/playerControlPanel/playlist_background_Control.png +share/hydrogen/data/img/gray/playerControlPanel/rubber_off.png +share/hydrogen/data/img/gray/playerControlPanel/rubber_on.png share/hydrogen/data/img/gray/playerControlPanel/statusLED_off.png share/hydrogen/data/img/gray/playerControlPanel/statusLED_on.png share/hydrogen/data/img/gray/preferencesDialog/ @@ -477,6 +537,9 @@ share/hydrogen/data/img/gray/skin_btn_over.png share/hydrogen/data/img/gray/songEditor/ share/hydrogen/data/img/gray/songEditor/bg_topPanel.png +share/hydrogen/data/img/gray/songEditor/btn_bpm_off.png +share/hydrogen/data/img/gray/songEditor/btn_bpm_on.png +share/hydrogen/data/img/gray/songEditor/btn_bpm_over.png share/hydrogen/data/img/gray/songEditor/btn_clear_off.png share/hydrogen/data/img/gray/songEditor/btn_clear_on.png share/hydrogen/data/img/gray/songEditor/btn_clear_over.png @@ -514,6 +577,9 @@ share/hydrogen/data/img/gray/waveDisplay/ share/hydrogen/data/img/gray/waveDisplay/background.png share/hydrogen/data/img/gray/waveDisplay/bgsamplewavedisplay.png +share/hydrogen/data/img/gray/waveDisplay/detailsamplewavedisplay.png +share/hydrogen/data/img/gray/waveDisplay/mainsamplewavedisplay.png +share/hydrogen/data/img/gray/waveDisplay/targetsamplewavedisplay.png @comment share/hydrogen/data/new_tutorial/ @comment share/hydrogen/data/new_tutorial/img_tutorial/ @comment share/hydrogen/data/new_tutorial/img_tutorial/Bridge1_4th.png
