1/* 2 * Copyright (C) 2019 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 17package android.hardware.cas@1.2; 18 19import android.hardware.cas@1.0; 20import android.hardware.cas@1.1; 21 22enum Status : @1.0::Status { 23 /** 24 * ERROR_CAS_NEED_ACTIVATION is used to trigger device activation process. 25 */ 26 ERROR_CAS_NEED_ACTIVATION, 27 /** 28 * ERROR_CAS_NEED_PAIRING is used to trigger pairing process. 29 */ 30 ERROR_CAS_NEED_PAIRING, 31 /** 32 * ERROR_CAS_NO_CARD is used to report no smart card for descrambling. 33 */ 34 ERROR_CAS_NO_CARD, 35 /** 36 * ERROR_CAS_CARD_MUTE is used to report smart card is muted for 37 * descrambling. 38 */ 39 ERROR_CAS_CARD_MUTE, 40 /** 41 * ERROR_CAS_CARD_INVALID is used to report smart card isn't valid. 42 */ 43 ERROR_CAS_CARD_INVALID, 44 /** 45 * ERROR_CAS_BLACKOUT is used to report geographical blackout. 46 */ 47 ERROR_CAS_BLACKOUT, 48 /** 49 * ERROR_CAS_REBOOTING is used to report CAS is during rebooting. 50 */ 51 ERROR_CAS_REBOOTING, 52}; 53 54/** 55 * The intented usage for the session. 56 */ 57enum SessionIntent : uint32_t { 58 /** 59 * Live Stream. 60 */ 61 LIVE, 62 /** 63 * Playback Recorded Stream. 64 */ 65 PLAYBACK, 66 /** 67 * Record Live Stream. 68 */ 69 RECORD, 70 /** 71 * View the content with Time Shift capability 72 */ 73 TIMESHIFT, 74}; 75 76/** 77 * The Scrambling Mode. 78 */ 79enum ScramblingMode : uint32_t { 80 RESERVED = 0, 81 /** 82 * DVB (Digital Video Broadcasting) CSA1 (Common Scrambling Algorithm 1) is 83 * the default mode and shall be used when the scrambling descriptor 84 * is not present in the program map section. DVB scrambling mode is 85 * specified in ETSI EN 300 468 specification. 86 */ 87 DVB_CSA1, 88 DVB_CSA2, 89 /** 90 * DVB-CSA3 in standard mode. 91 */ 92 DVB_CSA3_STANDARD, 93 /** 94 * DVB-CSA3 in minimally enhanced mode. 95 */ 96 DVB_CSA3_MINIMAL, 97 /** 98 * DVB-CSA3 in fully enhanced mode. 99 */ 100 DVB_CSA3_ENHANCE, 101 /** 102 * DVB-CISSA version 1. 103 */ 104 DVB_CISSA_V1, 105 /** 106 * ATIS-0800006 IIF Default Scrambling Algorithm (IDSA). 107 */ 108 DVB_IDSA, 109 /** 110 * a symmetric key algorithm. 111 */ 112 MULTI2, 113 /** 114 * Advanced Encryption System (AES) 128-bit Encryption mode. 115 */ 116 AES128, 117 /** 118 * Advanced Encryption System (AES) Electronic Code Book (ECB) mode. 119 */ 120 AES_ECB, 121 /** 122 * Advanced Encryption System (AES) Society of Cable Telecommunications 123 * Engineers (SCTE) 52 mode. 124 */ 125 AES_SCTE52, 126 /** 127 * Triple Data Encryption Algorithm (TDES) Electronic Code Book (ECB) mode. 128 */ 129 TDES_ECB, 130 /** 131 * Triple Data Encryption Algorithm (TDES) Society of Cable Telecommunications 132 * Engineers (SCTE) 52 mode. 133 */ 134 TDES_SCTE52, 135 }; 136 137/** 138 * The Event Type for status change. 139 */ 140enum StatusEvent : uint8_t { 141 /** 142 * The status of CAS plugin was changed due to physical module insertion or 143 * removal. Client must call enumeratePlugins to update plugins' status. 144 */ 145 PLUGIN_PHYSICAL_MODULE_CHANGED, 146 /** 147 * The status of supported session number was changed due to physical module 148 * insertion or removal. Client must update session resource according to 149 * latest StatusMessage from the StatusEvent. The plugin supports unlimited 150 * sesssion by default. 151 */ 152 PLUGIN_SESSION_NUMBER_CHANGED, 153}; 154