138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang/* 238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Copyright 2012 Samsung Electronics S.LSI Co. LTD 438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License"); 638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * you may not use this file except in compliance with the License. 738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * You may obtain a copy of the License at 838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * http://www.apache.org/licenses/LICENSE-2.0 1038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 1138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Unless required by applicable law or agreed to in writing, software 1238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS, 1338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * See the License for the specific language governing permissions and 1538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * limitations under the License. 1638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang */ 1738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang 1838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang/* 1938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @file srp_api.h 2038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @brief 2138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @author Yunji Kim (yunji.kim@samsung.com) 2238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @version 1.1.0 2338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @history 2438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 2012.02.28 : Create 2538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang */ 2638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang 2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifndef __SRP_API_H__ 2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define __SRP_API_H__ 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "srp_ioctl.h" 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "srp_error.h" 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define SRP_DEV_NAME "dev/srp" 3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define SRP_INIT_BLOCK_MODE 0 3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define SRP_INIT_NONBLOCK_MODE 1 3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define SRP_PENDING_STATE_RUNNING 0 3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define SRP_PENDING_STATE_PENDING 1 4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changstruct srp_buf_info { 4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang void *mmapped_addr; 4320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang void *addr; 4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang unsigned int mmapped_size; 4520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang unsigned int size; 4620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang int num; 4720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang}; 4820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changstruct srp_dec_info { 5020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang unsigned int sample_rate; 5120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang unsigned int channels; 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang}; 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 5620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Create(int block_mode); 5920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Init(); 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Decode(void *buff, int size_byte); 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Send_EOS(void); 6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_SetParams(int id, unsigned long val); 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_GetParams(int id, unsigned long *pval); 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Deinit(void); 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Terminate(void); 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_IsOpen(void); 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Get_Ibuf_Info(void **addr, unsigned int *size, unsigned int *num); 6920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Get_Obuf_Info(void **addr, unsigned int *size, unsigned int *num); 7020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Get_Dec_Info(struct srp_dec_info *dec_info); 7120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Get_PCM(void **addr, unsigned int *size); 7220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changint SRP_Flush(void); 7320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 7420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 7520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 7620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 7720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 7820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /*__SRP_API_H__ */ 79