Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ceac0806 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Split FrontendSettings and move to frontend package"

parents 847fb2bc 88777d90
Loading
Loading
Loading
Loading
+2 −281
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ package android.media.tv.tuner;
import android.annotation.SystemApi;
import android.media.tv.tuner.TunerConstants.FrontendSettingsType;

import java.util.List;

/**
 * Frontend settings for tune and scan operations.
 * @hide
@@ -29,7 +27,8 @@ import java.util.List;
public abstract class FrontendSettings {
    private final int mFrequency;

    FrontendSettings(int frequency) {
    /** @hide */
    public FrontendSettings(int frequency) {
        mFrequency = frequency;
    }

@@ -48,282 +47,4 @@ public abstract class FrontendSettings {
        return mFrequency;
    }

    // TODO: use hal constants for enum fields
    // TODO: javaDoc
    // TODO: add builders and getters for other settings type

    /**
     * Frontend settings for analog.
     * @hide
     */
    public static class FrontendAnalogSettings extends FrontendSettings {
        private int mAnalogType;
        private int mSifStandard;

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ANALOG;
        }

        public int getAnalogType() {
            return mAnalogType;
        }

        public int getSifStandard() {
            return mSifStandard;
        }

        /**
         * Creates a new builder object.
         */
        public static Builder newBuilder() {
            return new Builder();
        }

        private FrontendAnalogSettings(int frequency, int analogType, int sifStandard) {
            super(frequency);
            mAnalogType = analogType;
            mSifStandard = sifStandard;
        }

        /**
         * Builder for FrontendAnalogSettings.
         */
        public static class Builder {
            private int mFrequency;
            private int mAnalogType;
            private int mSifStandard;

            private Builder() {}

            /**
             * Sets frequency.
             */
            public Builder setFrequency(int frequency) {
                mFrequency = frequency;
                return this;
            }

            /**
             * Sets analog type.
             */
            public Builder setAnalogType(int analogType) {
                mAnalogType = analogType;
                return this;
            }

            /**
             * Sets sif standard.
             */
            public Builder setSifStandard(int sifStandard) {
                mSifStandard = sifStandard;
                return this;
            }

            /**
             * Builds a FrontendAnalogSettings instance.
             */
            public FrontendAnalogSettings build() {
                return new FrontendAnalogSettings(mFrequency, mAnalogType, mSifStandard);
            }
        }
    }

    /**
     * Frontend settings for ATSC.
     * @hide
     */
    public static class FrontendAtscSettings extends FrontendSettings {
        public int modulation;

        FrontendAtscSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ATSC;
        }
    }

    /**
     * Frontend settings for ATSC-3.
     * @hide
     */
    public static class FrontendAtsc3Settings extends FrontendSettings {
        public int bandwidth;
        public byte demodOutputFormat;
        public List<FrontendAtsc3PlpSettings> plpSettings;

        FrontendAtsc3Settings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ATSC3;
        }
    }

    /**
     * Frontend settings for DVBS.
     * @hide
     */
    public static class FrontendDvbsSettings extends FrontendSettings {
        public int modulation;
        public FrontendDvbsCodeRate coderate;
        public int symbolRate;
        public int rolloff;
        public int pilot;
        public int inputStreamId;
        public byte standard;

        FrontendDvbsSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_DVBS;
        }
    }

    /**
     * Frontend settings for DVBC.
     * @hide
     */
    public static class FrontendDvbcSettings extends FrontendSettings {
        public int modulation;
        public long fec;
        public int symbolRate;
        public int outerFec;
        public byte annex;
        public int spectralInversion;

        FrontendDvbcSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_DVBC;
        }
    }

    /**
     * Frontend settings for DVBT.
     * @hide
     */
    public static class FrontendDvbtSettings extends FrontendSettings {
        public int transmissionMode;
        public int bandwidth;
        public int constellation;
        public int hierarchy;
        public int hpCoderate;
        public int lpCoderate;
        public int guardInterval;
        public boolean isHighPriority;
        public byte standard;
        public boolean isMiso;
        public int plpMode;
        public byte plpId;
        public byte plpGroupId;

        FrontendDvbtSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_DVBT;
        }
    }

    /**
     * Frontend settings for ISDBS.
     * @hide
     */
    public static class FrontendIsdbsSettings extends FrontendSettings {
        public int streamId;
        public int streamIdType;
        public int modulation;
        public int coderate;
        public int symbolRate;
        public int rolloff;

        FrontendIsdbsSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ISDBS;
        }
    }

    /**
     * Frontend settings for ISDBS-3.
     * @hide
     */
    public static class FrontendIsdbs3Settings extends FrontendSettings {
        public int streamId;
        public int streamIdType;
        public int modulation;
        public int coderate;
        public int symbolRate;
        public int rolloff;

        FrontendIsdbs3Settings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ISDBS3;
        }
    }

    /**
     * Frontend settings for ISDBT.
     * @hide
     */
    public static class FrontendIsdbtSettings extends FrontendSettings {
        public int modulation;
        public int bandwidth;
        public int coderate;
        public int guardInterval;
        public int serviceAreaId;

        FrontendIsdbtSettings(int frequency) {
            super(frequency);
        }

        @Override
        public int getType() {
            return TunerConstants.FRONTEND_TYPE_ISDBT;
        }
    }

    /**
     * PLP settings for ATSC-3.
     * @hide
     */
    public static class FrontendAtsc3PlpSettings {
        public byte plpId;
        public int modulation;
        public int interleaveMode;
        public int codeRate;
        public int fec;
    }

    /**
     * Code rate for DVBS.
     * @hide
     */
    public static class FrontendDvbsCodeRate {
        public long fec;
        public boolean isLinear;
        public boolean isShortFrames;
        public int bitsPer1000Symbol;
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ import android.media.tv.tuner.TunerConstants.LnbVoltage;
import android.media.tv.tuner.TunerConstants.Result;
import android.media.tv.tuner.filter.FilterEvent;
import android.media.tv.tuner.frontend.FrontendCallback;
import android.media.tv.tuner.frontend.FrontendInfo;
import android.media.tv.tuner.frontend.FrontendStatus;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import android.os.NativeHandle;
 * Media event.
 * @hide
 */
public class MediaEvent {
public class MediaEvent extends FilterEvent {
    private int mStreamId;
    private boolean mIsPtsPresent;
    private long mPts;
+97 −0
Original line number Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.media.tv.tuner.frontend;

import android.media.tv.tuner.FrontendSettings;
import android.media.tv.tuner.TunerConstants;

/**
 * Frontend settings for analog.
 * @hide
 */
public class AnalogFrontendSettings extends FrontendSettings {
    private int mAnalogType;
    private int mSifStandard;

    @Override
    public int getType() {
        return TunerConstants.FRONTEND_TYPE_ANALOG;
    }

    public int getAnalogType() {
        return mAnalogType;
    }

    public int getSifStandard() {
        return mSifStandard;
    }

    /**
     * Creates a new builder object.
     */
    public static Builder newBuilder() {
        return new Builder();
    }

    private AnalogFrontendSettings(int frequency, int analogType, int sifStandard) {
        super(frequency);
        mAnalogType = analogType;
        mSifStandard = sifStandard;
    }

    /**
     * Builder for FrontendAnalogSettings.
     */
    public static class Builder {
        private int mFrequency;
        private int mAnalogType;
        private int mSifStandard;

        private Builder() {}

        /**
         * Sets frequency.
         */
        public Builder setFrequency(int frequency) {
            mFrequency = frequency;
            return this;
        }

        /**
         * Sets analog type.
         */
        public Builder setAnalogType(int analogType) {
            mAnalogType = analogType;
            return this;
        }

        /**
         * Sets sif standard.
         */
        public Builder setSifStandard(int sifStandard) {
            mSifStandard = sifStandard;
            return this;
        }

        /**
         * Builds a FrontendAnalogSettings instance.
         */
        public AnalogFrontendSettings build() {
            return new AnalogFrontendSettings(mFrequency, mAnalogType, mSifStandard);
        }
    }
}
+42 −0
Original line number Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.media.tv.tuner.frontend;


import android.media.tv.tuner.FrontendSettings;
import android.media.tv.tuner.TunerConstants;

import java.util.List;

/**
 * Frontend settings for ATSC-3.
 * @hide
 */
public class Atsc3FrontendSettings extends FrontendSettings {
    public int bandwidth;
    public byte demodOutputFormat;
    public List<Atsc3PlpSettings> plpSettings;

    Atsc3FrontendSettings(int frequency) {
        super(frequency);
    }

    @Override
    public int getType() {
        return TunerConstants.FRONTEND_TYPE_ATSC3;
    }
}
Loading