Package com.castlabs.android.player

## Class CatchupConfiguration

- java.lang.Object
- - com.castlabs.android.player.CatchupConfiguration

- All Implemented Interfaces:
    `Parcelable`

      public final class CatchupConfiguration
      extends Object
      implements Parcelable

  Represents a catchup configuration. This allows the playback position to be between two defined thresholds. The trigger of the Catchup mechanism is automatic and based on the playhead. The two available Catchup Types are `CatchupConfiguration.Type.SEEK` and `CatchupConfiguration.Type.SPEED`. Use one of the Builder methods to create a configuration, `CatchupConfiguration.Builder.speed(long, long, long, float)` or `CatchupConfiguration.Builder.seek(long, long)`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `CatchupConfiguration.Builder` | Builder for a `CatchupConfiguration`.
    `static class` | `CatchupConfiguration.TimeReference` | Timing reference which will be used to calculate the thresholds of the CatchupConfiguration
    `static class` | `CatchupConfiguration.Type` | Represents the catchup strategy.

    - ### Nested classes/interfaces inherited from interface android.os.Parcelable

      `Parcelable.ClassLoaderCreator<T extends Object>, Parcelable.Creator<T extends Object>`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Parcelable.Creator<CatchupConfiguration>` | `CREATOR` |
    `static CatchupConfiguration` | `DEFAULT` |
    `long` | `fallbackTimeThresholdMs` | Threshold relative to the `timeReference` which indicates a fallback safeguard for the `speed` mode.
    `long` | `lowerTimeThresholdMs` | Threshold relative to the `timeReference` which indicates the end or destination of the Catchup.
    `float` | `speedCoefficient` | Player speed at which to perform Catchup when `upperTimeThresholdMs` is reached.
    `CatchupConfiguration.TimeReference` | `timeReference` | The time reference to which the thresholds will be relative
    `CatchupConfiguration.Type` | `type` | The type (strategy) of the Catchup behaviour.
    `long` | `upperTimeThresholdMs` | Threshold relative to the `timeReference` which indicates the start trigger of the Catchup.

    - ### Fields inherited from interface android.os.Parcelable

      `CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `describeContents()` |
    `boolean` | `equals​(Object obj)` |
    `int` | `hashCode()` |
    `String` | `toString()` |
    `void` | `writeToParcel​(Parcel dest, int flags)` |

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT

          public static CatchupConfiguration DEFAULT

    - #### type

          public final CatchupConfiguration.Type type

      The type (strategy) of the Catchup behaviour.

    - #### timeReference

          public final CatchupConfiguration.TimeReference timeReference

      The time reference to which the thresholds will be relative

    - #### lowerTimeThresholdMs

          public final long lowerTimeThresholdMs

      Threshold relative to the `timeReference` which indicates the end or destination of the Catchup.

    - #### upperTimeThresholdMs

          public final long upperTimeThresholdMs

      Threshold relative to the `timeReference` which indicates the start trigger of the Catchup.

    - #### fallbackTimeThresholdMs

          public final long fallbackTimeThresholdMs

      Threshold relative to the `timeReference` which indicates a fallback safeguard for the `speed` mode. If reached, a seek operation will be triggered to prevent the `playhead` from the timeReference.

    - #### speedCoefficient

          public final float speedCoefficient

      Player speed at which to perform Catchup when `upperTimeThresholdMs` is reached. Only applicable in `speed` mode.

    - #### CREATOR

          public static final Parcelable.Creator<CatchupConfiguration> CREATOR

  - ### Method Detail

    - #### describeContents

          public int describeContents()

      Specified by:
        `describeContents` in interface `Parcelable`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### writeToParcel

          public void writeToParcel​(Parcel dest,
                                    int flags)

      Specified by:
        `writeToParcel` in interface `Parcelable`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals​(Object obj)

      Overrides:
        `equals` in class `Object`