1*ec779b8eSAndroid Build Coastguard Worker /* 2*ec779b8eSAndroid Build Coastguard Worker * Copyright (C) 2010 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 #ifndef __DRM_RIGHTS_H__ 18*ec779b8eSAndroid Build Coastguard Worker #define __DRM_RIGHTS_H__ 19*ec779b8eSAndroid Build Coastguard Worker 20*ec779b8eSAndroid Build Coastguard Worker #include "drm_framework_common.h" 21*ec779b8eSAndroid Build Coastguard Worker 22*ec779b8eSAndroid Build Coastguard Worker namespace android { 23*ec779b8eSAndroid Build Coastguard Worker 24*ec779b8eSAndroid Build Coastguard Worker /** 25*ec779b8eSAndroid Build Coastguard Worker * This is an utility class which wraps the license information which was 26*ec779b8eSAndroid Build Coastguard Worker * retrieved from the online DRM server. 27*ec779b8eSAndroid Build Coastguard Worker * 28*ec779b8eSAndroid Build Coastguard Worker * Caller can instantiate DrmRights by invoking DrmRights(const DrmBuffer&, String) 29*ec779b8eSAndroid Build Coastguard Worker * constructor by using the result of DrmManagerClient::ProcessDrmInfo(const DrmInfo*) API. 30*ec779b8eSAndroid Build Coastguard Worker * Caller can also instantiate DrmRights using the file path which contains rights information. 31*ec779b8eSAndroid Build Coastguard Worker * 32*ec779b8eSAndroid Build Coastguard Worker */ 33*ec779b8eSAndroid Build Coastguard Worker class DrmRights { 34*ec779b8eSAndroid Build Coastguard Worker public: 35*ec779b8eSAndroid Build Coastguard Worker /** 36*ec779b8eSAndroid Build Coastguard Worker * Constructor for DrmRights 37*ec779b8eSAndroid Build Coastguard Worker * 38*ec779b8eSAndroid Build Coastguard Worker * @param[in] rightsFilePath Path of the file containing rights data 39*ec779b8eSAndroid Build Coastguard Worker * @param[in] mimeType MIME type 40*ec779b8eSAndroid Build Coastguard Worker * @param[in] accountId Account Id of the user 41*ec779b8eSAndroid Build Coastguard Worker * @param[in] subscriptionId Subscription Id of the user 42*ec779b8eSAndroid Build Coastguard Worker */ 43*ec779b8eSAndroid Build Coastguard Worker DrmRights( 44*ec779b8eSAndroid Build Coastguard Worker const String8& rightsFilePath, const String8& mimeType, 45*ec779b8eSAndroid Build Coastguard Worker const String8& accountId = String8("_NO_USER"), 46*ec779b8eSAndroid Build Coastguard Worker const String8& subscriptionId = String8("")); 47*ec779b8eSAndroid Build Coastguard Worker 48*ec779b8eSAndroid Build Coastguard Worker /** 49*ec779b8eSAndroid Build Coastguard Worker * Constructor for DrmRights 50*ec779b8eSAndroid Build Coastguard Worker * 51*ec779b8eSAndroid Build Coastguard Worker * @param[in] rightsData Rights data 52*ec779b8eSAndroid Build Coastguard Worker * @param[in] mimeType MIME type 53*ec779b8eSAndroid Build Coastguard Worker * @param[in] accountId Account Id of the user 54*ec779b8eSAndroid Build Coastguard Worker * @param[in] subscriptionId Subscription Id of the user 55*ec779b8eSAndroid Build Coastguard Worker */ 56*ec779b8eSAndroid Build Coastguard Worker DrmRights( 57*ec779b8eSAndroid Build Coastguard Worker const DrmBuffer& rightsData, const String8& mimeType, 58*ec779b8eSAndroid Build Coastguard Worker const String8& accountId = String8("_NO_USER"), 59*ec779b8eSAndroid Build Coastguard Worker const String8& subscriptionId = String8("")); 60*ec779b8eSAndroid Build Coastguard Worker 61*ec779b8eSAndroid Build Coastguard Worker /** 62*ec779b8eSAndroid Build Coastguard Worker * Destructor for DrmRights 63*ec779b8eSAndroid Build Coastguard Worker */ 64*ec779b8eSAndroid Build Coastguard Worker virtual ~DrmRights(); 65*ec779b8eSAndroid Build Coastguard Worker 66*ec779b8eSAndroid Build Coastguard Worker public: 67*ec779b8eSAndroid Build Coastguard Worker /** 68*ec779b8eSAndroid Build Coastguard Worker * Returns the rights data associated with this instance 69*ec779b8eSAndroid Build Coastguard Worker * 70*ec779b8eSAndroid Build Coastguard Worker * @return Rights data 71*ec779b8eSAndroid Build Coastguard Worker */ 72*ec779b8eSAndroid Build Coastguard Worker const DrmBuffer& getData(void) const; 73*ec779b8eSAndroid Build Coastguard Worker 74*ec779b8eSAndroid Build Coastguard Worker /** 75*ec779b8eSAndroid Build Coastguard Worker * Returns MIME type associated with this instance 76*ec779b8eSAndroid Build Coastguard Worker * 77*ec779b8eSAndroid Build Coastguard Worker * @return MIME type 78*ec779b8eSAndroid Build Coastguard Worker */ 79*ec779b8eSAndroid Build Coastguard Worker String8 getMimeType(void) const; 80*ec779b8eSAndroid Build Coastguard Worker 81*ec779b8eSAndroid Build Coastguard Worker /** 82*ec779b8eSAndroid Build Coastguard Worker * Returns the account-id associated with this instance 83*ec779b8eSAndroid Build Coastguard Worker * 84*ec779b8eSAndroid Build Coastguard Worker * @return Account Id 85*ec779b8eSAndroid Build Coastguard Worker */ 86*ec779b8eSAndroid Build Coastguard Worker String8 getAccountId(void) const; 87*ec779b8eSAndroid Build Coastguard Worker 88*ec779b8eSAndroid Build Coastguard Worker /** 89*ec779b8eSAndroid Build Coastguard Worker * Returns the subscription-id associated with this object 90*ec779b8eSAndroid Build Coastguard Worker * 91*ec779b8eSAndroid Build Coastguard Worker * @return Subscription Id 92*ec779b8eSAndroid Build Coastguard Worker */ 93*ec779b8eSAndroid Build Coastguard Worker String8 getSubscriptionId(void) const; 94*ec779b8eSAndroid Build Coastguard Worker 95*ec779b8eSAndroid Build Coastguard Worker private: 96*ec779b8eSAndroid Build Coastguard Worker DrmBuffer mData; 97*ec779b8eSAndroid Build Coastguard Worker String8 mMimeType; 98*ec779b8eSAndroid Build Coastguard Worker String8 mAccountId; 99*ec779b8eSAndroid Build Coastguard Worker String8 mSubscriptionId; 100*ec779b8eSAndroid Build Coastguard Worker char* mRightsFromFile; 101*ec779b8eSAndroid Build Coastguard Worker }; 102*ec779b8eSAndroid Build Coastguard Worker 103*ec779b8eSAndroid Build Coastguard Worker }; 104*ec779b8eSAndroid Build Coastguard Worker 105*ec779b8eSAndroid Build Coastguard Worker #endif /* __DRM_RIGHTS_H__ */ 106*ec779b8eSAndroid Build Coastguard Worker 107