You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
5.2 KiB
144 lines
5.2 KiB
/*
|
|
* 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<FrontendId> 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<LnbId> 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);
|
|
};
|