Loading media/jni/android_media_tv_Tuner.cpp +161 −8 Original line number Diff line number Diff line Loading @@ -134,6 +134,14 @@ using ::android::hardware::tv::tuner::V1_0::PlaybackSettings; using ::android::hardware::tv::tuner::V1_0::RecordSettings; using ::android::hardware::tv::tuner::V1_1::Constant; using ::android::hardware::tv::tuner::V1_1::Constant64Bit; using ::android::hardware::tv::tuner::V1_1::FrontendAnalogAftFlag; using ::android::hardware::tv::tuner::V1_1::FrontendAnalogSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendCableTimeInterleaveMode; using ::android::hardware::tv::tuner::V1_1::FrontendDvbsScanType; using ::android::hardware::tv::tuner::V1_1::FrontendDvbcSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendDvbsSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendDvbtSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendSpectralInversion; struct fields_t { jfieldID tunerContext; Loading Loading @@ -1377,12 +1385,21 @@ jobject JTuner::openLnbByName(jstring name) { return lnbObj; } int JTuner::tune(const FrontendSettings& settings) { int JTuner::tune(const FrontendSettings& settings, const FrontendSettingsExt1_1& settingsExt1_1) { if (mFe == NULL) { ALOGE("frontend is not initialized"); return (int)Result::INVALID_STATE; } Result result = mFe->tune(settings); Result result; sp<::android::hardware::tv::tuner::V1_1::IFrontend> fe_1_1 = ::android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFe); if (fe_1_1 == NULL) { ALOGD("1.1 frontend is not found. Using 1.0 instead."); result = mFe->tune(settings); return (int)result; } result = fe_1_1->tune_1_1(settings, settingsExt1_1); return (int)result; } Loading @@ -1395,12 +1412,22 @@ int JTuner::stopTune() { return (int)result; } int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) { int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType, const FrontendSettingsExt1_1& settingsExt1_1) { if (mFe == NULL) { ALOGE("frontend is not initialized"); return (int)Result::INVALID_STATE; } Result result = mFe->scan(settings, scanType); Result result; sp<::android::hardware::tv::tuner::V1_1::IFrontend> fe_1_1 = ::android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFe); if (fe_1_1 == NULL) { ALOGD("1.1 frontend is not found. Using 1.0 instead."); result = mFe->scan(settings, scanType); return (int)result; } result = fe_1_1->scan_1_1(settings, scanType, settingsExt1_1); return (int)result; } Loading Loading @@ -2105,6 +2132,22 @@ static uint32_t getFrontendSettingsFreq(JNIEnv *env, const jobject& settings) { return freq; } static uint32_t getFrontendSettingsEndFreq(JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings"); jfieldID endFreqField = env->GetFieldID(clazz, "mEndFrequency", "I"); uint32_t endFreq = static_cast<uint32_t>(env->GetIntField(settings, endFreqField)); return endFreq; } static FrontendSpectralInversion getFrontendSettingsSpectralInversion( JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings"); jfieldID inversionField = env->GetFieldID(clazz, "mSpectralInversion", "I"); FrontendSpectralInversion inversion = static_cast<FrontendSpectralInversion>(env->GetIntField(settings, inversionField)); return inversion; } static FrontendSettings getAnalogFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading @@ -2124,6 +2167,18 @@ static FrontendSettings getAnalogFrontendSettings(JNIEnv *env, const jobject& se return frontendSettings; } static void getAnalogFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/AnalogFrontendSettings"); FrontendAnalogAftFlag aftFlag = static_cast<FrontendAnalogAftFlag>( env->GetIntField(settings, env->GetFieldID(clazz, "mAftFlag", "I"))); FrontendAnalogSettingsExt1_1 analogExt1_1 { .aftFlag = aftFlag, }; settingsExt1_1.settingExt.analog(analogExt1_1); } static hidl_vec<FrontendAtsc3PlpSettings> getAtsc3PlpSettings( JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/Atsc3FrontendSettings"); Loading Loading @@ -2243,6 +2298,19 @@ static FrontendSettings getDvbcFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbcFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbcFrontendSettings"); FrontendCableTimeInterleaveMode interleaveMode = static_cast<FrontendCableTimeInterleaveMode>( env->GetIntField(settings, env->GetFieldID(clazz, "mInterleaveMode", "I"))); FrontendDvbcSettingsExt1_1 dvbcExt1_1 { .interleaveMode = interleaveMode, }; settingsExt1_1.settingExt.dvbc(dvbcExt1_1); } static FrontendDvbsCodeRate getDvbsCodeRate(JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); jobject jcodeRate = Loading Loading @@ -2284,7 +2352,6 @@ static FrontendSettings getDvbsFrontendSettings(JNIEnv *env, const jobject& sett uint32_t freq = getFrontendSettingsFreq(env, settings); jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); FrontendDvbsModulation modulation = static_cast<FrontendDvbsModulation>( env->GetIntField(settings, env->GetFieldID(clazz, "mModulation", "I"))); Loading Loading @@ -2323,6 +2390,22 @@ static FrontendSettings getDvbsFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbsFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); FrontendDvbsScanType scanType = static_cast<FrontendDvbsScanType>( env->GetIntField(settings, env->GetFieldID(clazz, "mScanType", "I"))); bool isDiseqcRxMessage = static_cast<bool>(env->GetBooleanField( settings, env->GetFieldID(clazz, "mIsDiseqcRxMessage", "B"))); FrontendDvbsSettingsExt1_1 dvbsExt1_1 { .scanType = scanType, .isDiseqcRxMessage = isDiseqcRxMessage, }; settingsExt1_1.settingExt.dvbs(dvbsExt1_1); } static FrontendSettings getDvbtFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading Loading @@ -2389,6 +2472,25 @@ static FrontendSettings getDvbtFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbtFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbtFrontendSettings"); FrontendDvbtSettingsExt1_1 dvbtExt1_1; int transmissionMode = env->GetIntField(settings, env->GetFieldID(clazz, "mTransmissionMode", "I")); dvbtExt1_1.transmissionMode = static_cast< ::android::hardware::tv::tuner::V1_1::FrontendDvbtTransmissionMode>( transmissionMode); int constellation = env->GetIntField(settings, env->GetFieldID(clazz, "mConstellation", "I")); dvbtExt1_1.constellation = static_cast< ::android::hardware::tv::tuner::V1_1::FrontendDvbtConstellation>(constellation); settingsExt1_1.settingExt.dvbt(dvbtExt1_1); } static FrontendSettings getIsdbsFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading Loading @@ -2529,6 +2631,54 @@ static FrontendSettings getFrontendSettings(JNIEnv *env, int type, jobject setti } } static FrontendSettingsExt1_1 getFrontendSettingsExt1_1(JNIEnv *env, int type, jobject settings) { ALOGD("getFrontendSettingsExt1_1 %d", type); FrontendSettingsExt1_1 settingsExt1_1 { .endFrequency = static_cast<uint32_t>(Constant::INVALID_FRONTEND_SETTING_FREQUENCY), .inversion = FrontendSpectralInversion::UNDEFINED, }; settingsExt1_1.settingExt.noinit(); FrontendType feType = static_cast<FrontendType>(type); switch(feType) { case FrontendType::DVBS: getDvbsFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::DVBT: getDvbtFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ANALOG: getAnalogFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ATSC3: break; case FrontendType::ATSC: break; case FrontendType::DVBC: getDvbcFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ISDBS: break; case FrontendType::ISDBS3: break; case FrontendType::ISDBT: break; default: // should never happen because a type is associated with a subclass of // FrontendSettings and not set by users jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Unsupported frontend type %d", type); return FrontendSettingsExt1_1(); } uint32_t endFreq = getFrontendSettingsEndFreq(env, settings); FrontendSpectralInversion inversion = getFrontendSettingsSpectralInversion(env, settings); settingsExt1_1.endFrequency = endFreq; settingsExt1_1.inversion = inversion; return settingsExt1_1; } static sp<Filter> getFilter(JNIEnv *env, jobject filter) { return (Filter *)env->GetLongField(filter, gFields.filterContext); } Loading Loading @@ -2670,7 +2820,9 @@ static jint android_media_tv_Tuner_close_frontend_by_handle( static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, jobject settings) { sp<JTuner> tuner = getTuner(env, thiz); return tuner->tune(getFrontendSettings(env, type, settings)); FrontendSettings setting = getFrontendSettings(env, type, settings); FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, type, settings); return tuner->tune(setting, settingExt); } static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) { Loading @@ -2681,8 +2833,9 @@ static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) { static int android_media_tv_Tuner_scan( JNIEnv *env, jobject thiz, jint settingsType, jobject settings, jint scanType) { sp<JTuner> tuner = getTuner(env, thiz); return tuner->scan(getFrontendSettings( env, settingsType, settings), static_cast<FrontendScanType>(scanType)); FrontendSettings setting = getFrontendSettings(env, settingsType, settings); FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, settingsType, settings); return tuner->scan(setting, static_cast<FrontendScanType>(scanType), settingExt); } static int android_media_tv_Tuner_stop_scan(JNIEnv *env, jobject thiz) { Loading media/jni/android_media_tv_Tuner.h +4 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ using ::android::hardware::tv::tuner::V1_0::FrontendScanMessage; using ::android::hardware::tv::tuner::V1_0::FrontendScanMessageType; using ::android::hardware::tv::tuner::V1_0::FrontendScanType; using ::android::hardware::tv::tuner::V1_0::FrontendSettings; using ::android::hardware::tv::tuner::V1_1::FrontendSettingsExt1_1; using ::android::hardware::tv::tuner::V1_0::IDemux; using ::android::hardware::tv::tuner::V1_0::IDescrambler; using ::android::hardware::tv::tuner::V1_0::IDvr; Loading Loading @@ -217,9 +218,10 @@ struct JTuner : public RefBase { jobject openFrontendById(int id); jint closeFrontendById(int id); jobject getFrontendInfo(int id); int tune(const FrontendSettings& settings); int tune(const FrontendSettings& settings, const FrontendSettingsExt1_1& settingsExt1_1); int stopTune(); int scan(const FrontendSettings& settings, FrontendScanType scanType); int scan(const FrontendSettings& settings, FrontendScanType scanType, const FrontendSettingsExt1_1& settingsExt1_1); int stopScan(); int setLnb(int id); int setLna(bool enable); Loading Loading
media/jni/android_media_tv_Tuner.cpp +161 −8 Original line number Diff line number Diff line Loading @@ -134,6 +134,14 @@ using ::android::hardware::tv::tuner::V1_0::PlaybackSettings; using ::android::hardware::tv::tuner::V1_0::RecordSettings; using ::android::hardware::tv::tuner::V1_1::Constant; using ::android::hardware::tv::tuner::V1_1::Constant64Bit; using ::android::hardware::tv::tuner::V1_1::FrontendAnalogAftFlag; using ::android::hardware::tv::tuner::V1_1::FrontendAnalogSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendCableTimeInterleaveMode; using ::android::hardware::tv::tuner::V1_1::FrontendDvbsScanType; using ::android::hardware::tv::tuner::V1_1::FrontendDvbcSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendDvbsSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendDvbtSettingsExt1_1; using ::android::hardware::tv::tuner::V1_1::FrontendSpectralInversion; struct fields_t { jfieldID tunerContext; Loading Loading @@ -1377,12 +1385,21 @@ jobject JTuner::openLnbByName(jstring name) { return lnbObj; } int JTuner::tune(const FrontendSettings& settings) { int JTuner::tune(const FrontendSettings& settings, const FrontendSettingsExt1_1& settingsExt1_1) { if (mFe == NULL) { ALOGE("frontend is not initialized"); return (int)Result::INVALID_STATE; } Result result = mFe->tune(settings); Result result; sp<::android::hardware::tv::tuner::V1_1::IFrontend> fe_1_1 = ::android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFe); if (fe_1_1 == NULL) { ALOGD("1.1 frontend is not found. Using 1.0 instead."); result = mFe->tune(settings); return (int)result; } result = fe_1_1->tune_1_1(settings, settingsExt1_1); return (int)result; } Loading @@ -1395,12 +1412,22 @@ int JTuner::stopTune() { return (int)result; } int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) { int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType, const FrontendSettingsExt1_1& settingsExt1_1) { if (mFe == NULL) { ALOGE("frontend is not initialized"); return (int)Result::INVALID_STATE; } Result result = mFe->scan(settings, scanType); Result result; sp<::android::hardware::tv::tuner::V1_1::IFrontend> fe_1_1 = ::android::hardware::tv::tuner::V1_1::IFrontend::castFrom(mFe); if (fe_1_1 == NULL) { ALOGD("1.1 frontend is not found. Using 1.0 instead."); result = mFe->scan(settings, scanType); return (int)result; } result = fe_1_1->scan_1_1(settings, scanType, settingsExt1_1); return (int)result; } Loading Loading @@ -2105,6 +2132,22 @@ static uint32_t getFrontendSettingsFreq(JNIEnv *env, const jobject& settings) { return freq; } static uint32_t getFrontendSettingsEndFreq(JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings"); jfieldID endFreqField = env->GetFieldID(clazz, "mEndFrequency", "I"); uint32_t endFreq = static_cast<uint32_t>(env->GetIntField(settings, endFreqField)); return endFreq; } static FrontendSpectralInversion getFrontendSettingsSpectralInversion( JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings"); jfieldID inversionField = env->GetFieldID(clazz, "mSpectralInversion", "I"); FrontendSpectralInversion inversion = static_cast<FrontendSpectralInversion>(env->GetIntField(settings, inversionField)); return inversion; } static FrontendSettings getAnalogFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading @@ -2124,6 +2167,18 @@ static FrontendSettings getAnalogFrontendSettings(JNIEnv *env, const jobject& se return frontendSettings; } static void getAnalogFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/AnalogFrontendSettings"); FrontendAnalogAftFlag aftFlag = static_cast<FrontendAnalogAftFlag>( env->GetIntField(settings, env->GetFieldID(clazz, "mAftFlag", "I"))); FrontendAnalogSettingsExt1_1 analogExt1_1 { .aftFlag = aftFlag, }; settingsExt1_1.settingExt.analog(analogExt1_1); } static hidl_vec<FrontendAtsc3PlpSettings> getAtsc3PlpSettings( JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/Atsc3FrontendSettings"); Loading Loading @@ -2243,6 +2298,19 @@ static FrontendSettings getDvbcFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbcFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbcFrontendSettings"); FrontendCableTimeInterleaveMode interleaveMode = static_cast<FrontendCableTimeInterleaveMode>( env->GetIntField(settings, env->GetFieldID(clazz, "mInterleaveMode", "I"))); FrontendDvbcSettingsExt1_1 dvbcExt1_1 { .interleaveMode = interleaveMode, }; settingsExt1_1.settingExt.dvbc(dvbcExt1_1); } static FrontendDvbsCodeRate getDvbsCodeRate(JNIEnv *env, const jobject& settings) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); jobject jcodeRate = Loading Loading @@ -2284,7 +2352,6 @@ static FrontendSettings getDvbsFrontendSettings(JNIEnv *env, const jobject& sett uint32_t freq = getFrontendSettingsFreq(env, settings); jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); FrontendDvbsModulation modulation = static_cast<FrontendDvbsModulation>( env->GetIntField(settings, env->GetFieldID(clazz, "mModulation", "I"))); Loading Loading @@ -2323,6 +2390,22 @@ static FrontendSettings getDvbsFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbsFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendSettings"); FrontendDvbsScanType scanType = static_cast<FrontendDvbsScanType>( env->GetIntField(settings, env->GetFieldID(clazz, "mScanType", "I"))); bool isDiseqcRxMessage = static_cast<bool>(env->GetBooleanField( settings, env->GetFieldID(clazz, "mIsDiseqcRxMessage", "B"))); FrontendDvbsSettingsExt1_1 dvbsExt1_1 { .scanType = scanType, .isDiseqcRxMessage = isDiseqcRxMessage, }; settingsExt1_1.settingExt.dvbs(dvbsExt1_1); } static FrontendSettings getDvbtFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading Loading @@ -2389,6 +2472,25 @@ static FrontendSettings getDvbtFrontendSettings(JNIEnv *env, const jobject& sett return frontendSettings; } static void getDvbtFrontendSettingsExt1_1(JNIEnv *env, const jobject& settings, FrontendSettingsExt1_1& settingsExt1_1) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbtFrontendSettings"); FrontendDvbtSettingsExt1_1 dvbtExt1_1; int transmissionMode = env->GetIntField(settings, env->GetFieldID(clazz, "mTransmissionMode", "I")); dvbtExt1_1.transmissionMode = static_cast< ::android::hardware::tv::tuner::V1_1::FrontendDvbtTransmissionMode>( transmissionMode); int constellation = env->GetIntField(settings, env->GetFieldID(clazz, "mConstellation", "I")); dvbtExt1_1.constellation = static_cast< ::android::hardware::tv::tuner::V1_1::FrontendDvbtConstellation>(constellation); settingsExt1_1.settingExt.dvbt(dvbtExt1_1); } static FrontendSettings getIsdbsFrontendSettings(JNIEnv *env, const jobject& settings) { FrontendSettings frontendSettings; uint32_t freq = getFrontendSettingsFreq(env, settings); Loading Loading @@ -2529,6 +2631,54 @@ static FrontendSettings getFrontendSettings(JNIEnv *env, int type, jobject setti } } static FrontendSettingsExt1_1 getFrontendSettingsExt1_1(JNIEnv *env, int type, jobject settings) { ALOGD("getFrontendSettingsExt1_1 %d", type); FrontendSettingsExt1_1 settingsExt1_1 { .endFrequency = static_cast<uint32_t>(Constant::INVALID_FRONTEND_SETTING_FREQUENCY), .inversion = FrontendSpectralInversion::UNDEFINED, }; settingsExt1_1.settingExt.noinit(); FrontendType feType = static_cast<FrontendType>(type); switch(feType) { case FrontendType::DVBS: getDvbsFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::DVBT: getDvbtFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ANALOG: getAnalogFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ATSC3: break; case FrontendType::ATSC: break; case FrontendType::DVBC: getDvbcFrontendSettingsExt1_1(env, settings, settingsExt1_1); break; case FrontendType::ISDBS: break; case FrontendType::ISDBS3: break; case FrontendType::ISDBT: break; default: // should never happen because a type is associated with a subclass of // FrontendSettings and not set by users jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Unsupported frontend type %d", type); return FrontendSettingsExt1_1(); } uint32_t endFreq = getFrontendSettingsEndFreq(env, settings); FrontendSpectralInversion inversion = getFrontendSettingsSpectralInversion(env, settings); settingsExt1_1.endFrequency = endFreq; settingsExt1_1.inversion = inversion; return settingsExt1_1; } static sp<Filter> getFilter(JNIEnv *env, jobject filter) { return (Filter *)env->GetLongField(filter, gFields.filterContext); } Loading Loading @@ -2670,7 +2820,9 @@ static jint android_media_tv_Tuner_close_frontend_by_handle( static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, jobject settings) { sp<JTuner> tuner = getTuner(env, thiz); return tuner->tune(getFrontendSettings(env, type, settings)); FrontendSettings setting = getFrontendSettings(env, type, settings); FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, type, settings); return tuner->tune(setting, settingExt); } static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) { Loading @@ -2681,8 +2833,9 @@ static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) { static int android_media_tv_Tuner_scan( JNIEnv *env, jobject thiz, jint settingsType, jobject settings, jint scanType) { sp<JTuner> tuner = getTuner(env, thiz); return tuner->scan(getFrontendSettings( env, settingsType, settings), static_cast<FrontendScanType>(scanType)); FrontendSettings setting = getFrontendSettings(env, settingsType, settings); FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, settingsType, settings); return tuner->scan(setting, static_cast<FrontendScanType>(scanType), settingExt); } static int android_media_tv_Tuner_stop_scan(JNIEnv *env, jobject thiz) { Loading
media/jni/android_media_tv_Tuner.h +4 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ using ::android::hardware::tv::tuner::V1_0::FrontendScanMessage; using ::android::hardware::tv::tuner::V1_0::FrontendScanMessageType; using ::android::hardware::tv::tuner::V1_0::FrontendScanType; using ::android::hardware::tv::tuner::V1_0::FrontendSettings; using ::android::hardware::tv::tuner::V1_1::FrontendSettingsExt1_1; using ::android::hardware::tv::tuner::V1_0::IDemux; using ::android::hardware::tv::tuner::V1_0::IDescrambler; using ::android::hardware::tv::tuner::V1_0::IDvr; Loading Loading @@ -217,9 +218,10 @@ struct JTuner : public RefBase { jobject openFrontendById(int id); jint closeFrontendById(int id); jobject getFrontendInfo(int id); int tune(const FrontendSettings& settings); int tune(const FrontendSettings& settings, const FrontendSettingsExt1_1& settingsExt1_1); int stopTune(); int scan(const FrontendSettings& settings, FrontendScanType scanType); int scan(const FrontendSettings& settings, FrontendScanType scanType, const FrontendSettingsExt1_1& settingsExt1_1); int stopScan(); int setLnb(int id); int setLna(bool enable); Loading