Description: Check for PulseAudio connection
 Only write device name when pulse connection is established
 
Forwarded: yes
Author: Carmelo Piccione <carmelo.piccione@gmail.com>
Last-Update: 2010-07-29
--- a/src/projectM-pulseaudio/QPulseAudioDeviceChooser.cpp
+++ b/src/projectM-pulseaudio/QPulseAudioDeviceChooser.cpp
@@ -30,7 +30,8 @@
 	QSettings settings ( "projectM", "qprojectM-pulseaudio" );
 	settings.setValue ( "tryFirstAvailablePlaybackMonitor",
 	                    this->tryFirstPlayBackMonitorCheckBox->checkState() == Qt::Checked );
-	if (_qpulseAudioThread->sourcePosition() != _qpulseAudioThread->devices().end())
+			    
+	if ( _qpulseAudioThread != 0 && (_qpulseAudioThread->devices().size() > 0) && _qpulseAudioThread->sourcePosition() != _qpulseAudioThread->devices().end())
 		settings.setValue("pulseAudioDeviceName", *_qpulseAudioThread->sourcePosition());
 	
 }
@@ -63,6 +64,7 @@
 	devicesListView->setEnabled(state != Qt::Checked);
 		
 	if (state == Qt::Checked) {
+	    if (_qpulseAudioThread != 0)
 		_qpulseAudioThread->connectDevice();
 	}
 }
--- a/src/projectM-pulseaudio/qprojectM-pulseaudio.cpp
+++ b/src/projectM-pulseaudio/qprojectM-pulseaudio.cpp
@@ -118,7 +118,8 @@
 	
 	//QApplication::connect(mainWindow, SIGNAL(shuttingDown()), pulseThread, SLOT(cleanup()), Qt::DirectConnection);
  	int ret = app.exec();
-	devChooser.writeSettings();
+	if (pulseThread != 0)
+	  devChooser.writeSettings();
 	
 	if (mainWindow)
         	mainWindow->unregisterSettingsAction(&pulseAction);
