Change tuner frequency data type to long.

Current data type can't cover frequencey larger than 2G.

Bug: 197024355
Fix: 197024355
Test: atest android.media.tv.tuner.cts
Test: atest android.signature.cts.api.system.SignatureTest#testSignature
Change-Id: I6a40d190ed3b02e846d7852bd1953da9d3ec9173
This commit is contained in:
Hongguang
2021-08-20 11:55:44 -07:00
parent 78deb8d1bd
commit 580189569f
17 changed files with 309 additions and 86 deletions

View File

@@ -6556,7 +6556,8 @@ package android.media.tv.tuner.frontend {
public static class AnalogFrontendSettings.Builder {
method @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setAftFlag(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setSifStandard(int);
method @NonNull public android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder setSignalType(int);
}
@@ -6624,7 +6625,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setBandwidth(int);
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setDemodOutputFormat(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setPlpSettings(@NonNull android.media.tv.tuner.frontend.Atsc3PlpSettings[]);
}
@@ -6667,7 +6669,8 @@ package android.media.tv.tuner.frontend {
public static class AtscFrontendSettings.Builder {
method @NonNull public android.media.tv.tuner.frontend.AtscFrontendSettings build();
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AtscFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AtscFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.AtscFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.AtscFrontendSettings.Builder setModulation(int);
}
@@ -6727,7 +6730,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setBandwidth(int);
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setCodeRate(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setGuardInterval(int);
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.DtmbFrontendSettings.Builder setTimeInterleaveMode(int);
@@ -6791,7 +6795,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setAnnex(int);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setBandwidth(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setInnerFec(long);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setOuterFec(int);
@@ -6879,7 +6884,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCanHandleDiseqcRxMessage(boolean);
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCodeRate(@Nullable android.media.tv.tuner.frontend.DvbsCodeRate);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setInputStreamId(int);
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setPilot(int);
@@ -6988,7 +6994,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setBandwidth(int);
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setConstellation(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setGuardInterval(int);
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setHierarchy(int);
method @NonNull public android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder setHighPriority(boolean);
@@ -7007,9 +7014,11 @@ package android.media.tv.tuner.frontend {
}
public class FrontendInfo {
method public int getAcquireRange();
method @Deprecated public int getAcquireRange();
method public long getAcquireRangeLong();
method public int getExclusiveGroupId();
method @NonNull public android.util.Range<java.lang.Integer> getFrequencyRange();
method @Deprecated @NonNull public android.util.Range<java.lang.Integer> getFrequencyRange();
method @NonNull public android.util.Range<java.lang.Long> getFrequencyRangeLong();
method @NonNull public android.media.tv.tuner.frontend.FrontendCapabilities getFrontendCapabilities();
method public int getId();
method @NonNull public int[] getStatusCapabilities();
@@ -7018,11 +7027,14 @@ package android.media.tv.tuner.frontend {
}
public abstract class FrontendSettings {
method @IntRange(from=1) public int getEndFrequency();
method public int getFrequency();
method @Deprecated @IntRange(from=1) public int getEndFrequency();
method @IntRange(from=1) public long getEndFrequencyLong();
method @Deprecated public int getFrequency();
method public long getFrequencyLong();
method public int getFrontendSpectralInversion();
method public abstract int getType();
method @IntRange(from=1) public void setEndFrequency(int);
method @Deprecated @IntRange(from=1) public void setEndFrequency(int);
method @IntRange(from=1) public void setEndFrequencyLong(long);
method public void setSpectralInversion(int);
field public static final long FEC_11_15 = 4194304L; // 0x400000L
field public static final long FEC_11_20 = 8388608L; // 0x800000L
@@ -7085,7 +7097,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public int[] getBers();
method @NonNull public int[] getCodeRates();
method @NonNull public int[] getExtendedModulations();
method public int getFreqOffset();
method @Deprecated public int getFreqOffset();
method public long getFreqOffsetLong();
method public int getGuardInterval();
method public int getHierarchy();
method public long getInnerFec();
@@ -7201,7 +7214,8 @@ package android.media.tv.tuner.frontend {
public static class Isdbs3FrontendSettings.Builder {
method @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setCodeRate(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setRolloff(int);
method @NonNull public android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder setStreamId(int);
@@ -7244,7 +7258,8 @@ package android.media.tv.tuner.frontend {
public static class IsdbsFrontendSettings.Builder {
method @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setCodeRate(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setRolloff(int);
method @NonNull public android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder setStreamId(int);
@@ -7291,7 +7306,8 @@ package android.media.tv.tuner.frontend {
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setBandwidth(int);
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setCodeRate(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setFrequency(int);
method @Deprecated @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setFrequency(int);
method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setFrequencyLong(long);
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setGuardInterval(int);
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setMode(int);
method @NonNull public android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder setModulation(int);
@@ -7311,7 +7327,8 @@ package android.media.tv.tuner.frontend {
method public default void onDvbcAnnexReported(int);
method public void onDvbsStandardReported(int);
method public void onDvbtStandardReported(int);
method public void onFrequenciesReported(@NonNull int[]);
method public default void onFrequenciesLongReported(@NonNull long[]);
method @Deprecated public void onFrequenciesReported(@NonNull int[]);
method public void onGroupIdsReported(@NonNull int[]);
method public void onHierarchyReported(int);
method public void onInputStreamIdsReported(@NonNull int[]);

View File

@@ -1146,13 +1146,13 @@ public class Tuner implements AutoCloseable {
}
}
private void onFrequenciesReport(int[] frequency) {
private void onFrequenciesReport(long[] frequencies) {
synchronized (mScanCallbackLock) {
if (mScanCallbackExecutor != null && mScanCallback != null) {
mScanCallbackExecutor.execute(() -> {
synchronized (mScanCallbackLock) {
if (mScanCallback != null) {
mScanCallback.onFrequenciesReported(frequency);
mScanCallback.onFrequenciesLongReported(frequencies);
}
}
});

View File

@@ -229,7 +229,7 @@ public class AnalogFrontendSettings extends FrontendSettings {
return new Builder();
}
private AnalogFrontendSettings(int frequency, int signalType, int sifStandard, int aftFlag) {
private AnalogFrontendSettings(long frequency, int signalType, int sifStandard, int aftFlag) {
super(frequency);
mSignalType = signalType;
mSifStandard = sifStandard;
@@ -240,7 +240,7 @@ public class AnalogFrontendSettings extends FrontendSettings {
* Builder for {@link AnalogFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mSignalType = SIGNAL_TYPE_UNDEFINED;
private int mSifStandard = SIF_UNDEFINED;
private int mAftFlag = AFT_FLAG_UNDEFINED;
@@ -251,10 +251,23 @@ public class AnalogFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -276,8 +276,8 @@ public class Atsc3FrontendSettings extends FrontendSettings {
private final int mDemodOutputFormat;
private final Atsc3PlpSettings[] mPlpSettings;
private Atsc3FrontendSettings(int frequency, int bandwidth, int demodOutputFormat,
Atsc3PlpSettings[] plpSettings) {
private Atsc3FrontendSettings(
long frequency, int bandwidth, int demodOutputFormat, Atsc3PlpSettings[] plpSettings) {
super(frequency);
mBandwidth = bandwidth;
mDemodOutputFormat = demodOutputFormat;
@@ -319,7 +319,7 @@ public class Atsc3FrontendSettings extends FrontendSettings {
* Builder for {@link Atsc3FrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mBandwidth = BANDWIDTH_UNDEFINED;
private int mDemodOutputFormat = DEMOD_OUTPUT_FORMAT_UNDEFINED;
private Atsc3PlpSettings[] mPlpSettings = {};
@@ -331,10 +331,23 @@ public class Atsc3FrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -61,7 +61,7 @@ public class AtscFrontendSettings extends FrontendSettings {
private final int mModulation;
private AtscFrontendSettings(int frequency, int modulation) {
private AtscFrontendSettings(long frequency, int modulation) {
super(frequency);
mModulation = modulation;
}
@@ -86,7 +86,7 @@ public class AtscFrontendSettings extends FrontendSettings {
* Builder for {@link AtscFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mModulation = MODULATION_UNDEFINED;
private Builder() {
@@ -96,10 +96,23 @@ public class AtscFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -247,7 +247,7 @@ public final class DtmbFrontendSettings extends FrontendSettings {
private final int mGuardInterval;
private final int mTimeInterleaveMode;
private DtmbFrontendSettings(int frequency, int modulation, int codeRate, int transmissionMode,
private DtmbFrontendSettings(long frequency, int modulation, int codeRate, int transmissionMode,
int guardInterval, int timeInterleaveMode, int bandwidth) {
super(frequency);
mModulation = modulation;
@@ -319,7 +319,7 @@ public final class DtmbFrontendSettings extends FrontendSettings {
* Builder for {@link AtscFrontendSettings}.
*/
public static final class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mModulation = MODULATION_CONSTELLATION_UNDEFINED;
private int mCodeRate = CODERATE_UNDEFINED;
private int mTransmissionMode = TRANSMISSION_MODE_UNDEFINED;
@@ -330,6 +330,19 @@ public final class DtmbFrontendSettings extends FrontendSettings {
private Builder() {
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
@@ -338,7 +351,7 @@ public final class DtmbFrontendSettings extends FrontendSettings {
@NonNull
@IntRange(from = 1)
@SuppressLint("MissingGetterMatchingBuilder")
public Builder setFrequency(int frequency) {
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -266,7 +266,7 @@ public class DvbcFrontendSettings extends FrontendSettings {
// Dvbc bandwidth is only supported in Tuner 1.1 or higher.
private final int mBandwidth;
private DvbcFrontendSettings(int frequency, int modulation, long innerFec, int symbolRate,
private DvbcFrontendSettings(long frequency, int modulation, long innerFec, int symbolRate,
int outerFec, int annex, int spectralInversion, int interleaveMode, int bandwidth) {
super(frequency);
mModulation = modulation;
@@ -347,7 +347,7 @@ public class DvbcFrontendSettings extends FrontendSettings {
* Builder for {@link DvbcFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mModulation = MODULATION_UNDEFINED;
private long mInnerFec = FEC_UNDEFINED;
private int mSymbolRate = 0;
@@ -364,10 +364,23 @@ public class DvbcFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -263,7 +263,7 @@ public class DvbsFrontendSettings extends FrontendSettings {
// isDiseqcRxMessage is only supported in Tuner 1.1 or higher.
private final boolean mIsDiseqcRxMessage;
private DvbsFrontendSettings(int frequency, int modulation, DvbsCodeRate codeRate,
private DvbsFrontendSettings(long frequency, int modulation, DvbsCodeRate codeRate,
int symbolRate, int rolloff, int pilot, int inputStreamId, int standard, int vcm,
int scanType, boolean isDiseqcRxMessage) {
super(frequency);
@@ -363,7 +363,7 @@ public class DvbsFrontendSettings extends FrontendSettings {
* Builder for {@link DvbsFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mModulation = MODULATION_UNDEFINED;
private DvbsCodeRate mCodeRate = null;
private int mSymbolRate = 0;
@@ -382,10 +382,23 @@ public class DvbsFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -399,7 +399,7 @@ public class DvbtFrontendSettings extends FrontendSettings {
private final int mPlpId;
private final int mPlpGroupId;
private DvbtFrontendSettings(int frequency, int transmissionMode, int bandwidth,
private DvbtFrontendSettings(long frequency, int transmissionMode, int bandwidth,
int constellation, int hierarchy, int hpCodeRate, int lpCodeRate, int guardInterval,
boolean isHighPriority, int standard, boolean isMiso, int plpMode, int plpId,
int plpGroupId) {
@@ -532,7 +532,7 @@ public class DvbtFrontendSettings extends FrontendSettings {
* Builder for {@link DvbtFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mTransmissionMode = TRANSMISSION_MODE_UNDEFINED;
private int mBandwidth = BANDWIDTH_UNDEFINED;
private int mConstellation = CONSTELLATION_UNDEFINED;
@@ -554,10 +554,23 @@ public class DvbtFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -34,15 +34,15 @@ import java.util.Objects;
public class FrontendInfo {
private final int mId;
private final int mType;
private final Range<Integer> mFrequencyRange;
private final Range<Long> mFrequencyRange;
private final Range<Integer> mSymbolRateRange;
private final int mAcquireRange;
private final long mAcquireRange;
private final int mExclusiveGroupId;
private final int[] mStatusCaps;
private final FrontendCapabilities mFrontendCap;
private FrontendInfo(int id, int type, int minFrequency, int maxFrequency, int minSymbolRate,
int maxSymbolRate, int acquireRange, int exclusiveGroupId, int[] statusCaps,
private FrontendInfo(int id, int type, long minFrequency, long maxFrequency, int minSymbolRate,
int maxSymbolRate, long acquireRange, int exclusiveGroupId, int[] statusCaps,
FrontendCapabilities frontendCap) {
mId = id;
mType = type;
@@ -77,9 +77,21 @@ public class FrontendInfo {
/**
* Gets supported frequency range in Hz.
*
* @deprecated Use {@link #getFrequencyRangeLong()}
*/
@Deprecated
@NonNull
public Range<Integer> getFrequencyRange() {
return new Range<>(
(int) (long) mFrequencyRange.getLower(), (int) (long) mFrequencyRange.getUpper());
}
/**
* Gets supported frequency range in Hz.
*/
@NonNull
public Range<Long> getFrequencyRangeLong() {
return mFrequencyRange;
}
@@ -95,10 +107,22 @@ public class FrontendInfo {
* Gets acquire range in Hz.
*
* <p>The maximum frequency difference the frontend can detect.
@deprecated Use {@link #getAcquireRangeLong(long)}
*/
@Deprecated
public int getAcquireRange() {
return (int) getAcquireRangeLong();
}
/**
* Gets acquire range in Hz.
*
* <p>The maximum frequency difference the frontend can detect.
*/
public long getAcquireRangeLong() {
return mAcquireRange;
}
/**
* Gets exclusive group ID.
*
@@ -108,6 +132,7 @@ public class FrontendInfo {
public int getExclusiveGroupId() {
return mExclusiveGroupId;
}
/**
* Gets status capabilities.
*
@@ -118,6 +143,7 @@ public class FrontendInfo {
public int[] getStatusCapabilities() {
return mStatusCaps;
}
/**
* Gets frontend capabilities.
*/
@@ -126,7 +152,6 @@ public class FrontendInfo {
return mFrontendCap;
}
/** @hide */
@Override
public boolean equals(Object o) {
@@ -139,9 +164,9 @@ public class FrontendInfo {
// TODO: compare FrontendCapabilities
FrontendInfo info = (FrontendInfo) o;
return mId == info.getId() && mType == info.getType()
&& Objects.equals(mFrequencyRange, info.getFrequencyRange())
&& Objects.equals(mFrequencyRange, info.getFrequencyRangeLong())
&& Objects.equals(mSymbolRateRange, info.getSymbolRateRange())
&& mAcquireRange == info.getAcquireRange()
&& mAcquireRange == info.getAcquireRangeLong()
&& mExclusiveGroupId == info.getExclusiveGroupId()
&& Arrays.equals(mStatusCaps, info.getStatusCapabilities());
}

View File

@@ -271,17 +271,13 @@ public abstract class FrontendSettings {
public static final int FRONTEND_SPECTRAL_INVERSION_INVERTED =
android.hardware.tv.tuner.FrontendSpectralInversion.INVERTED;
private final int mFrequency;
private final long mFrequency;
// End frequency is only supported in Tuner 1.1 or higher.
private int mEndFrequency = Tuner.INVALID_FRONTEND_SETTING_FREQUENCY;
private long mEndFrequency = Tuner.INVALID_FRONTEND_SETTING_FREQUENCY;
// General spectral inversion is only supported in Tuner 1.1 or higher.
private int mSpectralInversion = FRONTEND_SPECTRAL_INVERSION_UNDEFINED;
FrontendSettings(int frequency) {
mFrequency = frequency;
}
FrontendSettings(long frequency) { mFrequency = frequency; }
/**
* Returns the frontend type.
@@ -293,18 +289,41 @@ public abstract class FrontendSettings {
* Gets the frequency.
*
* @return the frequency in Hz.
* @deprecated Use {@link #getFrequencyLong()}
*/
@Deprecated
public int getFrequency() {
return (int) getFrequencyLong();
}
/**
* Gets the frequency.
*
* @return the frequency in Hz.
*/
public long getFrequencyLong() {
return mFrequency;
}
/**
* Get the end frequency.
*
* @return the end frequency in Hz.
* @deprecated Use {@link #getEndFrequencyLong()}
*/
@Deprecated
@IntRange(from = 1)
public int getEndFrequency() {
return (int) getEndFrequencyLong();
}
/**
* Get the end frequency.
*
* @return the end frequency in Hz.
*/
@IntRange(from = 1)
public int getEndFrequency() {
public long getEndFrequencyLong() {
return mEndFrequency;
}
@@ -344,9 +363,27 @@ public abstract class FrontendSettings {
* @param endFrequency the end frequency used during blind scan. The default value is
* {@link android.media.tv.tuner.Tuner#INVALID_FRONTEND_SETTING_FREQUENCY}.
* @throws IllegalArgumentException if the {@code endFrequency} is not greater than 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@IntRange(from = 1)
public void setEndFrequency(int endFrequency) {
@Deprecated
public void setEndFrequency(int frequency) {
setEndFrequencyLong((long) frequency);
}
/**
* Set End Frequency. This API is only supported with Tuner HAL 1.1 or higher. Otherwise it
* would be no-op.
*
* <p>This API is only supported by Tuner HAL 1.1 or higher. Unsupported version would cause
* no-op. Use {@link TunerVersionChecker#getTunerVersion()} to check the version.
*
* @param endFrequency the end frequency used during blind scan. The default value is
* {@link android.media.tv.tuner.Tuner#INVALID_FRONTEND_SETTING_FREQUENCY}.
* @throws IllegalArgumentException if the {@code endFrequency} is not greater than 0.
*/
@IntRange(from = 1)
public void setEndFrequencyLong(long endFrequency) {
if (TunerVersionChecker.checkHigherOrEqualVersionTo(
TunerVersionChecker.TUNER_VERSION_1_1, "setEndFrequency")) {
if (endFrequency < 1) {

View File

@@ -447,7 +447,7 @@ public class FrontendStatus {
private Boolean mIsLnaOn;
private boolean[] mIsLayerErrors;
private Integer mMer;
private Integer mFreqOffset;
private Long mFreqOffset;
private Integer mHierarchy;
private Boolean mIsRfLocked;
private Atsc3PlpTuningInfo[] mPlpInfo;
@@ -651,8 +651,18 @@ public class FrontendStatus {
* Gets the current frequency difference in Hz.
*
* <p>Difference between tuning frequency and actual locked frequency.
* @deprecated Use {@link #getFreqOffsetLong()}
*/
@Deprecated
public int getFreqOffset() {
return (int) getFreqOffsetLong();
}
/**
* Gets the current frequency difference in Hz.
*
* <p>Difference between tuning frequency and actual locked frequency.
*/
public long getFreqOffsetLong() {
if (mFreqOffset == null) {
throw new IllegalStateException("FreqOffset status is empty");
}

View File

@@ -158,7 +158,7 @@ public class Isdbs3FrontendSettings extends FrontendSettings {
private final int mSymbolRate;
private final int mRolloff;
private Isdbs3FrontendSettings(int frequency, int streamId, int streamIdType, int modulation,
private Isdbs3FrontendSettings(long frequency, int streamId, int streamIdType, int modulation,
int codeRate, int symbolRate, int rolloff) {
super(frequency);
mStreamId = streamId;
@@ -222,7 +222,7 @@ public class Isdbs3FrontendSettings extends FrontendSettings {
* Builder for {@link Isdbs3FrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mStreamId = Tuner.INVALID_STREAM_ID;
private int mStreamIdType = IsdbsFrontendSettings.STREAM_ID_TYPE_ID;
private int mModulation = MODULATION_UNDEFINED;
@@ -237,10 +237,23 @@ public class Isdbs3FrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -143,7 +143,7 @@ public class IsdbsFrontendSettings extends FrontendSettings {
private final int mSymbolRate;
private final int mRolloff;
private IsdbsFrontendSettings(int frequency, int streamId, int streamIdType, int modulation,
private IsdbsFrontendSettings(long frequency, int streamId, int streamIdType, int modulation,
int codeRate, int symbolRate, int rolloff) {
super(frequency);
mStreamId = streamId;
@@ -207,7 +207,7 @@ public class IsdbsFrontendSettings extends FrontendSettings {
* Builder for {@link IsdbsFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mStreamId = Tuner.INVALID_STREAM_ID;
private int mStreamIdType = STREAM_ID_TYPE_ID;
private int mModulation = MODULATION_UNDEFINED;
@@ -222,10 +222,23 @@ public class IsdbsFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -134,7 +134,7 @@ public class IsdbtFrontendSettings extends FrontendSettings {
private final int mGuardInterval;
private final int mServiceAreaId;
private IsdbtFrontendSettings(int frequency, int modulation, int bandwidth, int mode,
private IsdbtFrontendSettings(long frequency, int modulation, int bandwidth, int mode,
int codeRate, int guardInterval, int serviceAreaId) {
super(frequency);
mModulation = modulation;
@@ -199,7 +199,7 @@ public class IsdbtFrontendSettings extends FrontendSettings {
* Builder for {@link IsdbtFrontendSettings}.
*/
public static class Builder {
private int mFrequency = 0;
private long mFrequency = 0;
private int mModulation = MODULATION_UNDEFINED;
private int mBandwidth = BANDWIDTH_UNDEFINED;
private int mMode = MODE_UNDEFINED;
@@ -214,10 +214,23 @@ public class IsdbtFrontendSettings extends FrontendSettings {
* Sets frequency in Hz.
*
* <p>Default value is 0.
* @deprecated Use {@link #setFrequencyLong(long)}
*/
@NonNull
@IntRange(from = 1)
@Deprecated
public Builder setFrequency(int frequency) {
return setFrequencyLong((long) frequency);
}
/**
* Sets frequency in Hz.
*
* <p>Default value is 0.
*/
@NonNull
@IntRange(from = 1)
public Builder setFrequencyLong(long frequency) {
mFrequency = frequency;
return this;
}

View File

@@ -37,8 +37,19 @@ public interface ScanCallback {
/** scan progress percent (0..100) */
void onProgress(@IntRange(from = 0, to = 100) int percent);
/**
* @deprecated Use {@link #onFrequenciesLongReported(long[])}
*/
@Deprecated void onFrequenciesReported(@NonNull int[] frequencies);
/** Signal frequencies in Hertz */
void onFrequenciesReported(@NonNull int[] frequency);
default void onFrequenciesLongReported(@NonNull long[] frequencies) {
final int[] intFrequencies = new int[frequencies.length];
for (int i = 0; i < frequencies.length; i++) {
intFrequencies[i] = (int) frequencies[i];
}
onFrequenciesReported(intFrequencies);
}
/** Symbols per second */
void onSymbolRatesReported(@NonNull int[] rate);

View File

@@ -978,24 +978,16 @@ void FrontendClientCallbackImpl::onScanMessage(
}
case FrontendScanMessageType::FREQUENCY: {
std::vector<int64_t> v = message.get<FrontendScanMessage::Tag::frequencies>();
std::vector<uint32_t> jintV;
for (int i = 0; i < v.size(); i++) {
jintV.push_back(static_cast<uint32_t>(v[i]));
}
jintArray freqs = env->NewIntArray(jintV.size());
env->SetIntArrayRegion(freqs, 0, v.size(), reinterpret_cast<jint *>(&jintV[0]));
env->CallVoidMethod(
frontend,
env->GetMethodID(clazz, "onFrequenciesReport", "([I)V"),
freqs);
jlongArray freqs = env->NewLongArray(v.size());
env->SetLongArrayRegion(freqs, 0, v.size(), reinterpret_cast<jlong *>(&v[0]));
env->CallVoidMethod(frontend, env->GetMethodID(clazz, "onFrequenciesReport", "([J)V"),
freqs);
break;
}
case FrontendScanMessageType::SYMBOL_RATE: {
std::vector<int32_t> v = message.get<FrontendScanMessage::Tag::symbolRates>();
jintArray symbolRates = env->NewIntArray(v.size());
env->SetIntArrayRegion(symbolRates, 0, v.size(), reinterpret_cast<jint *>(&v[0]));
env->CallVoidMethod(frontend, env->GetMethodID(clazz, "onSymbolRates", "([I)V"),
symbolRates);
break;
@@ -1384,15 +1376,16 @@ jobject JTuner::getFrontendInfo(int id) {
JNIEnv *env = AndroidRuntime::getJNIEnv();
jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendInfo");
jmethodID infoInit = env->GetMethodID(clazz, "<init>",
"(IIIIIIII[ILandroid/media/tv/tuner/frontend/FrontendCapabilities;)V");
jmethodID infoInit =
env->GetMethodID(clazz, "<init>",
"(IIJJIIJI[ILandroid/media/tv/tuner/frontend/FrontendCapabilities;)V");
jint type = (jint)feInfo->type;
jint minFrequency = static_cast<uint32_t>(feInfo->minFrequency);
jint maxFrequency = static_cast<uint32_t>(feInfo->maxFrequency);
jlong minFrequency = feInfo->minFrequency;
jlong maxFrequency = feInfo->maxFrequency;
jint minSymbolRate = feInfo->minSymbolRate;
jint maxSymbolRate = feInfo->maxSymbolRate;
jint acquireRange = feInfo->acquireRange;
jlong acquireRange = feInfo->acquireRange;
jint exclusiveGroupId = feInfo->exclusiveGroupId;
jintArray statusCaps = env->NewIntArray(feInfo->statusCaps.size());
env->SetIntArrayRegion(
@@ -1854,6 +1847,8 @@ jobject JTuner::getFrontendStatus(jintArray types) {
jmethodID initInt = env->GetMethodID(intClazz, "<init>", "(I)V");
jclass booleanClazz = env->FindClass("java/lang/Boolean");
jmethodID initBoolean = env->GetMethodID(booleanClazz, "<init>", "(Z)V");
jclass longClazz = env->FindClass("java/lang/Long");
jmethodID initLong = env->GetMethodID(longClazz, "<init>", "(J)V");
for (int i = 0; i < status.size(); i++) {
const FrontendStatus &s = status[i];
@@ -2033,12 +2028,10 @@ jobject JTuner::getFrontendStatus(jintArray types) {
break;
}
case FrontendStatus::Tag::freqOffset: {
jfieldID field = env->GetFieldID(clazz, "mFreqOffset", "Ljava/lang/Integer;");
jobject newIntegerObj =
env->NewObject(intClazz, initInt,
static_cast<uint32_t>(
s.get<FrontendStatus::Tag::freqOffset>()));
env->SetObjectField(statusObj, field, newIntegerObj);
jfieldID field = env->GetFieldID(clazz, "mFreqOffset", "Ljava/lang/Long;");
jobject newLongObj = env->NewObject(longClazz, initLong,
s.get<FrontendStatus::Tag::freqOffset>());
env->SetObjectField(statusObj, field, newLongObj);
break;
}
case FrontendStatus::Tag::hierarchy: {
@@ -2480,14 +2473,14 @@ static DemuxPid getDemuxPid(int pidType, int pid) {
static int64_t getFrontendSettingsFreq(JNIEnv *env, const jobject &settings) {
jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings");
jfieldID freqField = env->GetFieldID(clazz, "mFrequency", "I");
return static_cast<uint32_t>(env->GetIntField(settings, freqField));
jfieldID freqField = env->GetFieldID(clazz, "mFrequency", "J");
return env->GetLongField(settings, freqField);
}
static int64_t getFrontendSettingsEndFreq(JNIEnv *env, const jobject &settings) {
jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendSettings");
jfieldID endFreqField = env->GetFieldID(clazz, "mEndFrequency", "I");
return static_cast<uint32_t>(env->GetIntField(settings, endFreqField));
jfieldID endFreqField = env->GetFieldID(clazz, "mEndFrequency", "J");
return env->GetLongField(settings, endFreqField);
}
static FrontendSpectralInversion getFrontendSettingsSpectralInversion(