[gnome-media] Sort profiles by priority



commit ac5daf16814af90df423a445bce5ad9dc8cffa8e
Author: Bastien Nocera <hadess hadess net>
Date:   Thu Jul 23 15:21:12 2009 +0100

    Sort profiles by priority

 gnome-volume-control/src/gvc-mixer-card.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/gnome-volume-control/src/gvc-mixer-card.c b/gnome-volume-control/src/gvc-mixer-card.c
index 8f5dd07..e0623bc 100644
--- a/gnome-volume-control/src/gvc-mixer-card.c
+++ b/gnome-volume-control/src/gvc-mixer-card.c
@@ -258,6 +258,17 @@ gvc_mixer_card_get_profiles (GvcMixerCard *card)
         return card->priv->profiles;
 }
 
+static int
+sort_profiles (GvcMixerCardProfile *a,
+	       GvcMixerCardProfile *b)
+{
+	if (a->priority == b->priority)
+		return 0;
+	if (a->priority > b->priority)
+		return 1;
+	return -1;
+}
+
 gboolean
 gvc_mixer_card_set_profiles (GvcMixerCard *card,
                              GList        *profiles)
@@ -265,7 +276,7 @@ gvc_mixer_card_set_profiles (GvcMixerCard *card,
         g_return_val_if_fail (GVC_IS_MIXER_CARD (card), FALSE);
         g_return_val_if_fail (card->priv->profiles == NULL, FALSE);
 
-        card->priv->profiles = profiles;
+        card->priv->profiles = g_list_sort (profiles, (GCompareFunc) sort_profiles);
 
         return TRUE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]