mirror of
https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
synced 2024-12-22 12:22:06 +00:00
mixer-card: Allow setting profiles on card more than once
With the next commit, we'll start updating card profiles after the initial creation of the GvcMixerCard, so get gvc_mixer_card_set_profiles() ready and support replacing the list of profiles instead of only setting it a single time.
This commit is contained in:
parent
f75ad37943
commit
76bb9e3148
@ -315,6 +315,15 @@ gvc_mixer_card_profile_compare (GvcMixerCardProfile *a,
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void
|
||||
free_profile (GvcMixerCardProfile *p)
|
||||
{
|
||||
g_free (p->profile);
|
||||
g_free (p->human_profile);
|
||||
g_free (p->status);
|
||||
g_free (p);
|
||||
}
|
||||
|
||||
/**
|
||||
* gvc_mixer_card_set_profiles:
|
||||
* @profiles: (transfer full) (element-type GvcMixerCardProfile):
|
||||
@ -324,8 +333,8 @@ gvc_mixer_card_set_profiles (GvcMixerCard *card,
|
||||
GList *profiles)
|
||||
{
|
||||
g_return_val_if_fail (GVC_IS_MIXER_CARD (card), FALSE);
|
||||
g_return_val_if_fail (card->priv->profiles == NULL, FALSE);
|
||||
|
||||
g_list_free_full (card->priv->profiles, (GDestroyNotify) free_profile);
|
||||
card->priv->profiles = g_list_sort (profiles, (GCompareFunc) gvc_mixer_card_profile_compare);
|
||||
|
||||
return TRUE;
|
||||
@ -530,15 +539,6 @@ gvc_mixer_card_new (pa_context *context,
|
||||
return GVC_MIXER_CARD (object);
|
||||
}
|
||||
|
||||
static void
|
||||
free_profile (GvcMixerCardProfile *p)
|
||||
{
|
||||
g_free (p->profile);
|
||||
g_free (p->human_profile);
|
||||
g_free (p->status);
|
||||
g_free (p);
|
||||
}
|
||||
|
||||
static void
|
||||
gvc_mixer_card_finalize (GObject *object)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user