Merge "Add new Frontend Status Types into Tuner Framework"
This commit is contained in:
@@ -6173,6 +6173,7 @@ package android.media.tv.tuner.frontend {
|
||||
method public int getPer();
|
||||
method public int getPerBer();
|
||||
method public int getPlpId();
|
||||
method public int getRollOff();
|
||||
method public int getSignalQuality();
|
||||
method public int getSignalStrength();
|
||||
method public int getSnr();
|
||||
@@ -6184,8 +6185,11 @@ package android.media.tv.tuner.frontend {
|
||||
method public int getUec();
|
||||
method public boolean isDemodLocked();
|
||||
method public boolean isEwbs();
|
||||
method public boolean isLinear();
|
||||
method public boolean isLnaOn();
|
||||
method public boolean isMisoEnabled();
|
||||
method public boolean isRfLocked();
|
||||
method public boolean isShortFramesEnabled();
|
||||
field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
|
||||
field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
|
||||
field public static final int FRONTEND_STATUS_TYPE_BANDWIDTH = 25; // 0x19
|
||||
@@ -6200,6 +6204,9 @@ package android.media.tv.tuner.frontend {
|
||||
field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
|
||||
field public static final int FRONTEND_STATUS_TYPE_INTERLEAVINGS = 30; // 0x1e
|
||||
field public static final int FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS = 31; // 0x1f
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_LINEAR = 35; // 0x23
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_MISO = 34; // 0x22
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES = 36; // 0x24
|
||||
field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
|
||||
field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
|
||||
field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
|
||||
@@ -6210,6 +6217,7 @@ package android.media.tv.tuner.frontend {
|
||||
field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
|
||||
field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
|
||||
field public static final int FRONTEND_STATUS_TYPE_RF_LOCK = 20; // 0x14
|
||||
field public static final int FRONTEND_STATUS_TYPE_ROLL_OFF = 33; // 0x21
|
||||
field public static final int FRONTEND_STATUS_TYPE_SIGNAL_QUALITY = 5; // 0x5
|
||||
field public static final int FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH = 6; // 0x6
|
||||
field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
|
||||
|
||||
@@ -6113,6 +6113,7 @@ package android.media.tv.tuner.frontend {
|
||||
method public int getPer();
|
||||
method public int getPerBer();
|
||||
method public int getPlpId();
|
||||
method public int getRollOff();
|
||||
method public int getSignalQuality();
|
||||
method public int getSignalStrength();
|
||||
method public int getSnr();
|
||||
@@ -6124,8 +6125,11 @@ package android.media.tv.tuner.frontend {
|
||||
method public int getUec();
|
||||
method public boolean isDemodLocked();
|
||||
method public boolean isEwbs();
|
||||
method public boolean isLinear();
|
||||
method public boolean isLnaOn();
|
||||
method public boolean isMisoEnabled();
|
||||
method public boolean isRfLocked();
|
||||
method public boolean isShortFramesEnabled();
|
||||
field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
|
||||
field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
|
||||
field public static final int FRONTEND_STATUS_TYPE_BANDWIDTH = 25; // 0x19
|
||||
@@ -6140,6 +6144,9 @@ package android.media.tv.tuner.frontend {
|
||||
field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
|
||||
field public static final int FRONTEND_STATUS_TYPE_INTERLEAVINGS = 30; // 0x1e
|
||||
field public static final int FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS = 31; // 0x1f
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_LINEAR = 35; // 0x23
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_MISO = 34; // 0x22
|
||||
field public static final int FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES = 36; // 0x24
|
||||
field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
|
||||
field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
|
||||
field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
|
||||
@@ -6150,6 +6157,7 @@ package android.media.tv.tuner.frontend {
|
||||
field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
|
||||
field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
|
||||
field public static final int FRONTEND_STATUS_TYPE_RF_LOCK = 20; // 0x14
|
||||
field public static final int FRONTEND_STATUS_TYPE_ROLL_OFF = 33; // 0x21
|
||||
field public static final int FRONTEND_STATUS_TYPE_SIGNAL_QUALITY = 5; // 0x5
|
||||
field public static final int FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH = 6; // 0x6
|
||||
field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
|
||||
|
||||
@@ -51,7 +51,9 @@ public class FrontendStatus {
|
||||
FRONTEND_STATUS_TYPE_TRANSMISSION_MODE, FRONTEND_STATUS_TYPE_UEC,
|
||||
FRONTEND_STATUS_TYPE_T2_SYSTEM_ID, FRONTEND_STATUS_TYPE_INTERLEAVINGS,
|
||||
FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS, FRONTEND_STATUS_TYPE_TS_DATA_RATES,
|
||||
FRONTEND_STATUS_TYPE_MODULATIONS_EXT})
|
||||
FRONTEND_STATUS_TYPE_MODULATIONS_EXT, FRONTEND_STATUS_TYPE_ROLL_OFF,
|
||||
FRONTEND_STATUS_TYPE_IS_MISO, FRONTEND_STATUS_TYPE_IS_LINEAR,
|
||||
FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface FrontendStatusType {}
|
||||
|
||||
@@ -208,6 +210,26 @@ public class FrontendStatus {
|
||||
*/
|
||||
public static final int FRONTEND_STATUS_TYPE_MODULATIONS_EXT =
|
||||
android.hardware.tv.tuner.V1_1.Constants.FrontendStatusTypeExt1_1.MODULATIONS;
|
||||
/**
|
||||
* Roll Off Type status of the frontend. Only supported in Tuner HAL 1.1 or higher.
|
||||
*/
|
||||
public static final int FRONTEND_STATUS_TYPE_ROLL_OFF =
|
||||
android.hardware.tv.tuner.V1_1.Constants.FrontendStatusTypeExt1_1.ROLL_OFF;
|
||||
/**
|
||||
* If the frontend currently supports MISO or not. Only supported in Tuner HAL 1.1 or higher.
|
||||
*/
|
||||
public static final int FRONTEND_STATUS_TYPE_IS_MISO =
|
||||
android.hardware.tv.tuner.V1_1.Constants.FrontendStatusTypeExt1_1.IS_MISO;
|
||||
/**
|
||||
* If the frontend code rate is linear or not. Only supported in Tuner HAL 1.1 or higher.
|
||||
*/
|
||||
public static final int FRONTEND_STATUS_TYPE_IS_LINEAR =
|
||||
android.hardware.tv.tuner.V1_1.Constants.FrontendStatusTypeExt1_1.IS_LINEAR;
|
||||
/**
|
||||
* If short frames is enabled or not. Only supported in Tuner HAL 1.1 or higher.
|
||||
*/
|
||||
public static final int FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES =
|
||||
android.hardware.tv.tuner.V1_1.Constants.FrontendStatusTypeExt1_1.IS_SHORT_FRAMES;
|
||||
|
||||
/** @hide */
|
||||
@IntDef(value = {
|
||||
@@ -379,6 +401,22 @@ public class FrontendStatus {
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface FrontendGuardInterval {}
|
||||
|
||||
/** @hide */
|
||||
@IntDef(value = {
|
||||
DvbsFrontendSettings.ROLLOFF_UNDEFINED,
|
||||
DvbsFrontendSettings.ROLLOFF_0_35,
|
||||
DvbsFrontendSettings.ROLLOFF_0_25,
|
||||
DvbsFrontendSettings.ROLLOFF_0_20,
|
||||
DvbsFrontendSettings.ROLLOFF_0_15,
|
||||
DvbsFrontendSettings.ROLLOFF_0_10,
|
||||
DvbsFrontendSettings.ROLLOFF_0_5,
|
||||
Isdbs3FrontendSettings.ROLLOFF_UNDEFINED,
|
||||
Isdbs3FrontendSettings.ROLLOFF_0_03,
|
||||
IsdbsFrontendSettings.ROLLOFF_UNDEFINED,
|
||||
IsdbsFrontendSettings.ROLLOFF_0_35})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface FrontendRollOff {}
|
||||
|
||||
private Boolean mIsDemodLocked;
|
||||
private Integer mSnr;
|
||||
private Integer mBer;
|
||||
@@ -412,6 +450,10 @@ public class FrontendStatus {
|
||||
private int[] mTsDataRate;
|
||||
private int[] mIsdbtSegment;
|
||||
private int[] mModulationsExt;
|
||||
private Integer mRollOff;
|
||||
private Boolean mIsMisoEnabled;
|
||||
private Boolean mIsLinear;
|
||||
private Boolean mIsShortFrames;
|
||||
|
||||
|
||||
// Constructed and fields set by JNI code.
|
||||
@@ -816,6 +858,67 @@ public class FrontendStatus {
|
||||
return mModulationsExt;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets roll off status.
|
||||
*
|
||||
* <p>This status query is only supported by Tuner HAL 1.1 or higher. Use
|
||||
* {@link TunerVersionChecker.getTunerVersion()} to check the version.
|
||||
*/
|
||||
@FrontendRollOff
|
||||
public int getRollOff() {
|
||||
TunerVersionChecker.checkHigherOrEqualVersionTo(
|
||||
TunerVersionChecker.TUNER_VERSION_1_1, "getRollOff status");
|
||||
if (mRollOff == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return mRollOff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets is MISO enabled status.
|
||||
*
|
||||
* <p>This status query is only supported by Tuner HAL 1.1 or higher. Use
|
||||
* {@link TunerVersionChecker.getTunerVersion()} to check the version.
|
||||
*/
|
||||
public boolean isMisoEnabled() {
|
||||
TunerVersionChecker.checkHigherOrEqualVersionTo(
|
||||
TunerVersionChecker.TUNER_VERSION_1_1, "isMisoEnabled status");
|
||||
if (mIsMisoEnabled == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return mIsMisoEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets is the Code Rate of the frontend is linear or not status.
|
||||
*
|
||||
* <p>This status query is only supported by Tuner HAL 1.1 or higher. Use
|
||||
* {@link TunerVersionChecker.getTunerVersion()} to check the version.
|
||||
*/
|
||||
public boolean isLinear() {
|
||||
TunerVersionChecker.checkHigherOrEqualVersionTo(
|
||||
TunerVersionChecker.TUNER_VERSION_1_1, "isLinear status");
|
||||
if (mIsLinear == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return mIsLinear;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets is the Short Frames enabled or not status.
|
||||
*
|
||||
* <p>This status query is only supported by Tuner HAL 1.1 or higher. Use
|
||||
* {@link TunerVersionChecker.getTunerVersion()} to check the version.
|
||||
*/
|
||||
public boolean isShortFramesEnabled() {
|
||||
TunerVersionChecker.checkHigherOrEqualVersionTo(
|
||||
TunerVersionChecker.TUNER_VERSION_1_1, "isShortFramesEnabled status");
|
||||
if (mIsShortFrames == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return mIsShortFrames;
|
||||
}
|
||||
|
||||
/**
|
||||
* Status for each tuning Physical Layer Pipes.
|
||||
*/
|
||||
|
||||
@@ -156,6 +156,7 @@ using ::android::hardware::tv::tuner::V1_1::FrontendDtmbTransmissionMode;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendGuardInterval;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendInterleaveMode;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendModulation;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendRollOff;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendSpectralInversion;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendStatusExt1_1;
|
||||
using ::android::hardware::tv::tuner::V1_1::FrontendStatusTypeExt1_1;
|
||||
@@ -2484,6 +2485,55 @@ jobject JTuner::getFrontendStatus(jintArray types) {
|
||||
env->SetObjectField(statusObj, field, valObj);
|
||||
break;
|
||||
}
|
||||
case FrontendStatusExt1_1::hidl_discriminator::rollOff: {
|
||||
jfieldID field = env->GetFieldID(clazz, "mRollOff", "Ljava/lang/Integer;");
|
||||
auto rollOff = s.rollOff();
|
||||
jint intRollOff;
|
||||
bool valid = true;
|
||||
switch(rollOff.getDiscriminator()) {
|
||||
case FrontendRollOff::hidl_discriminator::dvbs: {
|
||||
intRollOff = static_cast<jint>(rollOff.dvbs());
|
||||
break;
|
||||
}
|
||||
case FrontendRollOff::hidl_discriminator::isdbs: {
|
||||
intRollOff = static_cast<jint>(rollOff.isdbs());
|
||||
break;
|
||||
}
|
||||
case FrontendRollOff::hidl_discriminator::isdbs3: {
|
||||
intRollOff = static_cast<jint>(rollOff.isdbs3());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
if (valid) {
|
||||
jobject newIntegerObj = env->NewObject(intClazz, initInt, intRollOff);
|
||||
env->SetObjectField(statusObj, field, newIntegerObj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FrontendStatusExt1_1::hidl_discriminator::isMiso: {
|
||||
jfieldID field = env->GetFieldID(clazz, "mIsMisoEnabled", "Ljava/lang/Boolean;");
|
||||
jobject newBooleanObj = env->NewObject(
|
||||
booleanClazz, initBoolean, static_cast<jboolean>(s.isMiso()));
|
||||
env->SetObjectField(statusObj, field, newBooleanObj);
|
||||
break;
|
||||
}
|
||||
case FrontendStatusExt1_1::hidl_discriminator::isLinear: {
|
||||
jfieldID field = env->GetFieldID(clazz, "mIsLinear", "Ljava/lang/Boolean;");
|
||||
jobject newBooleanObj = env->NewObject(
|
||||
booleanClazz, initBoolean, static_cast<jboolean>(s.isLinear()));
|
||||
env->SetObjectField(statusObj, field, newBooleanObj);
|
||||
break;
|
||||
}
|
||||
case FrontendStatusExt1_1::hidl_discriminator::isShortFrames: {
|
||||
jfieldID field = env->GetFieldID(clazz, "mIsShortFrames", "Ljava/lang/Boolean;");
|
||||
jobject newBooleanObj = env->NewObject(
|
||||
booleanClazz, initBoolean, static_cast<jboolean>(s.isShortFrames()));
|
||||
env->SetObjectField(statusObj, field, newBooleanObj);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
@@ -2494,7 +2544,7 @@ jobject JTuner::getFrontendStatus(jintArray types) {
|
||||
|
||||
bool JTuner::isV1_1ExtendedStatusType(int type) {
|
||||
return (type > static_cast<int>(FrontendStatusType::ATSC3_PLP_INFO)
|
||||
&& type <= static_cast<int>(FrontendStatusTypeExt1_1::TS_DATA_RATES));
|
||||
&& type <= static_cast<int>(FrontendStatusTypeExt1_1::IS_SHORT_FRAMES));
|
||||
}
|
||||
|
||||
jint JTuner::closeFrontend() {
|
||||
|
||||
Reference in New Issue
Block a user