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#ifndef __DRM_RIGHTS_H__ 1827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#define __DRM_RIGHTS_H__ 1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include "drm_framework_common.h" 2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshinamespace android { 2327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/** 2527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is an utility class which wraps the license information which was 2627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * retrieved from the online DRM server. 2727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 2827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Caller can instantiate DrmRights by invoking DrmRights(const DrmBuffer&, String) 2927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * constructor by using the result of DrmManagerClient::ProcessDrmInfo(const DrmInfo*) API. 3027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Caller can also instantiate DrmRights using the file path which contains rights information. 3127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 3227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass DrmRights { 3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 3527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Constructor for DrmRights 3727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] rightsFilePath Path of the file containing rights data 3927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] mimeType MIME type 4027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] accountId Account Id of the user 4127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] subscriptionId Subscription Id of the user 4227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 4327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi DrmRights( 4427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& rightsFilePath, const String8& mimeType, 4527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& accountId = String8("_NO_USER"), 4627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& subscriptionId = String8("")); 4727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 4827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 4927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Constructor for DrmRights 5027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 5127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] rightsData Rights data 5227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] mimeType MIME type 5327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] accountId Account Id of the user 5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] subscriptionId Subscription Id of the user 5527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi DrmRights( 5727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const DrmBuffer& rightsData, const String8& mimeType, 5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& accountId = String8("_NO_USER"), 5927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const String8& subscriptionId = String8("")); 6027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 6227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Destructor for DrmRights 6327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 642272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi virtual ~DrmRights(); 6527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 6627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 6727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 6827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the rights data associated with this instance 6927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 7027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Rights data 7127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 7227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi const DrmBuffer& getData(void) const; 7327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 7427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 7527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns MIME type associated with this instance 7627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 7727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return MIME type 7827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 7927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 getMimeType(void) const; 8027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 8127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 8227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the account-id associated with this instance 8327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 8427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Account Id 8527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 8627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 getAccountId(void) const; 8727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 8827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 8927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the subscription-id associated with this object 9027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 9127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Subscription Id 9227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 9327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 getSubscriptionId(void) const; 9427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 9527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiprivate: 9627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi DrmBuffer mData; 9727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 mMimeType; 9827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 mAccountId; 9927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi String8 mSubscriptionId; 1002272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi char* mRightsFromFile; 10127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 10227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 10327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 10427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 10527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#endif /* __DRM_RIGHTS_H__ */ 10627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 107