• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) Texas Instruments - http://www.ti.com/
3  *
4  * Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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 
18 #include "ErrorUtils.h"
19 
20 namespace Ti {
21 namespace Utils {
22 
23 /**
24    @brief Method to convert from POSIX to Android errors
25 
26    @param error Any of the standard POSIX error codes (defined in bionic/libc/kernel/common/asm-generic/errno.h)
27    @return Any of the standard Android error code (defined in frameworks/base/include/utils/Errors.h)
28  */
posixToAndroidError(int error)29 status_t ErrorUtils::posixToAndroidError(int error)
30 {
31     switch(error)
32         {
33         case 0:
34             return NO_ERROR;
35         case EINVAL:
36         case EFBIG:
37         case EMSGSIZE:
38         case E2BIG:
39         case EFAULT:
40         case EILSEQ:
41             return BAD_VALUE;
42         case ENOSYS:
43             return INVALID_OPERATION;
44         case EACCES:
45         case EPERM:
46             return PERMISSION_DENIED;
47         case EADDRINUSE:
48         case EAGAIN:
49         case EALREADY:
50         case EBUSY:
51         case EEXIST:
52         case EINPROGRESS:
53             return ALREADY_EXISTS;
54         case ENOMEM:
55             return NO_MEMORY;
56         default:
57             return UNKNOWN_ERROR;
58         };
59 
60     return NO_ERROR;
61 }
62 
63 
64 /**
65    @brief Method to convert from TI OSAL to Android errors
66 
67    @param error Any of the standard TI OSAL error codes (defined in
68                                                                                             hardware/ti/omx/ducati/domx/system/mm_osal/inc/timm_osal_error.h)
69    @return Any of the standard Android error code  (defined in frameworks/base/include/utils/Errors.h)
70  */
osalToAndroidError(TIMM_OSAL_ERRORTYPE error)71 status_t ErrorUtils::osalToAndroidError(TIMM_OSAL_ERRORTYPE error)
72 {
73     switch(error)
74     {
75     case TIMM_OSAL_ERR_NONE:
76         return NO_ERROR;
77     case TIMM_OSAL_ERR_ALLOC:
78         return NO_MEMORY;
79     default:
80         return UNKNOWN_ERROR;
81     }
82 
83     return NO_ERROR;
84 }
85 
86 /**
87    @brief Method to convert from OMX to Android errors
88 
89    @param error Any of the standard OMX error codes (defined in hardware/ti/omx/ducati/domx/system/omx_core/inc/OMX_Core.h)
90    @return Any of the standard Android error code (defined in frameworks/base/include/utils/Errors.h)
91  */
omxToAndroidError(OMX_ERRORTYPE error)92 status_t ErrorUtils::omxToAndroidError(OMX_ERRORTYPE error)
93 {
94     switch(error)
95         {
96         case OMX_ErrorNone:
97             return NO_ERROR;
98         case OMX_ErrorBadParameter:
99         case OMX_ErrorInvalidComponentName:
100         case OMX_ErrorUndefined:
101         case OMX_ErrorInvalidState:
102         case OMX_ErrorStreamCorrupt:
103         case OMX_ErrorPortsNotCompatible:
104         case OMX_ErrorVersionMismatch:
105         case OMX_ErrorMbErrorsInFrame:
106             return BAD_VALUE;
107         case OMX_ErrorInsufficientResources:
108             return NO_MEMORY;
109         case OMX_ErrorComponentNotFound:
110         case OMX_ErrorNotImplemented:
111         case OMX_ErrorFormatNotDetected:
112         case OMX_ErrorUnsupportedSetting:
113             return NAME_NOT_FOUND;
114         case OMX_ErrorUnderflow:
115         case OMX_ErrorOverflow:
116         case OMX_ErrorUnsupportedIndex:
117         case OMX_ErrorBadPortIndex:
118             return BAD_INDEX;
119         case OMX_ErrorHardware:
120         case OMX_ErrorContentPipeCreationFailed:
121         case OMX_ErrorContentPipeOpenFailed:
122             return FAILED_TRANSACTION;
123         case OMX_ErrorTimeout:
124            return TIMED_OUT;
125         case OMX_ErrorSameState:
126         case OMX_ErrorIncorrectStateTransition:
127         case OMX_ErrorIncorrectStateOperation:
128            return PERMISSION_DENIED;
129         case OMX_ErrorTunnelingUnsupported:
130            return INVALID_OPERATION;
131         default:
132             return UNKNOWN_ERROR;
133         }
134 
135     return NO_ERROR;
136 }
137 
138 
139 } // namespace Utils
140 } // namespace Ti
141