summaryrefslogtreecommitdiffstats
path: root/plugins/alsa/alsa-transaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/alsa/alsa-transaction.c')
-rw-r--r--plugins/alsa/alsa-transaction.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/plugins/alsa/alsa-transaction.c b/plugins/alsa/alsa-transaction.c
index c35ea81..f8affa6 100644
--- a/plugins/alsa/alsa-transaction.c
+++ b/plugins/alsa/alsa-transaction.c
@@ -71,6 +71,27 @@ fail:
}
+bool AlsaMixerTransactionObjectAddTail(AlsaMixerTransaction* list, void* object, AlsaTransactionDestructor destructor) {
+ bool ret = false;
+ AlsaMixerTransactionDataItem * newItem = NULL;
+ if (!list)
+ goto fail;
+
+ newItem = (AlsaMixerTransactionDataItem *) malloc(sizeof(AlsaMixerTransactionDataItem));
+ if (newItem == NULL)
+ goto fail;
+
+ CDS_INIT_LIST_HEAD(&newItem->list_entry);
+ newItem->object = object;
+ newItem->destructor = destructor;
+ cds_list_add_tail(&newItem->list_entry, &list->item_list);
+
+ ret = true;
+fail:
+ return ret;
+
+}
+
static void AlsaMixerTransactionDoCleanup(AlsaMixerTransaction* transaction) {
AlsaMixerTransactionDataItem * item, *sav;