blob: 2fb6135334c8c5ed8ff434e2ea87a3ca5263ceff [file] [log] [blame]
Amy Zhanga046eee2021-01-12 14:44:58 -08001/**
2 * Copyright 2021, 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#define LOG_TAG "TunerLnb"
18
19#include "TunerLnb.h"
20
Hongguangeae68392021-07-27 20:56:23 -070021#include <aidl/android/hardware/tv/tuner/ILnbCallback.h>
22#include <aidl/android/hardware/tv/tuner/Result.h>
Amy Zhanga046eee2021-01-12 14:44:58 -080023
Hongguangeae68392021-07-27 20:56:23 -070024using ::aidl::android::hardware::tv::tuner::ILnbCallback;
25using ::aidl::android::hardware::tv::tuner::Result;
26
27namespace aidl {
Amy Zhanga046eee2021-01-12 14:44:58 -080028namespace android {
Hongguangeae68392021-07-27 20:56:23 -070029namespace media {
30namespace tv {
31namespace tuner {
Amy Zhanga046eee2021-01-12 14:44:58 -080032
Hongguangeae68392021-07-27 20:56:23 -070033TunerLnb::TunerLnb(shared_ptr<ILnb> lnb, int id) {
Amy Zhanga046eee2021-01-12 14:44:58 -080034 mLnb = lnb;
35 mId = id;
36}
37
38TunerLnb::~TunerLnb() {
David Zhaof5cea152022-11-10 17:12:24 -080039 close();
Hongguangeae68392021-07-27 20:56:23 -070040 mLnb = nullptr;
Amy Zhanga046eee2021-01-12 14:44:58 -080041 mId = -1;
42}
43
Hongguangeae68392021-07-27 20:56:23 -070044::ndk::ScopedAStatus TunerLnb::setCallback(
45 const shared_ptr<ITunerLnbCallback>& in_tunerLnbCallback) {
Hongguangeae68392021-07-27 20:56:23 -070046 if (in_tunerLnbCallback == nullptr) {
47 return ::ndk::ScopedAStatus::fromServiceSpecificError(
48 static_cast<int32_t>(Result::INVALID_ARGUMENT));
Amy Zhanga046eee2021-01-12 14:44:58 -080049 }
50
Hongguangeae68392021-07-27 20:56:23 -070051 shared_ptr<ILnbCallback> lnbCallback =
52 ::ndk::SharedRefBase::make<LnbCallback>(in_tunerLnbCallback);
53 return mLnb->setCallback(lnbCallback);
Amy Zhanga046eee2021-01-12 14:44:58 -080054}
55
Hongguangeae68392021-07-27 20:56:23 -070056::ndk::ScopedAStatus TunerLnb::setVoltage(LnbVoltage in_voltage) {
Hongguangeae68392021-07-27 20:56:23 -070057 return mLnb->setVoltage(in_voltage);
Amy Zhanga046eee2021-01-12 14:44:58 -080058}
59
Hongguangeae68392021-07-27 20:56:23 -070060::ndk::ScopedAStatus TunerLnb::setTone(LnbTone in_tone) {
Hongguangeae68392021-07-27 20:56:23 -070061 return mLnb->setTone(in_tone);
Amy Zhanga046eee2021-01-12 14:44:58 -080062}
63
Hongguangeae68392021-07-27 20:56:23 -070064::ndk::ScopedAStatus TunerLnb::setSatellitePosition(LnbPosition in_position) {
Hongguangeae68392021-07-27 20:56:23 -070065 return mLnb->setSatellitePosition(in_position);
Amy Zhanga046eee2021-01-12 14:44:58 -080066}
67
Hongguangeae68392021-07-27 20:56:23 -070068::ndk::ScopedAStatus TunerLnb::sendDiseqcMessage(const vector<uint8_t>& in_diseqcMessage) {
Hongguangeae68392021-07-27 20:56:23 -070069 return mLnb->sendDiseqcMessage(in_diseqcMessage);
Amy Zhanga046eee2021-01-12 14:44:58 -080070}
71
Hongguangeae68392021-07-27 20:56:23 -070072::ndk::ScopedAStatus TunerLnb::close() {
Hongguang5eef5142022-08-09 20:26:42 -070073 return mLnb->close();
Amy Zhanga046eee2021-01-12 14:44:58 -080074}
75
76/////////////// ILnbCallback ///////////////////////
Hongguangeae68392021-07-27 20:56:23 -070077::ndk::ScopedAStatus TunerLnb::LnbCallback::onEvent(const LnbEventType lnbEventType) {
78 if (mTunerLnbCallback != nullptr) {
79 mTunerLnbCallback->onEvent(lnbEventType);
Amy Zhanga046eee2021-01-12 14:44:58 -080080 }
Hongguangeae68392021-07-27 20:56:23 -070081 return ndk::ScopedAStatus::ok();
Amy Zhanga046eee2021-01-12 14:44:58 -080082}
83
Hongguangeae68392021-07-27 20:56:23 -070084::ndk::ScopedAStatus TunerLnb::LnbCallback::onDiseqcMessage(const vector<uint8_t>& diseqcMessage) {
85 if (mTunerLnbCallback != nullptr) {
86 mTunerLnbCallback->onDiseqcMessage(diseqcMessage);
Amy Zhanga046eee2021-01-12 14:44:58 -080087 }
Hongguangeae68392021-07-27 20:56:23 -070088 return ndk::ScopedAStatus::ok();
Amy Zhanga046eee2021-01-12 14:44:58 -080089}
Hongguangeae68392021-07-27 20:56:23 -070090
91} // namespace tuner
92} // namespace tv
93} // namespace media
Amy Zhanga046eee2021-01-12 14:44:58 -080094} // namespace android
Hongguangeae68392021-07-27 20:56:23 -070095} // namespace aidl