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 package android.drm;
     18 
     19 /**
     20  * Defines constants that are used by the DRM framework.
     21  *
     22  */
     23 public class DrmStore {
     24     /**
     25      * Interface definition for the columns that represent DRM constraints.
     26      */
     27     public interface ConstraintsColumns {
     28         /**
     29          * The maximum repeat count.
     30          * <p>
     31          * Type: INTEGER
     32          */
     33         public static final String MAX_REPEAT_COUNT = "max_repeat_count";
     34 
     35         /**
     36          * The remaining repeat count.
     37          * <p>
     38          * Type: INTEGER
     39          */
     40         public static final String REMAINING_REPEAT_COUNT = "remaining_repeat_count";
     41 
     42         /**
     43          * The time before which the rights-protected file cannot be played/viewed.
     44          * <p>
     45          * Type: TEXT
     46          */
     47         public static final String LICENSE_START_TIME = "license_start_time";
     48 
     49         /**
     50          * The time after which the rights-protected file cannot be played/viewed.
     51          * <p>
     52          * Type: TEXT
     53          */
     54         public static final String LICENSE_EXPIRY_TIME = "license_expiry_time";
     55 
     56         /**
     57          * The available time left before the license expires.
     58          * <p>
     59          * Type: TEXT
     60          */
     61         public static final String LICENSE_AVAILABLE_TIME = "license_available_time";
     62 
     63         /**
     64          * The data stream for extended metadata.
     65          * <p>
     66          * Type: TEXT
     67          */
     68         public static final String EXTENDED_METADATA = "extended_metadata";
     69     }
     70 
     71     /**
     72      * Defines DRM object types.
     73      */
     74     public static class DrmObjectType {
     75         /**
     76          * An unknown object type.
     77          */
     78         public static final int UNKNOWN = 0x00;
     79         /**
     80          * A rights-protected file object type.
     81          */
     82         public static final int CONTENT = 0x01;
     83         /**
     84          * A rights information object type.
     85          */
     86         public static final int RIGHTS_OBJECT = 0x02;
     87         /**
     88          * A trigger information object type.
     89          */
     90         public static final int TRIGGER_OBJECT = 0x03;
     91     }
     92 
     93     /**
     94      * Defines playback states for content.
     95      */
     96     public static class Playback {
     97         /**
     98          * Playback started.
     99          */
    100         public static final int START = 0x00;
    101         /**
    102          * Playback stopped.
    103          */
    104         public static final int STOP = 0x01;
    105         /**
    106          * Playback paused.
    107          */
    108         public static final int PAUSE = 0x02;
    109         /**
    110          * Playback resumed.
    111          */
    112         public static final int RESUME = 0x03;
    113 
    114         /* package */ static boolean isValid(int playbackStatus) {
    115             boolean isValid = false;
    116 
    117             switch (playbackStatus) {
    118                 case START:
    119                 case STOP:
    120                 case PAUSE:
    121                 case RESUME:
    122                     isValid = true;
    123             }
    124             return isValid;
    125         }
    126     }
    127 
    128     /**
    129      * Defines actions that can be performed on rights-protected content.
    130      */
    131     public static class Action {
    132         /**
    133          * The default action.
    134          */
    135         public static final int DEFAULT = 0x00;
    136         /**
    137          * The rights-protected content can be played.
    138          */
    139         public static final int PLAY = 0x01;
    140         /**
    141          * The rights-protected content can be set as a ringtone.
    142          */
    143         public static final int RINGTONE = 0x02;
    144         /**
    145          * The rights-protected content can be transferred.
    146          */
    147         public static final int TRANSFER = 0x03;
    148         /**
    149          * The rights-protected content can be set as output.
    150          */
    151         public static final int OUTPUT = 0x04;
    152         /**
    153          * The rights-protected content can be previewed.
    154          */
    155         public static final int PREVIEW = 0x05;
    156         /**
    157          * The rights-protected content can be executed.
    158          */
    159         public static final int EXECUTE = 0x06;
    160         /**
    161          * The rights-protected content can be displayed.
    162          */
    163         public static final int DISPLAY = 0x07;
    164 
    165         /* package */ static boolean isValid(int action) {
    166             boolean isValid = false;
    167 
    168             switch (action) {
    169                 case DEFAULT:
    170                 case PLAY:
    171                 case RINGTONE:
    172                 case TRANSFER:
    173                 case OUTPUT:
    174                 case PREVIEW:
    175                 case EXECUTE:
    176                 case DISPLAY:
    177                     isValid = true;
    178             }
    179             return isValid;
    180         }
    181     }
    182 
    183     /**
    184      * Defines status notifications for digital rights.
    185      */
    186     public static class RightsStatus {
    187         /**
    188          * The digital rights are valid.
    189          */
    190         public static final int RIGHTS_VALID = 0x00;
    191         /**
    192          * The digital rights are invalid.
    193          */
    194         public static final int RIGHTS_INVALID = 0x01;
    195         /**
    196          * The digital rights have expired.
    197          */
    198         public static final int RIGHTS_EXPIRED = 0x02;
    199         /**
    200          * The digital rights have not been acquired for the rights-protected content.
    201          */
    202         public static final int RIGHTS_NOT_ACQUIRED = 0x03;
    203     }
    204 }
    205 
    206