From 5d73443c3ade58c2d58ff4eca760fd10799bbc14 Mon Sep 17 00:00:00 2001
From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
Date: Wed, 5 Mar 2008 11:59:20 -0500
Subject: [PATCH] Save sound card choice in the user file

---
 sflphone-gtk/src/configwindow.c |  4 ++--
 src/audio/audiolayer.cpp        |  9 ++-------
 src/managerimpl.cpp             | 16 ++++++++++------
 3 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/sflphone-gtk/src/configwindow.c b/sflphone-gtk/src/configwindow.c
index 09075a3713..a8454c9790 100644
--- a/sflphone-gtk/src/configwindow.c
+++ b/sflphone-gtk/src/configwindow.c
@@ -985,7 +985,7 @@ create_audio_tab ()
 	outputAudioDeviceManagerStore = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
 	config_window_fill_output_audio_device_list();
 	outputDeviceComboBox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(outputAudioDeviceManagerStore));
-	//select_active_output_audio_device();
+	select_active_output_audio_device();
   	gtk_label_set_mnemonic_widget(GTK_LABEL(titleLabel), outputDeviceComboBox);
 	g_signal_connect(G_OBJECT(outputDeviceComboBox), "changed", G_CALLBACK(select_audio_output_device), outputDeviceComboBox);
 
@@ -1006,7 +1006,7 @@ create_audio_tab ()
 	inputAudioDeviceManagerStore = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
 	config_window_fill_input_audio_device_list();
 	inputDeviceComboBox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(inputAudioDeviceManagerStore));
-	//select_active_input_audio_device();
+	select_active_input_audio_device();
 	gtk_label_set_mnemonic_widget(GTK_LABEL(titleLabel), inputDeviceComboBox);
 	g_signal_connect(G_OBJECT(inputDeviceComboBox), "changed", G_CALLBACK(select_audio_input_device), inputDeviceComboBox);
 
diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp
index 9e14e297c8..85ed055320 100644
--- a/src/audio/audiolayer.cpp
+++ b/src/audio/audiolayer.cpp
@@ -533,15 +533,10 @@ AudioLayer::getSoundCardsInfo( int flag )
 
 	if( snd_ctl_pcm_info ( handle ,pcminfo ) < 0) _debugAlsa(" Cannot get info\n");
 	else{
-	  _debugAlsa("card %i : %s [%s]- device %i : %s [%s] \n - driver %s - dir %i\n", 
+	  _debugAlsa("card %i : %s [%s]\n", 
 	      numCard, 
 	      snd_ctl_card_info_get_id(info),
-	      snd_ctl_card_info_get_name( info ),
-	      snd_pcm_info_get_device( pcminfo ), 
-	      snd_pcm_info_get_id(pcminfo),
-	      snd_pcm_info_get_name( pcminfo),
-	      snd_ctl_card_info_get_driver( info ),
-	      snd_pcm_info_get_stream( pcminfo ));
+	      snd_ctl_card_info_get_name( info ));
 	  description = snd_ctl_card_info_get_name( info );
 	  description.append(" - ");
 	  description.append(snd_pcm_info_get_name( pcminfo ));
diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp
index 52a6d6433d..04671e1798 100644
--- a/src/managerimpl.cpp
+++ b/src/managerimpl.cpp
@@ -1132,7 +1132,7 @@ ManagerImpl::retrieveActiveCodecs()
   void
 ManagerImpl::setActiveCodecList(const std::vector<std::string>& list)
 {
-  _debug("Set active codecs list");
+  _debug("Set active codecs list\n");
   _codecDescriptorMap.saveActiveCodecs(list);
   // setConfig
   std::string s = serialize(list);
@@ -1304,6 +1304,8 @@ ManagerImpl::setAudioOutputDevice(const int index)
       _audiodriver->getFrameSize(), 
       SFL_PCM_PLAYBACK,
       _audiodriver->getAudioPlugin());
+  // set config
+  setConfig( AUDIO , DRIVER_NAME_OUT , index );
 }
 
 /**
@@ -1329,6 +1331,8 @@ ManagerImpl::setAudioInputDevice(const int index)
       _audiodriver->getFrameSize(), 
       SFL_PCM_CAPTURE,
       _audiodriver->getAudioPlugin());
+  // set config
+  setConfig( AUDIO , DRIVER_NAME_IN , index );
 }
 
 /**
@@ -1339,11 +1343,11 @@ ManagerImpl::getCurrentAudioDevicesIndex()
 {
   _debug("Get current audio devices index\n");
   std::vector<std::string> v;
-  std::stringstream ss;
-  ss << _audiodriver->getIndexOut();
-  v.push_back( ss.str() );
-  ss << _audiodriver->getIndexIn();
-  v.push_back( ss.str() );
+  std::stringstream ssi , sso;
+  sso << _audiodriver->getIndexOut();
+  v.push_back( sso.str() );
+  ssi << _audiodriver->getIndexIn();
+  v.push_back( ssi.str() );
   return v;
 }
 
-- 
GitLab