1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2020 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport @1.0::FrontendScanType; 20*4d7e907cSAndroid Build Coastguard Workerimport @1.0::FrontendSettings; 21*4d7e907cSAndroid Build Coastguard Workerimport @1.0::IFrontend; 22*4d7e907cSAndroid Build Coastguard Workerimport @1.0::Result; 23*4d7e907cSAndroid Build Coastguard Worker 24*4d7e907cSAndroid Build Coastguard Worker/** 25*4d7e907cSAndroid Build Coastguard Worker * A Tuner Frontend is used to tune to a frequency and lock signal. 26*4d7e907cSAndroid Build Coastguard Worker * 27*4d7e907cSAndroid Build Coastguard Worker * IFrontend provides a bit stream to the Tuner Demux interface. 28*4d7e907cSAndroid Build Coastguard Worker */ 29*4d7e907cSAndroid Build Coastguard Workerinterface IFrontend extends @1.0::IFrontend { 30*4d7e907cSAndroid Build Coastguard Worker /** 31*4d7e907cSAndroid Build Coastguard Worker * Tunes the frontend to using the settings given. 32*4d7e907cSAndroid Build Coastguard Worker * 33*4d7e907cSAndroid Build Coastguard Worker * This locks the frontend to a frequency by providing signal 34*4d7e907cSAndroid Build Coastguard Worker * delivery information. If previous tuning isn't completed, this call MUST 35*4d7e907cSAndroid Build Coastguard Worker * stop previous tuning, and start a new tuning. 36*4d7e907cSAndroid Build Coastguard Worker * Tune is an async call, with LOCKED or NO_SIGNAL events sent via callback. 37*4d7e907cSAndroid Build Coastguard Worker * 38*4d7e907cSAndroid Build Coastguard Worker * @param settings Signal delivery information the frontend uses to 39*4d7e907cSAndroid Build Coastguard Worker * search and lock the signal. 40*4d7e907cSAndroid Build Coastguard Worker * @param settingsExt1_1 v1_1 Extended information that would be used in the 1.1 Frontend to 41*4d7e907cSAndroid Build Coastguard Worker * search and lock the signal in a better way. 42*4d7e907cSAndroid Build Coastguard Worker * 43*4d7e907cSAndroid Build Coastguard Worker * @return result Result status of the operation. 44*4d7e907cSAndroid Build Coastguard Worker * SUCCESS if successful, 45*4d7e907cSAndroid Build Coastguard Worker * INVALID_STATE if tuning can't be applied at current stage, 46*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN_ERROR if tuning failed for other reasons. 47*4d7e907cSAndroid Build Coastguard Worker */ 48*4d7e907cSAndroid Build Coastguard Worker tune_1_1(FrontendSettings settings, FrontendSettingsExt1_1 settingsExt1_1) 49*4d7e907cSAndroid Build Coastguard Worker generates (Result result); 50*4d7e907cSAndroid Build Coastguard Worker 51*4d7e907cSAndroid Build Coastguard Worker /** 52*4d7e907cSAndroid Build Coastguard Worker * Scan the frontend to use the settings given. 53*4d7e907cSAndroid Build Coastguard Worker * 54*4d7e907cSAndroid Build Coastguard Worker * This uses the frontend to start a scan from signal delivery information. 55*4d7e907cSAndroid Build Coastguard Worker * If previous scan isn't completed, this call MUST stop previous scan, 56*4d7e907cSAndroid Build Coastguard Worker * and start a new scan. 57*4d7e907cSAndroid Build Coastguard Worker * Scan is an async call, with FrontendScanMessage sent via callback. 58*4d7e907cSAndroid Build Coastguard Worker * 59*4d7e907cSAndroid Build Coastguard Worker * @param settings Signal delivery information which the frontend uses to 60*4d7e907cSAndroid Build Coastguard Worker * scan the signal. 61*4d7e907cSAndroid Build Coastguard Worker * @param type the type which the frontend uses to scan the signal. 62*4d7e907cSAndroid Build Coastguard Worker * @param settingsExt1_1 v1_1 Extended information that would be used in the 1.1 Frontend to 63*4d7e907cSAndroid Build Coastguard Worker * search and lock the signal in a better way. 64*4d7e907cSAndroid Build Coastguard Worker * @return result Result status of the operation. 65*4d7e907cSAndroid Build Coastguard Worker * SUCCESS if successful, 66*4d7e907cSAndroid Build Coastguard Worker * INVALID_STATE if tuning can't be applied at current stage, 67*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN_ERROR if tuning failed for other reasons. 68*4d7e907cSAndroid Build Coastguard Worker */ 69*4d7e907cSAndroid Build Coastguard Worker scan_1_1(FrontendSettings settings, FrontendScanType type, 70*4d7e907cSAndroid Build Coastguard Worker FrontendSettingsExt1_1 settingsExt1_1) generates (Result result); 71*4d7e907cSAndroid Build Coastguard Worker 72*4d7e907cSAndroid Build Coastguard Worker /** 73*4d7e907cSAndroid Build Coastguard Worker * Link Conditional Access Modules (CAM) to Frontend support Common Interface (CI) bypass mode. 74*4d7e907cSAndroid Build Coastguard Worker * 75*4d7e907cSAndroid Build Coastguard Worker * The client may use this to link CI-CAM to a frontend. CI bypass mode requires that the 76*4d7e907cSAndroid Build Coastguard Worker * CICAM also receives the TS concurrently from the frontend when the Demux is receiving the TS 77*4d7e907cSAndroid Build Coastguard Worker * directly from the frontend. 78*4d7e907cSAndroid Build Coastguard Worker * 79*4d7e907cSAndroid Build Coastguard Worker * @param ciCamId specify CI-CAM Id to link. 80*4d7e907cSAndroid Build Coastguard Worker * @return ltsId Local Transport Stream Id. 81*4d7e907cSAndroid Build Coastguard Worker * @return result Result status of the operation. 82*4d7e907cSAndroid Build Coastguard Worker * SUCCESS if successful, 83*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN_ERROR if failed for other reasons. 84*4d7e907cSAndroid Build Coastguard Worker */ 85*4d7e907cSAndroid Build Coastguard Worker linkCiCam(uint32_t ciCamId) generates (Result result, uint32_t ltsId); 86*4d7e907cSAndroid Build Coastguard Worker 87*4d7e907cSAndroid Build Coastguard Worker /** 88*4d7e907cSAndroid Build Coastguard Worker * Unlink Conditional Access Modules (CAM) to Frontend. 89*4d7e907cSAndroid Build Coastguard Worker * 90*4d7e907cSAndroid Build Coastguard Worker * @param ciCamId specify CI-CAM Id to unlink. 91*4d7e907cSAndroid Build Coastguard Worker * @return result Result status of the operation. 92*4d7e907cSAndroid Build Coastguard Worker * SUCCESS if successful, 93*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN_ERROR if failed for other reasons. 94*4d7e907cSAndroid Build Coastguard Worker */ 95*4d7e907cSAndroid Build Coastguard Worker unlinkCiCam(uint32_t ciCamId) generates (Result result); 96*4d7e907cSAndroid Build Coastguard Worker 97*4d7e907cSAndroid Build Coastguard Worker /** 98*4d7e907cSAndroid Build Coastguard Worker * Get the v1_1 extended statuses of the frontend. 99*4d7e907cSAndroid Build Coastguard Worker * 100*4d7e907cSAndroid Build Coastguard Worker * This retrieve the extended statuses of the frontend for given extended status types. 101*4d7e907cSAndroid Build Coastguard Worker * 102*4d7e907cSAndroid Build Coastguard Worker * @param statusTypes an array of the extended status types which the caller request. 103*4d7e907cSAndroid Build Coastguard Worker * 104*4d7e907cSAndroid Build Coastguard Worker * @return result Result status of the operation. 105*4d7e907cSAndroid Build Coastguard Worker * SUCCESS if successful, 106*4d7e907cSAndroid Build Coastguard Worker * INVALID_STATE if tuning can't be applied at current stage, 107*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN_ERROR if tuning failed for other reasons. 108*4d7e907cSAndroid Build Coastguard Worker * @return statuses an array of extended statuses the caller requests for. 109*4d7e907cSAndroid Build Coastguard Worker */ 110*4d7e907cSAndroid Build Coastguard Worker getStatusExt1_1(vec<FrontendStatusTypeExt1_1> statusTypes) 111*4d7e907cSAndroid Build Coastguard Worker generates (Result result, vec<FrontendStatusExt1_1> statuses); 112*4d7e907cSAndroid Build Coastguard Worker}; 113