| /* |
| * Copyright (C) Texas Instruments - http://www.ti.com/ |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| #include "ErrorUtils.h" |
| |
| namespace android { |
| |
| /** |
| @brief Method to convert from POSIX to Android errors |
| |
| @param error Any of the standard POSIX error codes (defined in bionic/libc/kernel/common/asm-generic/errno.h) |
| @return Any of the standard Android error code (defined in frameworks/base/include/utils/Errors.h) |
| */ |
| status_t ErrorUtils::posixToAndroidError(int error) |
| { |
| switch(error) |
| { |
| case 0: |
| return NO_ERROR; |
| case EINVAL: |
| case EFBIG: |
| case EMSGSIZE: |
| case E2BIG: |
| case EFAULT: |
| case EILSEQ: |
| return BAD_VALUE; |
| case ENOSYS: |
| return INVALID_OPERATION; |
| case EACCES: |
| case EPERM: |
| return PERMISSION_DENIED; |
| case EADDRINUSE: |
| case EAGAIN: |
| case EALREADY: |
| case EBUSY: |
| case EEXIST: |
| case EINPROGRESS: |
| return ALREADY_EXISTS; |
| case ENOMEM: |
| return NO_MEMORY; |
| default: |
| return UNKNOWN_ERROR; |
| }; |
| |
| return NO_ERROR; |
| } |
| |
| |
| /** |
| @brief Method to convert from TI OSAL to Android errors |
| |
| @param error Any of the standard TI OSAL error codes (defined in |
| hardware/ti/omx/ducati/domx/system/mm_osal/inc/timm_osal_error.h) |
| @return Any of the standard Android error code (defined in frameworks/base/include/utils/Errors.h) |
| */ |
| status_t ErrorUtils::osalToAndroidError(TIMM_OSAL_ERRORTYPE error) |
| { |
| switch(error) |
| { |
| case TIMM_OSAL_ERR_NONE: |
| return NO_ERROR; |
| case TIMM_OSAL_ERR_ALLOC: |
| return NO_MEMORY; |
| default: |
| return UNKNOWN_ERROR; |
| } |
| |
| return NO_ERROR; |
| } |
| |
| /** |
| @brief Method to convert from OMX to Android errors |
| |
| @param error Any of the standard OMX error codes (defined in hardware/ti/omx/ducati/domx/system/omx_core/inc/OMX_Core.h) |
| @return Any of the standard Android error code (defined in frameworks/base/include/utils/Errors.h) |
| */ |
| status_t ErrorUtils::omxToAndroidError(OMX_ERRORTYPE error) |
| { |
| switch(error) |
| { |
| case OMX_ErrorNone: |
| return NO_ERROR; |
| case OMX_ErrorBadParameter: |
| case OMX_ErrorInvalidComponentName: |
| case OMX_ErrorUndefined: |
| case OMX_ErrorInvalidState: |
| case OMX_ErrorStreamCorrupt: |
| case OMX_ErrorPortsNotCompatible: |
| case OMX_ErrorVersionMismatch: |
| case OMX_ErrorMbErrorsInFrame: |
| return BAD_VALUE; |
| case OMX_ErrorInsufficientResources: |
| return NO_MEMORY; |
| case OMX_ErrorComponentNotFound: |
| case OMX_ErrorNotImplemented: |
| case OMX_ErrorFormatNotDetected: |
| case OMX_ErrorUnsupportedSetting: |
| return NAME_NOT_FOUND; |
| case OMX_ErrorUnderflow: |
| case OMX_ErrorOverflow: |
| case OMX_ErrorUnsupportedIndex: |
| case OMX_ErrorBadPortIndex: |
| return BAD_INDEX; |
| case OMX_ErrorHardware: |
| case OMX_ErrorContentPipeCreationFailed: |
| case OMX_ErrorContentPipeOpenFailed: |
| return FAILED_TRANSACTION; |
| case OMX_ErrorTimeout: |
| return TIMED_OUT; |
| case OMX_ErrorSameState: |
| case OMX_ErrorIncorrectStateTransition: |
| case OMX_ErrorIncorrectStateOperation: |
| return PERMISSION_DENIED; |
| case OMX_ErrorTunnelingUnsupported: |
| return INVALID_OPERATION; |
| default: |
| return UNKNOWN_ERROR; |
| } |
| |
| return NO_ERROR; |
| } |
| |
| |
| }; |
| |
| |
| |