Home | History | Annotate | Download | only in drm
      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