Add sndio support

Index: src/core/src/preferences.cpp
--- src/core/src/preferences.cpp.orig
+++ src/core/src/preferences.cpp
@@ -146,11 +146,14 @@ Preferences::Preferences()
 	m_nBufferSize = 1024;
 	m_nSampleRate = 44100;
 
+	//___ SndioAudio driver properties ___
+	m_sSndioDevice = QString("");
+
 	//___ oss driver properties ___
 	m_sOSSDevice = QString("/dev/dsp");
 
 	//___ MIDI Driver properties
-	m_sMidiDriver = QString("ALSA");
+	m_sMidiDriver = QString("SndioMidi");
 	m_sMidiPortName = QString("None");
 	m_sMidiOutputPortName = QString("None");
 	m_nMidiChannelFilter = -1;
@@ -387,6 +390,16 @@ void Preferences::loadPreferences( bool bGlobal )
 				m_nBufferSize = LocalFileMng::readXmlInt( audioEngineNode, "buffer_size", m_nBufferSize );
 				m_nSampleRate = LocalFileMng::readXmlInt( audioEngineNode, "samplerate", m_nSampleRate );
 
+				//// SNDIO DRIVER ////
+				QDomNode sndioAudioDriverNode = audioEngineNode.firstChildElement( "sndio_driver" );
+				if ( sndioAudioDriverNode.isNull()  ) {
+					WARNINGLOG( "sndio_driver node not found" );
+					recreate = true;
+				} else {
+					m_sSndioDevice = LocalFileMng::readXmlString( sndioAudioDriverNode, "sndioDevice", m_sSndioDevice );
+				}
+
+
 				//// OSS DRIVER ////
 				QDomNode ossDriverNode = audioEngineNode.firstChildElement( "oss_driver" );
 				if ( ossDriverNode.isNull()  ) {
@@ -396,6 +409,7 @@ void Preferences::loadPreferences( bool bGlobal )
 					m_sOSSDevice = LocalFileMng::readXmlString( ossDriverNode, "ossDevice", m_sOSSDevice );
 				}
 
+
 				//// JACK DRIVER ////
 				QDomNode jackDriverNode = audioEngineNode.firstChildElement( "jack_driver" );
 				if ( jackDriverNode.isNull() ) {
@@ -442,7 +456,7 @@ void Preferences::loadPreferences( bool bGlobal )
 					WARNINGLOG( "midi_driver node not found" );
 					recreate = true;
 				} else {
-					m_sMidiDriver = LocalFileMng::readXmlString( midiDriverNode, "driverName", "ALSA" );
+					m_sMidiDriver = LocalFileMng::readXmlString( midiDriverNode, "driverName", "SndioMidi" );
 					m_sMidiPortName = LocalFileMng::readXmlString( midiDriverNode, "port_name", "None" );
 					m_sMidiOutputPortName = LocalFileMng::readXmlString( midiDriverNode, "output_port_name", "None" );
 					m_nMidiChannelFilter = LocalFileMng::readXmlInt( midiDriverNode, "channel_filter", -1 );
@@ -776,6 +790,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 ) );
+
+		//// SNDIO DRIVER ////
+		QDomNode sndioAudioDriverNode = doc.createElement( "sndio_driver" );
+		{
+			LocalFileMng::writeXmlString( sndioAudioDriverNode, "sndioDevice", m_sSndioDevice );
+		}
+		audioEngineNode.appendChild( sndioAudioDriverNode );
 
 		//// OSS DRIVER ////
 		QDomNode ossDriverNode = doc.createElement( "oss_driver" );
