0746450af041f72c11485e78540c991c7384b8da
[platform/core/security/drm-service-core-tizen.git] / tadcore / DrmFileHandleMgr / DrmFileApi.cpp
1 /*
2  * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Flora License, Version 1.1 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include "DrmFileMgr.h"
18 #include "TADC_ErrorCode.h"
19 #include "drm_intf_tapps.h"
20
21 EXPORT_API
22 int DrmTdcFileOpen(const char* filePath, int mode, int* handle)
23 {
24         int nRet = TADC_SUCCESS;
25         int key = 0;
26
27         DrmFileMgr* pDrmFileMgr = NULL;
28
29         if (filePath == NULL || strlen(filePath) < 1)
30         {
31                 DRM_TAPPS_EXCEPTION("Parameter error!");
32                 return TADC_PARAMETER_ERROR;
33         }
34
35         pDrmFileMgr = DrmFileMgr::GetInstance();
36         if (pDrmFileMgr == NULL)
37         {
38                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetInstance() error!");
39                 return TADC_GET_FILE_HANDLER_ERROR;
40         }
41
42         nRet = pDrmFileMgr->OpenFileHandler(filePath, 1, &key);
43         if (nRet != TADC_SUCCESS)
44         {
45                 DRM_TAPPS_EXCEPTION("DrmFileMgr::OpenFileHandler() error!");
46                 return nRet;
47         }
48
49         *handle = key;
50
51         return nRet;
52 }
53
54 EXPORT_API
55 int DrmTdcFileClose(int* handle)
56 {
57         int nRet = TADC_SUCCESS;
58         int key = *handle;
59
60         DrmFileMgr *pDrmFileMgr = DrmFileMgr::GetInstance();
61         if (pDrmFileMgr == NULL)
62         {
63                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetInstance() error!");
64                 return TADC_GET_FILE_HANDLER_ERROR;
65         }
66
67         nRet = pDrmFileMgr->CloseFileHandler(key);
68         if (nRet != TADC_SUCCESS)
69         {
70                 DRM_TAPPS_EXCEPTION("DrmFileMgr::OpenFileHandler() error!");
71                 return nRet;
72         }
73
74         return nRet;
75 }
76
77 EXPORT_API
78 int DrmTdcFileRead(int* handle, void* pBuf, long long bufLen, long long* pReadLen)
79 {
80         int nRet = TADC_SUCCESS;
81         int key = *handle;
82
83         DrmFileMgr* pDrmFileMgr = NULL;
84         DrmFileHandler* pDrmFileHandler = NULL;
85
86         pDrmFileMgr = DrmFileMgr::GetInstance();
87         if (pDrmFileMgr == NULL)
88         {
89                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetInstance() error!");
90                 return TADC_GET_FILE_HANDLER_ERROR;
91         }
92
93         nRet = pDrmFileMgr->GetFileHandler(key, &pDrmFileHandler);
94         if (nRet != TADC_SUCCESS)
95         {
96                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetFileHandler() error!");
97                 return nRet;
98         }
99
100         nRet = pDrmFileHandler->DrmRead(pBuf, bufLen, pReadLen);
101         if (nRet != TADC_SUCCESS)
102         {
103                 DRM_TAPPS_EXCEPTION("DrmFileMgr::DrmRead() error!");
104                 return nRet;
105         }
106         return nRet;
107 }
108
109 EXPORT_API
110 int DrmTdcFileTell(int* handle, long long *position)
111 {
112         int nRet = TADC_SUCCESS;
113         int key = *handle;
114         long long offset = 0;
115
116         DrmFileMgr* pDrmFileMgr = NULL;
117         DrmFileHandler* pDrmFileHandler = NULL;
118
119         pDrmFileMgr = DrmFileMgr::GetInstance();
120         if (pDrmFileMgr == NULL)
121         {
122                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetInstance() error!");
123                 return TADC_GET_FILE_HANDLER_ERROR;
124         }
125
126         nRet = pDrmFileMgr->GetFileHandler(key, &pDrmFileHandler);
127         if (nRet != TADC_SUCCESS)
128         {
129                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetFileHandler() error!");
130                 return nRet;
131         }
132
133         offset = pDrmFileHandler->DrmTell();
134
135         *position = offset;
136
137         return nRet;
138 }
139
140 EXPORT_API
141 int DrmTdcFileSeek(int* handle, long long offset, int origin)
142 {
143         int nRet = TADC_SUCCESS;
144         int key = *handle;
145
146         DrmFileMgr* pDrmFileMgr = NULL;
147         DrmFileHandler* pDrmFileHandler = NULL;
148
149         pDrmFileMgr = DrmFileMgr::GetInstance();
150         if (pDrmFileMgr == NULL)
151         {
152                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetInstance() error!");
153                 return TADC_GET_FILE_HANDLER_ERROR;
154         }
155
156         nRet = pDrmFileMgr->GetFileHandler(key, &pDrmFileHandler);
157         if (nRet != TADC_SUCCESS)
158         {
159                 DRM_TAPPS_EXCEPTION("DrmFileMgr::GetFileHandler() error!");
160                 return nRet;
161         }
162
163         nRet = pDrmFileHandler->DrmSeek(offset, origin);
164         if (nRet != TADC_SUCCESS)
165         {
166                 DRM_TAPPS_EXCEPTION("DrmFileHandler::DrmSeek() error!");
167                 return nRet;
168         }
169
170         return nRet;
171 }