@@ -829,14 +829,138 @@ void Mixer::runChangesInModel()
829829 }
830830}
831831
832+ bool Mixer::isAudioDevNameValid (QString name)
833+ {
834+ #ifdef LMMS_HAVE_SDL
835+ if (name == AudioSdl::name ())
836+ {
837+ return true ;
838+ }
839+ #endif
840+
841+
842+ #ifdef LMMS_HAVE_ALSA
843+ if (name == AudioAlsa::name ())
844+ {
845+ return true ;
846+ }
847+ #endif
848+
849+
850+ #ifdef LMMS_HAVE_PULSEAUDIO
851+ if (name == AudioPulseAudio::name ())
852+ {
853+ return true ;
854+ }
855+ #endif
856+
857+
858+ #ifdef LMMS_HAVE_OSS
859+ if (name == AudioOss::name ())
860+ {
861+ return true ;
862+ }
863+ #endif
864+
865+ #ifdef LMMS_HAVE_SNDIO
866+ if (name == AudioSndio::name ())
867+ {
868+ return true ;
869+ }
870+ #endif
871+
872+ #ifdef LMMS_HAVE_JACK
873+ if (name == AudioJack::name ())
874+ {
875+ return true ;
876+ }
877+ #endif
878+
879+
880+ #ifdef LMMS_HAVE_PORTAUDIO
881+ if (name == AudioPortAudio::name ())
882+ {
883+ return true ;
884+ }
885+ #endif
886+
887+
888+ #ifdef LMMS_HAVE_SOUNDIO
889+ if (name == AudioSoundIo::name ())
890+ {
891+ return true ;
892+ }
893+ #endif
832894
895+ if (name == AudioDummy::name ())
896+ {
897+ return true ;
898+ }
833899
900+ return false ;
901+ }
902+
903+ bool Mixer::isMidiDevNameValid (QString name)
904+ {
905+ #ifdef LMMS_HAVE_ALSA
906+ if (name == MidiAlsaSeq::name () || name == MidiAlsaRaw::name ())
907+ {
908+ return true ;
909+ }
910+ #endif
911+
912+ #ifdef LMMS_HAVE_JACK
913+ if (name == MidiJack::name ())
914+ {
915+ return true ;
916+ }
917+ #endif
918+
919+ #ifdef LMMS_HAVE_OSS
920+ if (name == MidiOss::name ())
921+ {
922+ return true ;
923+ }
924+ #endif
925+
926+ #ifdef LMMS_HAVE_SNDIO
927+ if (name == MidiSndio::name ())
928+ {
929+ return true ;
930+ }
931+ #endif
932+
933+ #ifdef LMMS_BUILD_WIN32
934+ if (name == MidiWinMM::name ())
935+ {
936+ return true ;
937+ }
938+ #endif
939+
940+ #ifdef LMMS_BUILD_APPLE
941+ if (name == MidiApple::name ())
942+ {
943+ return true ;
944+ }
945+ #endif
946+
947+ if (name == MidiDummy::name ())
948+ {
949+ return true ;
950+ }
951+
952+ return false ;
953+ }
834954
835955AudioDevice * Mixer::tryAudioDevices ()
836956{
837957 bool success_ful = false ;
838958 AudioDevice * dev = NULL ;
839959 QString dev_name = ConfigManager::inst ()->value ( " mixer" , " audiodev" );
960+ if ( !isAudioDevNameValid ( dev_name ) )
961+ {
962+ dev_name = " " ;
963+ }
840964
841965 m_audioDevStartFailed = false ;
842966
@@ -980,6 +1104,10 @@ MidiClient * Mixer::tryMidiClients()
9801104{
9811105 QString client_name = ConfigManager::inst ()->value ( " mixer" ,
9821106 " mididev" );
1107+ if ( !isMidiDevNameValid ( client_name ) )
1108+ {
1109+ client_name = " " ;
1110+ }
9831111
9841112#ifdef LMMS_HAVE_ALSA
9851113 if ( client_name == MidiAlsaSeq::name () || client_name == " " )
0 commit comments