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