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