// // Copyright 2013 Google Inc. All Rights Reserved. // #ifndef WV_MAP_ERRORS_H_ #define WV_MAP_ERRORS_H_ #include "media/stagefright/MediaErrors.h" #include "utils/Errors.h" #include "wv_cdm_types.h" #include "WVErrors.h" namespace wvdrm { static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { switch (res) { case wvcdm::NO_ERROR: case wvcdm::KEY_ADDED: case wvcdm::KEY_MESSAGE: case wvcdm::KEY_CANCELED: // KEY_ADDED, KEY_MESSAGE, and KEY_CANCELLED are all alternative // success messages for certain CDM methods instead of NO_ERROR. return android::OK; case wvcdm::NEED_KEY: case wvcdm::DECRYPT_NOT_READY: case wvcdm::KEY_NOT_FOUND_IN_SESSION: case wvcdm::NO_MATCHING_ENTITLEMENT_KEY: return android::ERROR_DRM_NO_LICENSE; case wvcdm::NEED_PROVISIONING: return android::ERROR_DRM_NOT_PROVISIONED; case wvcdm::DEVICE_REVOKED: return android::ERROR_DRM_DEVICE_REVOKED; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES: return android::ERROR_DRM_RESOURCE_BUSY; case wvcdm::ADD_KEY_ERROR: return kAddKeyError; case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_1: return kCertProvisioningGetKeyboxError1; case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_2: return kCertProvisioningGetKeyboxError2; case wvcdm::CERT_PROVISIONING_INVALID_CERT_TYPE: return kCertProvisioningInvalidCertType; case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1: return kCertProvisioningRequestError1; case wvcdm::CERT_PROVISIONING_NONCE_GENERATION_ERROR: return kCertProvisioningRequestNonceGenerationError; case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_3: return kCertProvisioningRequestError3; case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_4: return kCertProvisioningRequestError4; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_1: return kCertProvisioningResponseError1; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_2: return kCertProvisioningResponseError2; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_3: return kCertProvisioningResponseError3; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_4: return kCertProvisioningResponseError4; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_5: return kCertProvisioningResponseError5; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_6: return kCertProvisioningResponseError6; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_7: return kCertProvisioningResponseError7; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_8: return kCertProvisioningResponseError8; case wvcdm::DEVICE_CERTIFICATE_ERROR_1: return kDeviceCertificateError1; case wvcdm::DEVICE_CERTIFICATE_ERROR_2: return kDeviceCertificateError2; case wvcdm::DEVICE_CERTIFICATE_ERROR_3: return kDeviceCertificateError3; case wvcdm::DEVICE_CERTIFICATE_ERROR_4: return kDeviceCertificateError4; case wvcdm::EMPTY_KEY_DATA_1: return kEmptyKeyData1; case wvcdm::EMPTY_KEY_DATA_2: return kEmptyKeyData2; case wvcdm::EMPTY_KEYSET_ID: return kEmptyKeySetId; case wvcdm::EMPTY_KEYSET_ID_ENG_1: return kEmptyKeySetIdEng1; case wvcdm::EMPTY_KEYSET_ID_ENG_2: return kEmptyKeySetIdEng2; case wvcdm::EMPTY_KEYSET_ID_ENG_3: return kEmptyKeySetIdEng3; case wvcdm::EMPTY_KEYSET_ID_ENG_4: return kEmptyKeySetIdEng4; case wvcdm::EMPTY_LICENSE_RENEWAL: return kEmptyLicenseRenewal; case wvcdm::EMPTY_LICENSE_RESPONSE_1: return kEmptyLicenseResponse1; case wvcdm::EMPTY_LICENSE_RESPONSE_2: return kEmptyLicenseResponse2; case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_1: return kEmptyProvisioningCertificate1; case wvcdm::EMPTY_PROVISIONING_RESPONSE: return kEmptyProvisioningResponse; case wvcdm::EMPTY_SESSION_ID: return kEmptySessionId; case wvcdm::GENERATE_DERIVED_KEYS_ERROR: return kGenerateDerivedKeysError; case wvcdm::LICENSE_RENEWAL_NONCE_GENERATION_ERROR: return kLicenseRenewalNonceGenerationError; case wvcdm::GENERATE_USAGE_REPORT_ERROR: return kGenerateUsageReportError; case wvcdm::GET_LICENSE_ERROR: return kGetLicenseError; case wvcdm::GET_RELEASED_LICENSE_ERROR: return kGetReleasedLicenseError; case wvcdm::GET_USAGE_INFO_ERROR_1: return kGetUsageInfoError1; case wvcdm::GET_USAGE_INFO_ERROR_2: return kGetUsageInfoError2; case wvcdm::GET_USAGE_INFO_ERROR_3: return kGetUsageInfoError3; case wvcdm::GET_USAGE_INFO_ERROR_4: return kGetUsageInfoError4; case wvcdm::INIT_DATA_NOT_FOUND: return kInitDataNotFound; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_1: return kInvalidDecryptParametersEng1; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_2: return kInvalidDecryptParametersEng2; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_3: return kInvalidDecryptParametersEng3; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4: return kInvalidDecryptParametersEng4; case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT: return android::ERROR_DRM_SESSION_NOT_OPENED; case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE: return kInvalidDeviceCertificateType; case wvcdm::INVALID_KEY_SYSTEM: return kInvalidKeySystem; case wvcdm::INVALID_LICENSE_RESPONSE: return kInvalidLicenseResponse; case wvcdm::INVALID_LICENSE_TYPE: return kInvalidLicenseType; case wvcdm::PARAMETER_NULL: return kParameterNull; case wvcdm::INVALID_PARAMETERS_ENG_5: return kInvalidParametersEng5; case wvcdm::INVALID_PARAMETERS_LIC_1: return kInvalidParametersLic1; case wvcdm::INVALID_PARAMETERS_LIC_2: return kInvalidParametersLic2; case wvcdm::INVALID_PROVISIONING_PARAMETERS_1: return kInvalidProvisioningParam1; case wvcdm::INVALID_PROVISIONING_PARAMETERS_2: return kInvalidProvisioningParam2; case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_1: return kInvalidProvisioningReqParam1; case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_2: return kInvalidProvisioningReqParam2; case wvcdm::INVALID_QUERY_KEY: return kInvalidQueryKey; case wvcdm::INVALID_SESSION_ID: return kInvalidSessionId; case wvcdm::KEY_REQUEST_ERROR_1: return kKeyRequestError1; case wvcdm::KEY_SIZE_ERROR: return kKeySizeError; case wvcdm::KEYSET_ID_NOT_FOUND_1: return kKeySetIdNotFound1; case wvcdm::KEYSET_ID_NOT_FOUND_2: return kKeySetIdNotFound2; case wvcdm::KEYSET_ID_NOT_FOUND_3: return kKeySetIdNotFound3; case wvcdm::LICENSE_ID_NOT_FOUND: return kLicenseIdNotFound; case wvcdm::LICENSE_PARSER_INIT_ERROR: return kLicenseParserInitError; case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_1: return kLicenseParserNotInitialized1; case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_2: return kLicenseParserNotInitialized2; case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_3: return kLicenseParserNotInitialized3; case wvcdm::LICENSE_RESPONSE_NOT_SIGNED: return kLicenseResponseNotSigned; case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_1: return kLicenseResponseParseError1; case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_2: return kLicenseResponseParseError2; case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_3: return kLicenseResponseParseError3; case wvcdm::LOAD_KEY_ERROR: return kLoadKeyError; case wvcdm::NO_CONTENT_KEY: return kNoContentKey; case wvcdm::REFRESH_KEYS_ERROR: return kRefreshKeysError; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_1: return kRemoveAllUsageInfoError1; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_2: return kRemoveAllUsageInfoError2; case wvcdm::RELEASE_KEY_ERROR: return kReleaseKeyError; case wvcdm::RELEASE_KEY_REQUEST_ERROR: return kReleaseKeyRequestError; case wvcdm::RELEASE_LICENSE_ERROR_1: return kReleaseLicenseError1; case wvcdm::RELEASE_LICENSE_ERROR_2: return kReleaseLicenseError2; case wvcdm::RELEASE_USAGE_INFO_ERROR: return android::ERROR_DRM_TAMPER_DETECTED; case wvcdm::RENEW_KEY_ERROR_1: return kRenewKeyError1; case wvcdm::RENEW_KEY_ERROR_2: return kRenewKeyError2; case wvcdm::LICENSE_RENEWAL_SIGNING_ERROR: return kLicenseRenewalSigningError; case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2: return kRestoreOfflineLicenseError2; case wvcdm::NOT_INITIALIZED_ERROR: return kNotInitializedError; case wvcdm::REINIT_ERROR: return kReinitError; case wvcdm::SESSION_NOT_FOUND_1: case wvcdm::SESSION_NOT_FOUND_2: case wvcdm::SESSION_NOT_FOUND_3: case wvcdm::SESSION_NOT_FOUND_4: case wvcdm::SESSION_NOT_FOUND_5: case wvcdm::SESSION_NOT_FOUND_6: case wvcdm::SESSION_NOT_FOUND_7: case wvcdm::SESSION_NOT_FOUND_8: case wvcdm::SESSION_NOT_FOUND_9: case wvcdm::SESSION_NOT_FOUND_10: case wvcdm::SESSION_NOT_FOUND_17: case wvcdm::SESSION_NOT_FOUND_18: return android::ERROR_DRM_SESSION_NOT_OPENED; case wvcdm::SESSION_KEYS_NOT_FOUND: return kSessionKeysNotFound; case wvcdm::SIGNATURE_NOT_FOUND: return kSignatureNotFound; case wvcdm::STORE_LICENSE_ERROR_1: return kStoreLicenseError1; case wvcdm::STORE_LICENSE_ERROR_2: return kStoreLicenseError2; case wvcdm::STORE_USAGE_INFO_ERROR: return kStoreUsageInfoError; case wvcdm::UNPROVISION_ERROR_1: return kUnprovisioningError1; case wvcdm::UNPROVISION_ERROR_2: return kUnprovisioningError2; case wvcdm::UNPROVISION_ERROR_3: return kUnprovisioningError3; case wvcdm::UNPROVISION_ERROR_4: return kUnprovisioningError4; case wvcdm::UNSUPPORTED_INIT_DATA: return kUnsupportedInitData; case wvcdm::USAGE_INFO_NOT_FOUND: return kUsageInfoNotFound; case wvcdm::PARSE_SERVICE_CERTIFICATE_ERROR: return kParseServiceCertificateError; case wvcdm::CLIENT_ID_GENERATE_RANDOM_ERROR: return kClientIdGenerateRandomError; case wvcdm::CLIENT_ID_AES_INIT_ERROR: return kClientIdAesInitError; case wvcdm::CLIENT_ID_AES_ENCRYPT_ERROR: return kClientIdAesEncryptError; case wvcdm::CLIENT_ID_RSA_INIT_ERROR: return kClientIdRsaInitError; case wvcdm::CLIENT_ID_RSA_ENCRYPT_ERROR: return kClientIdRsaEncryptError; case wvcdm::KEY_ERROR: // KEY_ERROR is used by the CDM to mean just about any kind of error, not // just license errors, so it is mapped to the generic response. return kErrorCDMGeneric; case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_2: return kEmptyProvisioningCertificate2; case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_4: return kLicenseParserNotInitialized4; case wvcdm::INVALID_PARAMETERS_LIC_3: return kInvalidParametersLic3; case wvcdm::INVALID_PARAMETERS_LIC_4: return kInvalidParametersLic4; case wvcdm::INVALID_PARAMETERS_LIC_6: return kInvalidParametersLic6; case wvcdm::INVALID_PARAMETERS_LIC_7: return kInvalidParametersLic7; case wvcdm::LICENSE_REQUEST_SERVICE_CERTIFICATE_GENERATION_ERROR: return kLicenseRequestServiceCertificateGenerationError; case wvcdm::CENC_INIT_DATA_UNAVAILABLE: return kCencInitDataUnavailable; case wvcdm::PREPARE_CENC_CONTENT_ID_FAILED: return kPrepareCencContentIdFailed; case wvcdm::WEBM_INIT_DATA_UNAVAILABLE: return kWebmInitDataUnavailable; case wvcdm::PREPARE_WEBM_CONTENT_ID_FAILED: return kPrepareWebmContentIdFailed; case wvcdm::UNSUPPORTED_INIT_DATA_FORMAT: return kUnsupportedInitDataFormat; case wvcdm::LICENSE_REQUEST_NONCE_GENERATION_ERROR: return kLicenseRequestNonceGenerationError; case wvcdm::LICENSE_REQUEST_SIGNING_ERROR: return kLicenseRequestSigningError; case wvcdm::EMPTY_LICENSE_REQUEST: return kEmptyLicenseRequest; case wvcdm::DUPLICATE_SESSION_ID_SPECIFIED: return kDuplicateSessionIdSpecified; case wvcdm::LICENSE_RENEWAL_PROHIBITED: return kLicenseRenewalProhibited; case wvcdm::OFFLINE_LICENSE_PROHIBITED: return kOfflineLicenseProhibited; case wvcdm::STORAGE_PROHIBITED: return kStorageProhibited; case wvcdm::EMPTY_KEYSET_ID_ENG_5: return kEmptyKeySetIdEng5; case wvcdm::SESSION_NOT_FOUND_11: return kSessionNotFound11; case wvcdm::LOAD_USAGE_INFO_FILE_ERROR: return kLoadUsageInfoFileError; case wvcdm::LOAD_USAGE_INFO_MISSING: return kLoadUsageInfoMissing; case wvcdm::SESSION_FILE_HANDLE_INIT_ERROR: return kSessionFileHandleInitError; case wvcdm::INCORRECT_CRYPTO_MODE: return kIncorrectCryptoMode; case wvcdm::UNKNOWN_ERROR: return android::ERROR_DRM_UNKNOWN; case wvcdm::SECURE_BUFFER_REQUIRED: case wvcdm::DECRYPT_ERROR: return android::ERROR_DRM_CANNOT_HANDLE; case wvcdm::INSUFFICIENT_OUTPUT_PROTECTION: case wvcdm::ANALOG_OUTPUT_ERROR: case wvcdm::KEY_PROHIBITED_FOR_SECURITY_LEVEL: return android::ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION; case wvcdm::SESSION_NOT_FOUND_12: return kSessionNotFound12; case wvcdm::KEY_NOT_FOUND_1: return kKeyNotFound1; case wvcdm::KEY_NOT_FOUND_2: return kKeyNotFound2; case wvcdm::KEY_CONFLICT_1: return kKeyConflict1; case wvcdm::SESSION_NOT_FOUND_13: return kSessionNotFound13; case wvcdm::SESSION_NOT_FOUND_14: return kSessionNotFound14; case wvcdm::SESSION_NOT_FOUND_15: return kSessionNotFound15; case wvcdm::SESSION_NOT_FOUND_16: return kSessionNotFound16; case wvcdm::KEY_NOT_FOUND_3: return kKeyNotFound3; case wvcdm::KEY_NOT_FOUND_4: return kKeyNotFound4; case wvcdm::KEY_NOT_FOUND_5: return kKeyNotFound5; case wvcdm::KEY_NOT_FOUND_6: return kKeyNotFound6; case wvcdm::INVALID_SESSION_1: return kInvalidSession1; case wvcdm::NO_DEVICE_KEY_1: return kNoDeviceKey1; case wvcdm::NO_CONTENT_KEY_2: return kNoContentKey2; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_2: return kInsufficientCryptoResources2; case wvcdm::INVALID_PARAMETERS_ENG_13: return kInvalidParametersEng13; case wvcdm::INVALID_PARAMETERS_ENG_14: return kInvalidParametersEng14; case wvcdm::INVALID_PARAMETERS_ENG_15: return kInvalidParametersEng15; case wvcdm::INVALID_PARAMETERS_ENG_16: return kInvalidParametersEng16; case wvcdm::INVALID_PARAMETERS_ENG_17: return kInvalidParametersEng17; case wvcdm::INVALID_PARAMETERS_ENG_18: return kInvalidParametersEng18; case wvcdm::INVALID_PARAMETERS_ENG_19: return kInvalidParametersEng19; case wvcdm::CLIENT_IDENTIFICATION_TOKEN_ERROR_1: return kClientIdentificationTokenError1; case wvcdm::CLIENT_IDENTIFICATION_TOKEN_ERROR_2: return kClientIdentificationTokenError2; case wvcdm::UNKNOWN_SELECT_KEY_ERROR_1: return kUnknownSelectKeyError1; case wvcdm::UNKNOWN_SELECT_KEY_ERROR_2: return kUnknownSelectKeyError2; case wvcdm::CREATE_USAGE_TABLE_ERROR: return kCreateUsageTableError; case wvcdm::LOAD_USAGE_HEADER_GENERATION_SKEW: return kLoadUsageHeaderGenerationSkew; case wvcdm::LOAD_USAGE_HEADER_SIGNATURE_FAILURE: return kLoadUsageHeaderSignatureFailure; case wvcdm::LOAD_USAGE_HEADER_BAD_MAGIC: return kLoadUsageHeaderBadMagic; case wvcdm::LOAD_USAGE_HEADER_UNKNOWN_ERROR: return kLoadUsageHeaderUnknownError; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_3: return kInsufficientCryptoResources3; case wvcdm::CREATE_USAGE_ENTRY_UNKNOWN_ERROR: return kCreateUsageEntryUnknownError; case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW: return kLoadUsageEntryGenerationSkew; case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: return kLoadUsageEntrySignatureFailure; case wvcdm::LOAD_USAGE_ENTRY_UNKNOWN_ERROR: return kLoadUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_20: return kInvalidParametersEng20; case wvcdm::UPDATE_USAGE_ENTRY_UNKNOWN_ERROR: return kUpdateUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_21: return kInvalidParametersEng21; case wvcdm::INVALID_PARAMETERS_ENG_22: return kInvalidParametersEng22; case wvcdm::SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR: return kShrinkUsageTablerHeaderUnknownError; case wvcdm::MOVE_USAGE_ENTRY_UNKNOWN_ERROR: return kMoveUsageEntryUnknownError; case wvcdm::COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR: return kCopyOldUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_23: return kInvalidParametersEng23; case wvcdm::INVALID_PARAMETERS_ENG_24: return kInvalidParametersEng24; case wvcdm::USAGE_INFORMATION_SUPPORT_FAILED: return kUsageInformationSupportFailed; case wvcdm::USAGE_SUPPORT_GET_API_FAILED: return kUsageSupportGetApiFailed; case wvcdm::UNEXPECTED_EMPTY_USAGE_ENTRY: return kUnexpectedEmptyUsageEntry; case wvcdm::INVALID_USAGE_ENTRY_NUMBER_MODIFICATION: return kInvalidUsageEntryNumberModification; case wvcdm::USAGE_INVALID_NEW_ENTRY: return kUsageInvalidNewEntry; case wvcdm::USAGE_INVALID_PARAMETERS_1: return kUsageInvalidParameters1; case wvcdm::USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED: return kUsageGetEntryRetrieveLicenseFailed; case wvcdm::USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED: return kUsageGetEntryRetrieveUsageInfoFailed; case wvcdm::USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: return kUsageGetEntryRetrieveInvalidStorageType; case wvcdm::USAGE_ENTRY_NUMBER_MISMATCH: return kUsageEntryNumberMismatch; case wvcdm::USAGE_STORE_LICENSE_FAILED: return kUsageStoreLicenseFailed; case wvcdm::USAGE_STORE_USAGE_INFO_FAILED: return kUsageStoreUsageInfoFailed; case wvcdm::USAGE_INVALID_LOAD_ENTRY: return kUsageInvalidLoadEntry; case wvcdm::RELEASE_USAGE_INFO_FAILED: return android::ERROR_DRM_TAMPER_DETECTED; case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_1: return kIncorrectUsageSupportType1; case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_2: return kIncorrectUsageSupportType2; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_5: return kRemoveAllUsageInfoError5; case wvcdm::NO_USAGE_ENTRIES: return kNoUsageEntries; case wvcdm::LIST_LICENSE_ERROR_1: return kListLicenseError1; case wvcdm::LIST_LICENSE_ERROR_2: return kListLicenseError2; case wvcdm::LIST_USAGE_ERROR_1: return kListUsageError1; case wvcdm::LIST_USAGE_ERROR_2: return kListUsageError2; case wvcdm::DELETE_USAGE_ERROR_1: return kDeleteUsageError1; case wvcdm::DELETE_USAGE_ERROR_2: return kDeleteUsageError2; case wvcdm::DELETE_USAGE_ERROR_3: return kDeleteUsageError3; case wvcdm::PRIVACY_MODE_ERROR_1: return kPrivacyModeError1; case wvcdm::PRIVACY_MODE_ERROR_2: return kPrivacyModeError2; case wvcdm::PRIVACY_MODE_ERROR_3: return kPrivacyModeError3; case wvcdm::EMPTY_RESPONSE_ERROR_1: return kEmptyResponseError1; case wvcdm::PARSE_RESPONSE_ERROR_1: return kParseResponseError1; case wvcdm::PARSE_RESPONSE_ERROR_2: return kParseResponseError2; case wvcdm::PARSE_RESPONSE_ERROR_3: return kParseResponseError3; case wvcdm::PARSE_RESPONSE_ERROR_4: return kParseResponseError4; case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED: return kUsageStoreEntryRetrieveLicenseFailed; case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED: return kUsageStoreEntryRetrieveUsageInfoFailed; case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: return kUsageStoreEntryRetrieveInvalidStorageType; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_6: return kRemoveAllUsageInfoError6; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_7: return kRemoveAllUsageInfoError7; case wvcdm::LICENSE_REQUEST_INVALID_SUBLICENSE: return kLicenseRequestInvalidSublicense; case wvcdm::CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE: return kCertProvisioningEmptyServiceCertificate; case wvcdm::LOAD_SYSTEM_ID_ERROR: return kLoadSystemIdError; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_4: return kInsufficientCryptoResources4; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_5: return kInsufficientCryptoResources5; case wvcdm::REMOVE_USAGE_INFO_ERROR_1: return kRemoveUsageInfoError1; case wvcdm::REMOVE_USAGE_INFO_ERROR_2: return kRemoveUsageInfoError2; case wvcdm::REMOVE_USAGE_INFO_ERROR_3: return kRemoveUsageInfoError3; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_6: return kInsufficientCryptoResources6; case wvcdm::NOT_AN_ENTITLEMENT_SESSION: return kNotAnEntitlementSession; case wvcdm::LOAD_ENTITLED_CONTENT_KEYS_ERROR: return kLoadEntitledContentKeysError; case wvcdm::GET_PROVISIONING_METHOD_ERROR: return kGetProvisioningError; } // Return here instead of as a default case so that the compiler will warn // us if we forget to include an enum member in the switch statement. return android::UNKNOWN_ERROR; } static inline bool isCdmResponseTypeSuccess(wvcdm::CdmResponseType res) { return mapCdmResponseType(res) == android::OK; } } // namespace wvdrm #endif // WV_MAP_ERRORS_H_