Files
2025-08-27 09:51:58 +01:00

62 lines
1.4 KiB
C

#include "typesdef.h"
#include "list.h"
#include "errno.h"
#include "dev.h"
#include "hal/audac.h"
int32 audac_open(struct audac_device *audac, enum audac_sample_rate sample_rate) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->open(audac, sample_rate);
}
return RET_ERR;
}
int32 audac_close(struct audac_device *audac) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->close(audac);
}
return RET_ERR;
}
int32 audac_write(struct audac_device *audac, void* buf, uint32 bytes) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->write(audac, buf, bytes);
}
return RET_ERR;
}
int32 audac_ioctl(struct audac_device *audac, enum audac_ioctl_cmd ioctl_cmd, uint32 param1, uint32 param2) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->ioctl(audac, ioctl_cmd, param1, param2);
}
return RET_ERR;
}
int32 audac_request_irq(struct audac_device *audac, enum audac_irq_flag irq_flag, audac_irq_hdl irq_hdl, uint32 irq_data) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->request_irq(audac, irq_flag, irq_hdl, irq_data);
}
return RET_ERR;
}
int32 audac_release_irq(struct audac_device *audac, enum audac_irq_flag irq_flag) {
if(audac) {
return ((const struct audac_hal_ops *)audac->dev.ops)->release_irq(audac, irq_flag);
}
return RET_ERR;
}