summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shubang <shubang@google.com> 2020-01-28 14:53:05 -0800
committer shubang <shubang@google.com> 2020-02-03 11:07:58 -0800
commite32fb417ea8e8c21337fc231b5ec094c20c83c30 (patch)
treef0a7b53f62abd2bf9d65074e2ebbcecb98c14571
parentd1ab76705a30663a81101bcf8361770c94f8330f (diff)
Implement JNI frontend methods
stopTune, stopeScan, setLna, setLnb Test: make; acloud create; Change-Id: I2fc9ddddcf7b84ccc46a2a3a61f3edb1932667d6
-rw-r--r--media/jni/android_media_tv_Tuner.cpp56
-rw-r--r--media/jni/android_media_tv_Tuner.h4
2 files changed, 52 insertions, 8 deletions
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 1fbe7f42fff3..81a85c9f08d6 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -377,6 +377,15 @@ int JTuner::tune(const FrontendSettings& settings) {
return (int)result;
}
+int JTuner::stopTune() {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->stopTune();
+ return (int)result;
+}
+
int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) {
if (mFe == NULL) {
ALOGE("frontend is not initialized");
@@ -386,6 +395,33 @@ int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) {
return (int)result;
}
+int JTuner::stopScan() {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->stopScan();
+ return (int)result;
+}
+
+int JTuner::setLnb(int id) {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->setLnb(id);
+ return (int)result;
+}
+
+int JTuner::setLna(bool enable) {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->setLna(enable);
+ return (int)result;
+}
+
bool JTuner::openDemux() {
if (mTuner == nullptr) {
return false;
@@ -1079,8 +1115,9 @@ static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, job
return tuner->tune(getFrontendSettings(env, type, settings));
}
-static int android_media_tv_Tuner_stop_tune(JNIEnv*, jobject) {
- return 0;
+static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->stopTune();
}
static int android_media_tv_Tuner_scan(
@@ -1090,16 +1127,19 @@ static int android_media_tv_Tuner_scan(
env, settingsType, settings), static_cast<FrontendScanType>(scanType));
}
-static int android_media_tv_Tuner_stop_scan(JNIEnv*, jobject) {
- return 0;
+static int android_media_tv_Tuner_stop_scan(JNIEnv *env, jobject thiz) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->stopScan();
}
-static int android_media_tv_Tuner_set_lnb(JNIEnv*, jobject, jint) {
- return 0;
+static int android_media_tv_Tuner_set_lnb(JNIEnv *env, jobject thiz, jint id) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->setLnb(id);
}
-static int android_media_tv_Tuner_set_lna(JNIEnv*, jobject, jint, jboolean) {
- return 0;
+static int android_media_tv_Tuner_set_lna(JNIEnv *env, jobject thiz, jboolean enable) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->setLna(enable);
}
static jobject android_media_tv_Tuner_get_frontend_status(JNIEnv, jobject, jintArray) {
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 5c012bbebb9d..978d9c6e1059 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -133,7 +133,11 @@ struct JTuner : public RefBase {
jobject getFrontendIds();
jobject openFrontendById(int id);
int tune(const FrontendSettings& settings);
+ int stopTune();
int scan(const FrontendSettings& settings, FrontendScanType scanType);
+ int stopScan();
+ int setLnb(int id);
+ int setLna(bool enable);
jobject getLnbIds();
jobject openLnbById(int id);
jobject openFilter(DemuxFilterType type, int bufferSize);