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