summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/tv/tuner/Tuner.java43
-rw-r--r--media/jni/android_media_tv_Tuner.cpp15
2 files changed, 58 insertions, 0 deletions
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index 4947700f6952..171f232de496 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -106,6 +106,9 @@ public final class Tuner implements AutoCloseable {
*/
private native Frontend nativeOpenFrontendById(int id);
private native int nativeTune(int type, FrontendSettings settings);
+ private native int nativeStopTune();
+ private native int nativeSetLnb(int lnbId);
+ private native int nativeSetLna(boolean enable);
private native Filter nativeOpenFilter(int type, int subType, int bufferSize);
@@ -256,6 +259,46 @@ public final class Tuner implements AutoCloseable {
return nativeTune(settings.getType(), settings);
}
+ /**
+ * Stops a previous tuning.
+ *
+ * If the method completes successfully the frontend is no longer tuned and no data
+ * will be sent to attached filters.
+ *
+ * @return result status of the operation.
+ * @hide
+ */
+ public int stopTune() {
+ return nativeStopTune();
+ }
+
+ /**
+ * Sets Low-Noise Block downconverter (LNB) for satellite frontend.
+ *
+ * This assigns a hardware LNB resource to the satellite tuner. It can be
+ * called multiple times to update LNB assignment.
+ *
+ * @param lnb the LNB instance.
+ *
+ * @return result status of the operation.
+ * @hide
+ */
+ public int setLnb(@NonNull Lnb lnb) {
+ return nativeSetLnb(lnb.mId);
+ }
+
+ /**
+ * Enable or Disable Low Noise Amplifier (LNA).
+ *
+ * @param enable true to activate LNA module; false to deactivate LNA
+ *
+ * @return result status of the operation.
+ * @hide
+ */
+ public int setLna(boolean enable) {
+ return nativeSetLna(enable);
+ }
+
private List<Integer> getFrontendIds() {
mFrontendIds = nativeGetFrontendIds();
return mFrontendIds;
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 9304450dc271..4a2baed72bd9 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -600,6 +600,18 @@ 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_set_lnb(JNIEnv, jobject, jint) {
+ return 0;
+}
+
+static int android_media_tv_Tuner_set_lna(JNIEnv, jobject, jint, jboolean) {
+ return 0;
+}
+
static jobject android_media_tv_Tuner_get_lnb_ids(JNIEnv *env, jobject thiz) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->getLnbIds();
@@ -850,6 +862,9 @@ static const JNINativeMethod gTunerMethods[] = {
(void *)android_media_tv_Tuner_open_frontend_by_id },
{ "nativeTune", "(ILandroid/media/tv/tuner/FrontendSettings;)I",
(void *)android_media_tv_Tuner_tune },
+ { "nativeStopTune", "()I", (void *)android_media_tv_Tuner_stop_tune },
+ { "nativeSetLnb", "(I)I", (void *)android_media_tv_Tuner_set_lnb },
+ { "nativeSetLna", "(Z)I", (void *)android_media_tv_Tuner_set_lna },
{ "nativeOpenFilter", "(III)Landroid/media/tv/tuner/Tuner$Filter;",
(void *)android_media_tv_Tuner_open_filter },
{ "nativeGetLnbIds", "()Ljava/util/List;",