1 /* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef __DRM_RIGHTS_H__ 18 #define __DRM_RIGHTS_H__ 19 20 #include "drm_framework_common.h" 21 22 namespace android { 23 24 /** 25 * This is an utility class which wraps the license information which was 26 * retrieved from the online DRM server. 27 * 28 * Caller can instantiate DrmRights by invoking DrmRights(const DrmBuffer&, String) 29 * constructor by using the result of DrmManagerClient::ProcessDrmInfo(const DrmInfo*) API. 30 * Caller can also instantiate DrmRights using the file path which contains rights information. 31 * 32 */ 33 class DrmRights { 34 public: 35 /** 36 * Constructor for DrmRights 37 * 38 * @param[in] rightsFilePath Path of the file containing rights data 39 * @param[in] mimeType MIME type 40 * @param[in] accountId Account Id of the user 41 * @param[in] subscriptionId Subscription Id of the user 42 */ 43 DrmRights( 44 const String8& rightsFilePath, const String8& mimeType, 45 const String8& accountId = String8("_NO_USER"), 46 const String8& subscriptionId = String8("")); 47 48 /** 49 * Constructor for DrmRights 50 * 51 * @param[in] rightsData Rights data 52 * @param[in] mimeType MIME type 53 * @param[in] accountId Account Id of the user 54 * @param[in] subscriptionId Subscription Id of the user 55 */ 56 DrmRights( 57 const DrmBuffer& rightsData, const String8& mimeType, 58 const String8& accountId = String8("_NO_USER"), 59 const String8& subscriptionId = String8("")); 60 61 /** 62 * Destructor for DrmRights 63 */ 64 virtual ~DrmRights(); 65 66 public: 67 /** 68 * Returns the rights data associated with this instance 69 * 70 * @return Rights data 71 */ 72 const DrmBuffer& getData(void) const; 73 74 /** 75 * Returns MIME type associated with this instance 76 * 77 * @return MIME type 78 */ 79 String8 getMimeType(void) const; 80 81 /** 82 * Returns the account-id associated with this instance 83 * 84 * @return Account Id 85 */ 86 String8 getAccountId(void) const; 87 88 /** 89 * Returns the subscription-id associated with this object 90 * 91 * @return Subscription Id 92 */ 93 String8 getSubscriptionId(void) const; 94 95 private: 96 DrmBuffer mData; 97 String8 mMimeType; 98 String8 mAccountId; 99 String8 mSubscriptionId; 100 char* mRightsFromFile; 101 }; 102 103 }; 104 105 #endif /* __DRM_RIGHTS_H__ */ 106 107