diff options
| author | 2021-01-12 11:25:27 -0800 | |
|---|---|---|
| committer | 2021-01-12 12:57:04 -0800 | |
| commit | 210c26a974ded39ec65995384ecaa2a796996a05 (patch) | |
| tree | 50242b3c8352373048c4efc15279b617a5c0e3ff | |
| parent | b1e9252d657bcc70c824eef8af86747efd9c9fa2 (diff) | |
Remove Lnb updating related implementation from Tuner JNI/java
Note: This was part of ag/13255478. Making it a separate CL can break
the dependency of the Tuner client changes on the frameworks/base
changes that require owner review from external teams.
Test: make
Bug: 174095851
Change-Id: Id40014b2ccd95b944e465b79571e113d8ed1a254
| -rw-r--r-- | media/java/android/media/tv/tuner/Tuner.java | 10 | ||||
| -rw-r--r-- | media/jni/android_media_tv_Tuner.cpp | 28 | ||||
| -rw-r--r-- | media/jni/android_media_tv_Tuner.h | 2 | ||||
| -rw-r--r-- | media/jni/tuner/FrontendClient.cpp | 8 | ||||
| -rw-r--r-- | media/jni/tuner/FrontendClient.h | 8 | ||||
| -rw-r--r-- | media/jni/tuner/TunerClient.cpp | 19 | ||||
| -rw-r--r-- | media/jni/tuner/TunerClient.h | 26 |
7 files changed, 39 insertions, 62 deletions
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index 02b6571b0802..e449fd249e10 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -351,7 +351,6 @@ public class Tuner implements AutoCloseable { mUserId = ActivityManager.getCurrentUser(); setFrontendInfoList(); - setLnbIds(); } private void setFrontendInfoList() { @@ -405,14 +404,6 @@ public class Tuner implements AutoCloseable { return nativeGetFrontendIds(); } - private void setLnbIds() { - int[] ids = nativeGetLnbIds(); - if (ids == null) { - return; - } - mTunerResourceManager.setLnbInfoList(ids); - } - /** * Sets the listener for resource lost. * @@ -574,7 +565,6 @@ public class Tuner implements AutoCloseable { private native Filter nativeOpenFilter(int type, int subType, long bufferSize); private native TimeFilter nativeOpenTimeFilter(); - private native int[] nativeGetLnbIds(); private native Lnb nativeOpenLnbByHandle(int handle); private native Lnb nativeOpenLnbByName(String name); diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp index 602364e9e01a..f9a84f740035 100644 --- a/media/jni/android_media_tv_Tuner.cpp +++ b/media/jni/android_media_tv_Tuner.cpp @@ -1470,28 +1470,6 @@ jobject JTuner::getFrontendInfo(int id) { maxSymbolRate, acquireRange, exclusiveGroupId, statusCaps, jcaps); } -jintArray JTuner::getLnbIds() { - ALOGD("JTuner::getLnbIds()"); - Result res; - hidl_vec<LnbId> lnbIds; - mTuner->getLnbIds([&](Result r, const hidl_vec<LnbId>& ids) { - lnbIds = ids; - res = r; - }); - if (res != Result::SUCCESS || lnbIds.size() == 0) { - ALOGW("Lnb isn't available"); - return NULL; - } - - mLnbIds = lnbIds; - JNIEnv *env = AndroidRuntime::getJNIEnv(); - - jintArray ids = env->NewIntArray(mLnbIds.size()); - env->SetIntArrayRegion(ids, 0, mLnbIds.size(), reinterpret_cast<jint*>(&mLnbIds[0])); - - return ids; -} - jobject JTuner::openLnbById(int id) { sp<ILnb> iLnbSp; Result r; @@ -3430,11 +3408,6 @@ static jobject android_media_tv_Tuner_get_frontend_info(JNIEnv *env, jobject thi return tuner->getFrontendInfo(id); } -static jintArray android_media_tv_Tuner_get_lnb_ids(JNIEnv *env, jobject thiz) { - sp<JTuner> tuner = getTuner(env, thiz); - return tuner->getLnbIds(); -} - static jobject android_media_tv_Tuner_open_lnb_by_handle(JNIEnv *env, jobject thiz, jint handle) { sp<JTuner> tuner = getTuner(env, thiz); uint32_t id = getResourceIdFromHandle(handle); @@ -4480,7 +4453,6 @@ static const JNINativeMethod gTunerMethods[] = { (void *)android_media_tv_Tuner_open_filter }, { "nativeOpenTimeFilter", "()Landroid/media/tv/tuner/filter/TimeFilter;", (void *)android_media_tv_Tuner_open_time_filter }, - { "nativeGetLnbIds", "()[I", (void *)android_media_tv_Tuner_get_lnb_ids }, { "nativeOpenLnbByHandle", "(I)Landroid/media/tv/tuner/Lnb;", (void *)android_media_tv_Tuner_open_lnb_by_handle }, { "nativeOpenLnbByName", "(Ljava/lang/String;)Landroid/media/tv/tuner/Lnb;", diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h index 9dc4ddfa1b61..8fffb2a22a30 100644 --- a/media/jni/android_media_tv_Tuner.h +++ b/media/jni/android_media_tv_Tuner.h @@ -217,7 +217,6 @@ struct JTuner : public RefBase { int stopScan(); int setLnb(int id); int setLna(bool enable); - jintArray getLnbIds(); jobject openLnbById(int id); jobject openLnbByName(jstring name); jobject openFilter(DemuxFilterType type, int bufferSize); @@ -247,7 +246,6 @@ private: sp<::android::hardware::tv::tuner::V1_1::IFrontend> mFe_1_1; sp<FrontendClient> mFeClient; int mFeId; - hidl_vec<LnbId> mLnbIds; // TODO: remove after migrate to client lib sp<ILnb> mLnb; // TODO: remove after migrate to client lib diff --git a/media/jni/tuner/FrontendClient.cpp b/media/jni/tuner/FrontendClient.cpp index 44b46f0a0b47..b6225cf5033a 100644 --- a/media/jni/tuner/FrontendClient.cpp +++ b/media/jni/tuner/FrontendClient.cpp @@ -27,11 +27,11 @@ namespace android { /////////////// FrontendClient /////////////////////// -FrontendClient::FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int frontendHandle) { +FrontendClient::FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int id) { mTunerFrontend = tunerFrontend; mAidlCallback = NULL; mHidlCallback = NULL; - mFrontendHandle = frontendHandle; + mId = id; } FrontendClient::~FrontendClient() { @@ -40,7 +40,7 @@ FrontendClient::~FrontendClient() { mFrontend_1_1 = NULL; mAidlCallback = NULL; mHidlCallback = NULL; - mFrontendHandle = -1; + mId = -1; } Result FrontendClient::setCallback(sp<FrontendClientCallback> frontendClientCallback) { @@ -123,7 +123,7 @@ shared_ptr<ITunerFrontend> FrontendClient::getAidlFrontend() { } int FrontendClient::getId() { - return getResourceIdFromHandle(mFrontendHandle); + return mId; } /////////////// TunerFrontendCallback /////////////////////// diff --git a/media/jni/tuner/FrontendClient.h b/media/jni/tuner/FrontendClient.h index 7db572ba0987..265e14f5ddd0 100644 --- a/media/jni/tuner/FrontendClient.h +++ b/media/jni/tuner/FrontendClient.h @@ -105,7 +105,7 @@ private: struct FrontendClient : public RefBase { public: - FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int frontendHandle); + FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int id); ~FrontendClient(); /** @@ -135,10 +135,6 @@ public: int getId(); - static int getResourceIdFromHandle(int handle) { - return (handle & 0x00ff0000) >> 16; - } - private: /** * An AIDL Tuner Frontend Singleton assigned at the first time when the Tuner Client @@ -163,7 +159,7 @@ private: shared_ptr<TunerFrontendCallback> mAidlCallback; sp<HidlFrontendCallback> mHidlCallback; - int mFrontendHandle; + int mId; }; } // namespace android diff --git a/media/jni/tuner/TunerClient.cpp b/media/jni/tuner/TunerClient.cpp index bd18c707f18b..649828f50fd4 100644 --- a/media/jni/tuner/TunerClient.cpp +++ b/media/jni/tuner/TunerClient.cpp @@ -99,9 +99,10 @@ sp<FrontendClient> TunerClient::openFrontend(int frontendHandle) { } if (mTuner != NULL) { - sp<IFrontend> hidlFrontend = openHidlFrontendByHandle(frontendHandle); + int id = getResourceIdFromHandle(frontendHandle, FRONTEND); + sp<IFrontend> hidlFrontend = openHidlFrontendById(id); if (hidlFrontend != NULL) { - sp<FrontendClient> frontendClient = new FrontendClient(NULL, frontendHandle); + sp<FrontendClient> frontendClient = new FrontendClient(NULL, id); frontendClient->setHidlFrontend(hidlFrontend); return frontendClient; } @@ -193,10 +194,9 @@ sp<ITuner> TunerClient::getHidlTuner() { return mTuner; } -sp<IFrontend> TunerClient::openHidlFrontendByHandle(int frontendHandle) { +sp<IFrontend> TunerClient::openHidlFrontendById(int id) { sp<IFrontend> fe; Result res; - uint32_t id = getResourceIdFromHandle(frontendHandle); mTuner->openFrontendById(id, [&](Result r, const sp<IFrontend>& frontend) { fe = frontend; res = r; @@ -246,4 +246,15 @@ FrontendInfo TunerClient::FrontendInfoAidlToHidl(TunerServiceFrontendInfo aidlFr return hidlFrontendInfo; } + +int TunerClient::getResourceIdFromHandle(int handle, int /*resourceType*/) { + return (handle & 0x00ff0000) >> 16; +} + +int TunerClient::getResourceHandleFromId(int id, int resourceType) { + // TODO: build up randomly generated id to handle mapping + return (resourceType & 0x000000ff) << 24 + | (id << 16) + | (mResourceRequestCount++ & 0xffff); +} } // namespace android diff --git a/media/jni/tuner/TunerClient.h b/media/jni/tuner/TunerClient.h index 197b1100acd6..108293bfd601 100644 --- a/media/jni/tuner/TunerClient.h +++ b/media/jni/tuner/TunerClient.h @@ -37,6 +37,13 @@ using namespace std; namespace android { +typedef enum { + FRONTEND, + LNB, + DEMUX, + DESCRAMBLER, +} TunerResourceType; + struct TunerClient : public RefBase { public: @@ -95,9 +102,16 @@ public: */ int getHalTunerVersion() { return mTunerVersion; } - static int getResourceIdFromHandle(int handle) { - return (handle & 0x00ff0000) >> 16; - } +private: + sp<ITuner> getHidlTuner(); + sp<IFrontend> openHidlFrontendById(int id); + sp<IDemux> openHidlDemux(); + Result getHidlFrontendInfo(int id, FrontendInfo& info); + FrontendInfo FrontendInfoAidlToHidl(TunerServiceFrontendInfo aidlFrontendInfo); + + int getResourceIdFromHandle(int handle, int resourceType); + + int getResourceHandleFromId(int id, int resourceType); private: /** @@ -124,11 +138,7 @@ private: // while the low 16 bits are the minor version. Default value is unknown version 0. static int mTunerVersion; - sp<ITuner> getHidlTuner(); - sp<IFrontend> openHidlFrontendByHandle(int frontendHandle); - sp<IDemux> openHidlDemux(); - Result getHidlFrontendInfo(int id, FrontendInfo& info); - FrontendInfo FrontendInfoAidlToHidl(TunerServiceFrontendInfo aidlFrontendInfo); + int mResourceRequestCount = 0; }; } // namespace android |