$OpenBSD: patch-src_core_src_hydrogen_cpp,v 1.1 2019/06/08 18:42:32 rapha Exp $

Add sndio support

Index: src/core/src/hydrogen.cpp
--- src/core/src/hydrogen.cpp.orig
+++ src/core/src/hydrogen.cpp
@@ -89,6 +89,8 @@
 #include <hydrogen/IO/PortMidiDriver.h>
 #include <hydrogen/IO/CoreAudioDriver.h>
 #include <hydrogen/IO/PulseAudioDriver.h>
+#include <hydrogen/IO/SndioAudioDriver.h>
+#include <hydrogen/IO/SndioMidiDriver.h>
 
 namespace H2Core
 {
@@ -1392,7 +1394,13 @@ AudioOutput* createDriver( const QString& sDriver )
 	Preferences *pPref = Preferences::get_instance();
 	AudioOutput *pDriver = NULL;
 
-	if ( sDriver == "Oss" ) {
+	if ( sDriver == "SndioAudio" ) {
+		pDriver = new SndioAudioDriver( audioEngine_process );
+		if ( pDriver->class_name() == NullDriver::class_name() ) {
+			delete pDriver;
+			pDriver = NULL;
+		}
+	} else if ( sDriver == "Oss" ) {
 		pDriver = new OssDriver( audioEngine_process );
 		if ( pDriver->class_name() == NullDriver::class_name() ) {
 			delete pDriver;
@@ -1491,6 +1499,7 @@ void audioEngine_startAudioDrivers()
 	QString sAudioDriver = preferencesMng->m_sAudioDriver;
 	if ( sAudioDriver == "Auto" ) {
 	#ifndef WIN32
+		if ( ( m_pAudioDriver = createDriver( "SndioAudio" ) ) == NULL ) {
 		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()
 				}
 			}
 		}
+		}
 	#else
 		//On Windows systems, use PortAudio is the prioritized backend
 		if ( ( m_pAudioDriver = createDriver( "PortAudio" ) ) == NULL ) {
@@ -1545,7 +1555,13 @@ void audioEngine_startAudioDrivers()
 		}
 	}
 
-	if ( preferencesMng->m_sMidiDriver == "ALSA" ) {
+	if ( preferencesMng->m_sMidiDriver == "SndioMidi" ) {        
+#ifdef H2CORE_HAVE_SNDIO
+		m_pMidiDriver = new SndioMidiDriver();
+		m_pMidiDriver->open();
+		m_pMidiDriver->setActive( true );
+#endif
+	} else if ( preferencesMng->m_sMidiDriver == "ALSA" ) {
 #ifdef H2CORE_HAVE_ALSA
 		// Create MIDI driver
 		AlsaMidiDriver *alsaMidiDriver = new AlsaMidiDriver();
