-typedef int (*DacWriteFunc_t) (struct DacContext *ctx, unsigned channel, uint16_t sample);
-typedef void (*SetChannelMaskFunc_t) (struct DacContext *ctx, uint32_t mask);
-typedef void (*SetSamplingRate_t) (struct DacContext *ctx, uint32_t rate);
-typedef void (*DmaConversionBufFunc_t) (struct DacContext *ctx, void *buf, size_t len);
-typedef bool (*DmaConversionIsFinished_t) (struct DacContext *ctx);
-typedef void (*DmaStartStreamingFunc_t) (struct DacContext *ctx, void *buf, size_t len, size_t slicelen);
-typedef void (*DmaStopFunc_t) (struct DacContext *ctx);
+typedef int (*DacWriteFunc_t) (struct Dac *dac, unsigned channel, uint16_t sample);
+typedef void (*SetChannelMaskFunc_t) (struct Dac *dac, uint32_t mask);
+typedef void (*SetSamplingRate_t) (struct Dac *dac, uint32_t rate);
+typedef void (*DmaConversionBufFunc_t) (struct Dac *dac, void *buf, size_t len);
+typedef bool (*DmaConversionIsFinished_t) (struct Dac *dac);
+typedef void (*DmaStartStreamingFunc_t) (struct Dac *dac, void *buf, size_t len, size_t slice_len);
+typedef void (*DmaStopFunc_t) (struct Dac *dac);
+typedef void (*DmaCallbackFunc_t) (struct Dac *dac, void *_buf, size_t len);