r3857 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/phone-kit

chris at sita.openmoko.org chris at sita.openmoko.org
Wed Jan 16 16:53:51 CET 2008


Author: chris
Date: 2008-01-16 16:53:50 +0100 (Wed, 16 Jan 2008)
New Revision: 3857

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-alsa-volume-control.c
Log:
        * src/phone-kit/moko-alsa-volume-control.c:
        (moko_alsa_volume_control_set_device_from_name):
        Finish implementing (didn't realise I left this unfinished): Fix
        infinite loop, get card name correctly and resolve alsa alias


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-16 15:24:27 UTC (rev 3856)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-16 15:53:50 UTC (rev 3857)
@@ -1,5 +1,12 @@
 2008-01-16  Chris Lord  <chris at openedhand.com>
 
+	* src/phone-kit/moko-alsa-volume-control.c:
+	(moko_alsa_volume_control_set_device_from_name):
+	Finish implementing (didn't realise I left this unfinished): Fix
+	infinite loop, get card name correctly and resolve alsa alias
+
+2008-01-16  Chris Lord  <chris at openedhand.com>
+
 	* configure.ac:
 	* src/phone-kit/Makefile.am:
 	Add alsa to dependencies and compile volume control object/widget

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-alsa-volume-control.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-alsa-volume-control.c	2008-01-16 15:24:27 UTC (rev 3856)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-alsa-volume-control.c	2008-01-16 15:53:50 UTC (rev 3857)
@@ -427,19 +427,30 @@
 
 	while (snd_card_next (&i) == 0) {
 		void **hints;
+		
+		if (i == -1) break;
 	
 		if (snd_device_name_hint (i, "pcm", &hints) == 0) {
+			gchar *separator;
 			gchar *device = strdup (snd_device_name_get_hint (
-				hints[0], "NAME"));
-			snd_device_name_free_hint (hints);
-			strchr (device, ':')[0] = '\0';
+				hints[0], "DESC"));
 			
+			if ((separator = strchr (device, ',')))
+			  *separator = '\0';
+			
 			if (strcmp (device, name) == 0) {
+				g_free (device);
+				
+				device = strdup (snd_device_name_get_hint (
+					hints[0], "NAME"));
+				snd_device_name_free_hint (hints);
+				strchr (device, ':')[0] = '\0';
+				
 				moko_alsa_volume_control_set_device (
 					control, device);
-				g_free (device);
 				return;
 			}
+			snd_device_name_free_hint (hints);
 			g_free (device);
 		}
 	}





More information about the commitlog mailing list