#ifndef __INC_ALSA_TRANSACTION_H #define __INC_ALSA_TRANSACTION_H #include #include #include "afb-definitions.h" struct SoftMixerT_; typedef void (*AlsaTransactionDestructor) (struct SoftMixerT_ *, void*); typedef struct { const char * uid; struct SoftMixerT_* mixer; struct cds_list_head list; } AlsaMixerTransaction; typedef struct { struct cds_list_head list_entry; void * object; AlsaTransactionDestructor destructor; } AlsaMixerTransactionDataItem; extern AlsaMixerTransaction * AlsaMixerTransactionNew(struct SoftMixerT_ * api, const char*); extern void AlsaMixerTransactionDataListDestroy(AlsaMixerTransaction*); extern bool AlsaMixerTransactionObjectAdd(AlsaMixerTransaction*, void * object, AlsaTransactionDestructor destructor); extern void AlsaMixerTransactionDoCleanup(AlsaMixerTransaction*); extern bool AlsaMixerTransactionVerbCreate(AlsaMixerTransaction*); extern void AlsaMixerTransactionVerbCB(AFB_ReqT request); #endif /* __INC_ALSA_TRANSACTION_H */