blob: 22306e184e0874296aaee6987161224d28538599 [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() {
Hongguangeae68392021-07-27 20:56:23 -070039 mLnb = nullptr;
Amy Zhanga046eee2021-01-12 14:44:58 -080040 mId = -1;
41}
42
Hongguangeae68392021-07-27 20:56:23 -070043::ndk::ScopedAStatus TunerLnb::setCallback(
44 const shared_ptr<ITunerLnbCallback>& in_tunerLnbCallback) {
Hongguangeae68392021-07-27 20:56:23 -070045 if (in_tunerLnbCallback == nullptr) {
46 return ::ndk::ScopedAStatus::fromServiceSpecificError(
47 static_cast<int32_t>(Result::INVALID_ARGUMENT));
Amy Zhanga046eee2021-01-12 14:44:58 -080048 }
49
Hongguangeae68392021-07-27 20:56:23 -070050 shared_ptr<ILnbCallback> lnbCallback =
51 ::ndk::SharedRefBase::make<LnbCallback>(in_tunerLnbCallback);
52 return mLnb->setCallback(lnbCallback);
Amy Zhanga046eee2021-01-12 14:44:58 -080053}
54
Hongguangeae68392021-07-27 20:56:23 -070055::ndk::ScopedAStatus TunerLnb::setVoltage(LnbVoltage in_voltage) {
Hongguangeae68392021-07-27 20:56:23 -070056 return mLnb->setVoltage(in_voltage);
Amy Zhanga046eee2021-01-12 14:44:58 -080057}
58
Hongguangeae68392021-07-27 20:56:23 -070059::ndk::ScopedAStatus TunerLnb::setTone(LnbTone in_tone) {
Hongguangeae68392021-07-27 20:56:23 -070060 return mLnb->setTone(in_tone);
Amy Zhanga046eee2021-01-12 14:44:58 -080061}
62
Hongguangeae68392021-07-27 20:56:23 -070063::ndk::ScopedAStatus TunerLnb::setSatellitePosition(LnbPosition in_position) {
Hongguangeae68392021-07-27 20:56:23 -070064 return mLnb->setSatellitePosition(in_position);
Amy Zhanga046eee2021-01-12 14:44:58 -080065}
66
Hongguangeae68392021-07-27 20:56:23 -070067::ndk::ScopedAStatus TunerLnb::sendDiseqcMessage(const vector<uint8_t>& in_diseqcMessage) {
Hongguangeae68392021-07-27 20:56:23 -070068 return mLnb->sendDiseqcMessage(in_diseqcMessage);
Amy Zhanga046eee2021-01-12 14:44:58 -080069}
70
Hongguangeae68392021-07-27 20:56:23 -070071::ndk::ScopedAStatus TunerLnb::close() {
Hongguang5eef5142022-08-09 20:26:42 -070072 return mLnb->close();
Amy Zhanga046eee2021-01-12 14:44:58 -080073}
74
75/////////////// ILnbCallback ///////////////////////
Hongguangeae68392021-07-27 20:56:23 -070076::ndk::ScopedAStatus TunerLnb::LnbCallback::onEvent(const LnbEventType lnbEventType) {
77 if (mTunerLnbCallback != nullptr) {
78 mTunerLnbCallback->onEvent(lnbEventType);
Amy Zhanga046eee2021-01-12 14:44:58 -080079 }
Hongguangeae68392021-07-27 20:56:23 -070080 return ndk::ScopedAStatus::ok();
Amy Zhanga046eee2021-01-12 14:44:58 -080081}
82
Hongguangeae68392021-07-27 20:56:23 -070083::ndk::ScopedAStatus TunerLnb::LnbCallback::onDiseqcMessage(const vector<uint8_t>& diseqcMessage) {
84 if (mTunerLnbCallback != nullptr) {
85 mTunerLnbCallback->onDiseqcMessage(diseqcMessage);
Amy Zhanga046eee2021-01-12 14:44:58 -080086 }
Hongguangeae68392021-07-27 20:56:23 -070087 return ndk::ScopedAStatus::ok();
Amy Zhanga046eee2021-01-12 14:44:58 -080088}
Hongguangeae68392021-07-27 20:56:23 -070089
90} // namespace tuner
91} // namespace tv
92} // namespace media
Amy Zhanga046eee2021-01-12 14:44:58 -080093} // namespace android
Hongguangeae68392021-07-27 20:56:23 -070094} // namespace aidl