Return error if the a new tune() is called with different frontend type.

Bug: 204235120
Test: atest android.media.tv.tuner.cts
Change-Id: I914df11fc223d2902ecbdb20a9cecbbe726c904f
This commit is contained in:
Hongguang
2021-10-26 16:23:33 -07:00
committed by Hongguang Chen
parent 62429f169d
commit e47c7237fb

View File

@@ -751,8 +751,13 @@ public class Tuner implements AutoCloseable {
*/
@Result
public int tune(@NonNull FrontendSettings settings) {
Log.d(TAG, "Tune to " + settings.getFrequency());
mFrontendType = settings.getType();
final int type = settings.getType();
if (mFrontendHandle != null && type != mFrontendType) {
Log.e(TAG, "Frontend was opened with type " + mFrontendType + ", new type is " + type);
return RESULT_INVALID_STATE;
}
Log.d(TAG, "Tune to " + settings.getFrequencyLong());
mFrontendType = type;
if (mFrontendType == FrontendSettings.TYPE_DTMB) {
if (!TunerVersionChecker.checkHigherOrEqualVersionTo(
TunerVersionChecker.TUNER_VERSION_1_1, "Tuner with DTMB Frontend")) {