/* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.tv.tuner@1.0; import IDemux; import IDescrambler; import IFrontend; import ILnb; /** * Top level interface to manage Frontend, Demux and Decrambler hardware * resouces which are needed for Android TV. */ interface ITuner { /** * Get Frontend IDs * * It is used by the client to get all available frontends' IDs. * * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if tuning failed for other reasons. * @return frontendIds an array of FrontendId for the available frontends. */ getFrontendIds() generates (Result result, vec frontendIds); /** * Create a new instance of Frontend given a frontendId. * * It is used by the client to create a frontend instance. * * @param frontendId the id of the frontend to be opened. * @return result Result status of the operation. * SUCCESS if successful, * UNAVAILABLE if no resource. * UNKNOWN_ERROR if creation failed for other reasons. * @return frontend the newly created frontend interface. */ openFrontendById(FrontendId frontendId) generates (Result result, IFrontend frontend); /** * Create a new instance of Demux. * * It is used by the client to create a Demux instance. * * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if creation failed for other reasons. * @return demuxId newly created demux id. * @return demux the newly created demux interface. */ openDemux() generates (Result result, DemuxId demuxId, IDemux demux); /** * Retrieve the Demux's Capabilities. * * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if the inquiry failed for other reasons. * @return caps the Demux's Capabilities. */ getDemuxCaps() generates (Result result, DemuxCapabilities caps); /** * Create a new instance of Descrambler. * * It is used by the client to create a Descrambler instance. * * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if creation failed for other reasons. * @return descrambler the newly created descrambler interface. */ openDescrambler() generates (Result result, IDescrambler descrambler); /** * Retrieve the frontend's information. * * @param frontendId the id of the frontend to be inquiried. * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if the inquiry failed for other reasons. * @return info the frontend's information. */ getFrontendInfo(FrontendId frontendId) generates (Result result, FrontendInfo info); /** * Get low-noise block downconverter (LNB) IDs. * * It is used by the client to get all available LNBs' IDs. * * @return result Result status of the operation. * SUCCESS if successful, * UNKNOWN_ERROR if tuning failed for other reasons. * @return frontendIds an array of LnbId for the available LNBs. */ getLnbIds() generates (Result result, vec lnbIds); /** * Create a new instance of Lnb given a lnbId. * * It is used by the client to create a Lnb instance for satellite Frontend. * * @param lnbId the id of the LNB to be opened. * @return result Result status of the operation. * SUCCESS if successful, * UNAVAILABLE if no resource. * UNKNOWN_ERROR if creation failed for other reasons. * @return lnb the newly created Lnb interface. */ openLnbById(LnbId lnbId) generates (Result result, ILnb lnb); /** * Create a new instance of Lnb given a LNB name. * * It is used by the client to create a LNB instance for external device. * * @param lnbName the name for an external LNB to be opened. The app * provides the name. Frammework doesn't depend on the name, instead * use lnbId return from this call. * @return result Result status of the operation. * SUCCESS if successful, * UNAVAILABLE if no resource. * UNKNOWN_ERROR if creation failed for other reasons. * @return lnbId the id of the LNB to be opened. * @return lnb the newly created Lnb interface. */ openLnbByName(string lnbName) generates (Result result, LnbId lnbId, ILnb lnb); };