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
diff --git a/media/jni/tuner/FrontendClient.cpp b/media/jni/tuner/FrontendClient.cpp
index 44b46f0..b6225cf 100644
--- a/media/jni/tuner/FrontendClient.cpp
+++ b/media/jni/tuner/FrontendClient.cpp
@@ -27,11 +27,11 @@
/////////////// 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 @@
mFrontend_1_1 = NULL;
mAidlCallback = NULL;
mHidlCallback = NULL;
- mFrontendHandle = -1;
+ mId = -1;
}
Result FrontendClient::setCallback(sp<FrontendClientCallback> frontendClientCallback) {
@@ -123,7 +123,7 @@
}
int FrontendClient::getId() {
- return getResourceIdFromHandle(mFrontendHandle);
+ return mId;
}
/////////////// TunerFrontendCallback ///////////////////////
diff --git a/media/jni/tuner/FrontendClient.h b/media/jni/tuner/FrontendClient.h
index 7db572b..265e14f 100644
--- a/media/jni/tuner/FrontendClient.h
+++ b/media/jni/tuner/FrontendClient.h
@@ -105,7 +105,7 @@
struct FrontendClient : public RefBase {
public:
- FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int frontendHandle);
+ FrontendClient(shared_ptr<ITunerFrontend> tunerFrontend, int id);
~FrontendClient();
/**
@@ -135,10 +135,6 @@
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 @@
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 bd18c707..649828f 100644
--- a/media/jni/tuner/TunerClient.cpp
+++ b/media/jni/tuner/TunerClient.cpp
@@ -99,9 +99,10 @@
}
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 @@
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 @@
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 197b110..108293b 100644
--- a/media/jni/tuner/TunerClient.h
+++ b/media/jni/tuner/TunerClient.h
@@ -37,6 +37,13 @@
namespace android {
+typedef enum {
+ FRONTEND,
+ LNB,
+ DEMUX,
+ DESCRAMBLER,
+} TunerResourceType;
+
struct TunerClient : public RefBase {
public:
@@ -95,9 +102,16 @@
*/
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 @@
// 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