diff options
| author | 2020-01-28 14:53:05 -0800 | |
|---|---|---|
| committer | 2020-02-03 11:07:58 -0800 | |
| commit | e32fb417ea8e8c21337fc231b5ec094c20c83c30 (patch) | |
| tree | f0a7b53f62abd2bf9d65074e2ebbcecb98c14571 | |
| parent | d1ab76705a30663a81101bcf8361770c94f8330f (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.cpp | 56 | ||||
| -rw-r--r-- | media/jni/android_media_tv_Tuner.h | 4 |
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); |