blob: 417d9692cc2cd36f97c8f8525ceb020c4fee7bf6 [file] [log] [blame]
Amy Zhang0f04c452020-10-30 13:36:44 -07001/**
Hongguangeae68392021-07-27 20:56:23 -07002 * Copyright 2021, The Android Open Source Project
Amy Zhang0f04c452020-10-30 13:36:44 -07003 *
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#ifndef ANDROID_MEDIA_TUNERFRONTEND_H
18#define ANDROID_MEDIA_TUNERFRONTEND_H
19
Hongguangeae68392021-07-27 20:56:23 -070020#include <aidl/android/hardware/tv/tuner/BnFrontendCallback.h>
21#include <aidl/android/hardware/tv/tuner/IFrontend.h>
22#include <aidl/android/hardware/tv/tuner/IFrontendCallback.h>
Amy Zhang0f04c452020-10-30 13:36:44 -070023#include <aidl/android/media/tv/tuner/BnTunerFrontend.h>
Amy Zhang0f04c452020-10-30 13:36:44 -070024#include <utils/Log.h>
25
Hongguangeae68392021-07-27 20:56:23 -070026using ::aidl::android::hardware::tv::tuner::BnFrontendCallback;
27using ::aidl::android::hardware::tv::tuner::FrontendEventType;
28using ::aidl::android::hardware::tv::tuner::FrontendScanMessage;
29using ::aidl::android::hardware::tv::tuner::FrontendScanMessageType;
30using ::aidl::android::hardware::tv::tuner::FrontendScanType;
31using ::aidl::android::hardware::tv::tuner::FrontendSettings;
32using ::aidl::android::hardware::tv::tuner::FrontendStatus;
33using ::aidl::android::hardware::tv::tuner::FrontendStatusType;
34using ::aidl::android::hardware::tv::tuner::IFrontend;
35using ::aidl::android::hardware::tv::tuner::IFrontendCallback;
Amy Zhang0f04c452020-10-30 13:36:44 -070036
Amy Zhanga046eee2021-01-12 14:44:58 -080037using namespace std;
38
Hongguangeae68392021-07-27 20:56:23 -070039namespace aidl {
Amy Zhang0f04c452020-10-30 13:36:44 -070040namespace android {
Hongguangeae68392021-07-27 20:56:23 -070041namespace media {
42namespace tv {
43namespace tuner {
Amy Zhang0f04c452020-10-30 13:36:44 -070044
45class TunerFrontend : public BnTunerFrontend {
46
47public:
Hongguangeae68392021-07-27 20:56:23 -070048 TunerFrontend(shared_ptr<IFrontend> frontend, int id);
Amy Zhang0f04c452020-10-30 13:36:44 -070049 virtual ~TunerFrontend();
Amy Zhang0f04c452020-10-30 13:36:44 -070050
Hongguangeae68392021-07-27 20:56:23 -070051 ::ndk::ScopedAStatus setCallback(
52 const shared_ptr<ITunerFrontendCallback>& in_tunerFrontendCallback) override;
53 ::ndk::ScopedAStatus tune(const FrontendSettings& in_settings) override;
54 ::ndk::ScopedAStatus stopTune() override;
55 ::ndk::ScopedAStatus scan(const FrontendSettings& in_settings,
56 FrontendScanType in_frontendScanType) override;
57 ::ndk::ScopedAStatus stopScan() override;
58 ::ndk::ScopedAStatus setLnb(const shared_ptr<ITunerLnb>& in_lnb) override;
59 ::ndk::ScopedAStatus setLna(bool in_bEnable) override;
60 ::ndk::ScopedAStatus linkCiCamToFrontend(int32_t in_ciCamId, int32_t* _aidl_return) override;
61 ::ndk::ScopedAStatus unlinkCiCamToFrontend(int32_t in_ciCamId) override;
62 ::ndk::ScopedAStatus close() override;
63 ::ndk::ScopedAStatus getStatus(const vector<FrontendStatusType>& in_statusTypes,
64 vector<FrontendStatus>* _aidl_return) override;
65 ::ndk::ScopedAStatus getFrontendId(int32_t* _aidl_return) override;
66
67 struct FrontendCallback : public BnFrontendCallback {
Amy Zhanga046eee2021-01-12 14:44:58 -080068 FrontendCallback(const shared_ptr<ITunerFrontendCallback> tunerFrontendCallback)
Hongguangeae68392021-07-27 20:56:23 -070069 : mTunerFrontendCallback(tunerFrontendCallback){};
Amy Zhang0f04c452020-10-30 13:36:44 -070070
Hongguangeae68392021-07-27 20:56:23 -070071 ::ndk::ScopedAStatus onEvent(FrontendEventType frontendEventType) override;
72 ::ndk::ScopedAStatus onScanMessage(FrontendScanMessageType type,
73 const FrontendScanMessage& message) override;
Amy Zhang0f04c452020-10-30 13:36:44 -070074
Amy Zhanga046eee2021-01-12 14:44:58 -080075 shared_ptr<ITunerFrontendCallback> mTunerFrontendCallback;
Amy Zhang0f04c452020-10-30 13:36:44 -070076 };
77
78private:
Amy Zhang0f04c452020-10-30 13:36:44 -070079 int mId;
Hongguangeae68392021-07-27 20:56:23 -070080 shared_ptr<IFrontend> mFrontend;
Amy Zhang0f04c452020-10-30 13:36:44 -070081};
82
Hongguangeae68392021-07-27 20:56:23 -070083} // namespace tuner
84} // namespace tv
85} // namespace media
86} // namespace android
87} // namespace aidl
Amy Zhang0f04c452020-10-30 13:36:44 -070088
89#endif // ANDROID_MEDIA_TUNERFRONTEND_H