1*ec779b8eSAndroid Build Coastguard Worker /* 2*ec779b8eSAndroid Build Coastguard Worker * Copyright (C) 2022 The Android Open Source Project 3*ec779b8eSAndroid Build Coastguard Worker * 4*ec779b8eSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*ec779b8eSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*ec779b8eSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*ec779b8eSAndroid Build Coastguard Worker * 8*ec779b8eSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*ec779b8eSAndroid Build Coastguard Worker * 10*ec779b8eSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*ec779b8eSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*ec779b8eSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*ec779b8eSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*ec779b8eSAndroid Build Coastguard Worker * limitations under the License. 15*ec779b8eSAndroid Build Coastguard Worker */ 16*ec779b8eSAndroid Build Coastguard Worker 17*ec779b8eSAndroid Build Coastguard Worker #include <mediadrm/DrmStatus.h> 18*ec779b8eSAndroid Build Coastguard Worker #include <json/json.h> 19*ec779b8eSAndroid Build Coastguard Worker 20*ec779b8eSAndroid Build Coastguard Worker namespace android { 21*ec779b8eSAndroid Build Coastguard Worker DrmStatus(status_t err,const char * msg)22*ec779b8eSAndroid Build Coastguard WorkerDrmStatus::DrmStatus(status_t err, const char *msg) : mStatus(err) { 23*ec779b8eSAndroid Build Coastguard Worker Json::Value errorDetails; 24*ec779b8eSAndroid Build Coastguard Worker Json::Reader reader; 25*ec779b8eSAndroid Build Coastguard Worker if (!reader.parse(msg, errorDetails)) { 26*ec779b8eSAndroid Build Coastguard Worker mErrMsg = msg; 27*ec779b8eSAndroid Build Coastguard Worker return; 28*ec779b8eSAndroid Build Coastguard Worker } 29*ec779b8eSAndroid Build Coastguard Worker 30*ec779b8eSAndroid Build Coastguard Worker auto val = errorDetails["cdmError"]; 31*ec779b8eSAndroid Build Coastguard Worker if (val.isInt()) { 32*ec779b8eSAndroid Build Coastguard Worker mCdmErr = val.asInt(); 33*ec779b8eSAndroid Build Coastguard Worker } 34*ec779b8eSAndroid Build Coastguard Worker val = errorDetails["oemError"]; 35*ec779b8eSAndroid Build Coastguard Worker if (val.isInt()) { 36*ec779b8eSAndroid Build Coastguard Worker mOemErr = val.asInt(); 37*ec779b8eSAndroid Build Coastguard Worker } 38*ec779b8eSAndroid Build Coastguard Worker val = errorDetails["context"]; 39*ec779b8eSAndroid Build Coastguard Worker if (val.isInt()) { 40*ec779b8eSAndroid Build Coastguard Worker mCtx = val.asInt(); 41*ec779b8eSAndroid Build Coastguard Worker } 42*ec779b8eSAndroid Build Coastguard Worker val = errorDetails["errorMessage"]; 43*ec779b8eSAndroid Build Coastguard Worker if (val.isString()) { 44*ec779b8eSAndroid Build Coastguard Worker mErrMsg = val.asString(); 45*ec779b8eSAndroid Build Coastguard Worker } else { 46*ec779b8eSAndroid Build Coastguard Worker mErrMsg = msg; 47*ec779b8eSAndroid Build Coastguard Worker } 48*ec779b8eSAndroid Build Coastguard Worker } 49*ec779b8eSAndroid Build Coastguard Worker 50*ec779b8eSAndroid Build Coastguard Worker } // namespace android 51