1 /* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #include "dac_if.h" 10 #include "dac_core.h" 11 #include "hdf_log.h" 12 #define HDF_LOG_TAG dac_if_c 13 #define DAC_SERVICE_NAME "HDF_PLATFORM_DAC_MANAGER" 14 DacOpen(uint32_t number)15DevHandle DacOpen(uint32_t number) 16 { 17 int32_t ret; 18 struct DacDevice *device = NULL; 19 20 device = DacDeviceGet(number); 21 if (device == NULL) { 22 HDF_LOGE("DacOpen: get device fail!"); 23 return NULL; 24 } 25 26 ret = DacDeviceStart(device); 27 if (ret != HDF_SUCCESS) { 28 HDF_LOGE("DacOpen: start device fail!"); 29 return NULL; 30 } 31 32 return (DevHandle)device; 33 } 34 DacClose(DevHandle handle)35void DacClose(DevHandle handle) 36 { 37 struct DacDevice *device = (struct DacDevice *)handle; 38 39 if (device == NULL) { 40 HDF_LOGE("DacClose: device is null!"); 41 return; 42 } 43 44 (void)DacDeviceStop(device); 45 DacDevicePut(device); 46 } 47 DacWrite(DevHandle handle,uint32_t channel,uint32_t val)48int32_t DacWrite(DevHandle handle, uint32_t channel, uint32_t val) 49 { 50 if (handle == NULL) { 51 HDF_LOGE("DacWrite: invalid handle!"); 52 return HDF_ERR_INVALID_PARAM; 53 } 54 return DacDeviceWrite((struct DacDevice *)handle, channel, val); 55 } 56