1d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi/* 2d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Copyright (C) 2010 The Android Open Source Project 3d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 4d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Licensed under the Apache License, Version 2.0 (the "License"); 5d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * you may not use this file except in compliance with the License. 6d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * You may obtain a copy of the License at 7d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 8d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * http://www.apache.org/licenses/LICENSE-2.0 9d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 10d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Unless required by applicable law or agreed to in writing, software 11d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * distributed under the License is distributed on an "AS IS" BASIS, 12d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * See the License for the specific language governing permissions and 14d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * limitations under the License. 15d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi */ 16d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 17d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#include <drm/DrmRights.h> 18dc549d60f98d809f626c99de614960409a847054Takeshi Aimi#include <ReadWriteUtils.h> 19d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 20d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiusing namespace android; 21d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 22d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiDrmRights::DrmRights(const String8& rightsFilePath, const String8& mimeType, 23dc549d60f98d809f626c99de614960409a847054Takeshi Aimi const String8& accountId, const String8& subscriptionId) : 24dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mMimeType(mimeType), 25dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mAccountId(accountId), 26dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mSubscriptionId(subscriptionId), 27dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mRightsFromFile(NULL) { 28dc549d60f98d809f626c99de614960409a847054Takeshi Aimi int rightsLength = 0; 29dc549d60f98d809f626c99de614960409a847054Takeshi Aimi if (String8("") != rightsFilePath) { 30dc549d60f98d809f626c99de614960409a847054Takeshi Aimi rightsLength = ReadWriteUtils::readBytes(rightsFilePath, &mRightsFromFile); 31dc549d60f98d809f626c99de614960409a847054Takeshi Aimi } 32dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mData = DrmBuffer(mRightsFromFile, rightsLength); 33d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 34d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 35d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiDrmRights::DrmRights(const DrmBuffer& rightsData, const String8& mimeType, 36d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi const String8& accountId, const String8& subscriptionId) : 37d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi mData(rightsData), 38d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi mMimeType(mimeType), 39d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi mAccountId(accountId), 40dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mSubscriptionId(subscriptionId), 41dc549d60f98d809f626c99de614960409a847054Takeshi Aimi mRightsFromFile(NULL) { 42dc549d60f98d809f626c99de614960409a847054Takeshi Aimi} 43dc549d60f98d809f626c99de614960409a847054Takeshi Aimi 44dc549d60f98d809f626c99de614960409a847054Takeshi AimiDrmRights::~DrmRights() { 45dc549d60f98d809f626c99de614960409a847054Takeshi Aimi delete[] mRightsFromFile; mRightsFromFile = NULL; 46d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 47d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 48d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiconst DrmBuffer& DrmRights::getData(void) const { 49d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi return mData; 50d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 51d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 52d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiString8 DrmRights::getMimeType(void) const { 53d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi return mMimeType; 54d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 55d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 56d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiString8 DrmRights::getAccountId(void) const { 57d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi return mAccountId; 58d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 59d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 60d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiString8 DrmRights::getSubscriptionId(void) const { 61d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi return mSubscriptionId; 62d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi} 63d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 64