Refactor Tuner JNI and move the interaction with IDescrambler into DescramblerClient
Test: atest android.media.tv.tuner.cts on Cuttlefish
Bug: 174095851
Change-Id: Ie6c465324bbec71b080f9fdead003f3c56d79010
diff --git a/media/jni/tuner/DescramblerClient.cpp b/media/jni/tuner/DescramblerClient.cpp
index f0ea418b..979beea 100644
--- a/media/jni/tuner/DescramblerClient.cpp
+++ b/media/jni/tuner/DescramblerClient.cpp
@@ -42,25 +42,56 @@
mDescrambler = descrambler;
}
-Result DescramblerClient::setDemuxSource(sp<DemuxClient> /*demuxClient*/) {
- return Result::SUCCESS;
+Result DescramblerClient::setDemuxSource(sp<DemuxClient> demuxClient) {
+ if (demuxClient == NULL) {
+ return Result::INVALID_ARGUMENT;
+ }
+
+ // TODO: pending aidl interface
+
+ if (mDescrambler != NULL) {
+ return mDescrambler->setDemuxSource(demuxClient->getId());
+ }
+
+ return Result::INVALID_STATE;
}
-Result DescramblerClient::setKeyToken(vector<uint8_t> /*keyToken*/) {
- return Result::SUCCESS;
+Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) {
+ // TODO: pending aidl interface
+
+ if (mDescrambler != NULL) {
+ return mDescrambler->setKeyToken(keyToken);
+ }
+
+ return Result::INVALID_STATE;
}
-Result DescramblerClient::addPid(DemuxPid /*pid*/, sp<FilterClient> /*optionalSourceFilter*/) {
- return Result::SUCCESS;
-}
+Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) {
+ // TODO: pending aidl interface
-Result DescramblerClient::removePid(DemuxPid /*pid*/, sp<FilterClient> /*optionalSourceFilter*/) {
- return Result::SUCCESS;
-}
+ if (mDescrambler != NULL) {
+ return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter());
+ }
+
+ return Result::INVALID_STATE;}
+
+Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) {
+ // TODO: pending aidl interface
+
+ if (mDescrambler != NULL) {
+ return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter());
+ }
+
+ return Result::INVALID_STATE;}
Result DescramblerClient::close() {
- return Result::SUCCESS;
-}
+ // TODO: pending aidl interface
+
+ if (mDescrambler != NULL) {
+ return mDescrambler->close();
+ }
+
+ return Result::INVALID_STATE;}
/////////////// DescramblerClient Helper Methods ///////////////////////