127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/* 227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Copyright (C) 2010 The Android Open Source Project 327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Licensed under the Apache License, Version 2.0 (the "License"); 527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * you may not use this file except in compliance with the License. 627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * You may obtain a copy of the License at 727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * http://www.apache.org/licenses/LICENSE-2.0 927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 1027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Unless required by applicable law or agreed to in writing, software 1127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * distributed under the License is distributed on an "AS IS" BASIS, 1227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * See the License for the specific language governing permissions and 1427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * limitations under the License. 1527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 1627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 1727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include <drm/DrmRights.h> 182272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi#include <ReadWriteUtils.h> 1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiusing namespace android; 2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiDrmRights::DrmRights(const String8& rightsFilePath, const String8& mimeType, 232272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi const String8& accountId, const String8& subscriptionId) : 242272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mMimeType(mimeType), 252272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mAccountId(accountId), 262272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mSubscriptionId(subscriptionId), 272272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mRightsFromFile(NULL) { 282272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi int rightsLength = 0; 292272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi if (String8("") != rightsFilePath) { 302272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi rightsLength = ReadWriteUtils::readBytes(rightsFilePath, &mRightsFromFile); 312272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi } 322272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mData = DrmBuffer(mRightsFromFile, rightsLength); 3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 3527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiDrmRights::DrmRights(const DrmBuffer& rightsData, const String8& mimeType, 3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& accountId, const String8& subscriptionId) : 3727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mData(rightsData), 3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mMimeType(mimeType), 3927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mAccountId(accountId), 402272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mSubscriptionId(subscriptionId), 412272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mRightsFromFile(NULL) { 422272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi} 432272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi 442272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi AimiDrmRights::~DrmRights() { 452272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi delete[] mRightsFromFile; mRightsFromFile = NULL; 4627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 4727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 4827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiconst DrmBuffer& DrmRights::getData(void) const { 4927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi return mData; 5027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 5127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 5227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiString8 DrmRights::getMimeType(void) const { 5327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi return mMimeType; 5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 5527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiString8 DrmRights::getAccountId(void) const { 5727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi return mAccountId; 5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 5927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 6027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiString8 DrmRights::getSubscriptionId(void) const { 6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi return mSubscriptionId; 6227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi} 6327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 64