Implement JNI frontend methods
stopTune, stopeScan, setLna, setLnb
Test: make; acloud create;
Change-Id: I2fc9ddddcf7b84ccc46a2a3a61f3edb1932667d6
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 1fbe7f4..81a85c9 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -377,6 +377,15 @@
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 @@
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 @@
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 @@
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 5c012bb..978d9c6 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -133,7 +133,11 @@
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);