summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amy Zhang <amyjojo@google.com> 2021-01-12 11:25:27 -0800
committer Amy Zhang <amyjojo@google.com> 2021-01-12 12:57:04 -0800
commit210c26a974ded39ec65995384ecaa2a796996a05 (patch)
tree50242b3c8352373048c4efc15279b617a5c0e3ff
parentb1e9252d657bcc70c824eef8af86747efd9c9fa2 (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.java10
-rw-r--r--media/jni/android_media_tv_Tuner.cpp28
-rw-r--r--media/jni/android_media_tv_Tuner.h2
-rw-r--r--media/jni/tuner/FrontendClient.cpp8
-rw-r--r--media/jni/tuner/FrontendClient.h8
-rw-r--r--media/jni/tuner/TunerClient.cpp19
-rw-r--r--media/jni/tuner/TunerClient.h26
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