Module java.desktop
Package javax.sound.sampled

## Class Port.Info

- java.lang.Object
- - javax.sound.sampled.Line.Info
  - - javax.sound.sampled.Port.Info

- Enclosing interface:
    Port

      public static class Port.Info
      extends Line.Info

  The `Port.Info` class extends `Line.Info` with additional information specific to ports, including the port's name and whether it is a source or a target for its mixer. By definition, a port acts as either a source or a target to its mixer, but not both. (Audio input ports are sources; audio output ports are targets.)

  To learn what ports are available, you can retrieve port info objects through the `getSourceLineInfo` and `getTargetLineInfo` methods of the `Mixer` interface. Instances of the `Port.Info` class may also be constructed and used to obtain lines matching the parameters specified in the `Port.Info` object.

  Since:
    1.3

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Port.Info` | `COMPACT_DISC` | A type of port that gets audio from a CD-ROM drive.
    `static Port.Info` | `HEADPHONE` | A type of port that sends audio to a headphone jack.
    `static Port.Info` | `LINE_IN` | A type of port that gets audio from a line-level audio input jack.
    `static Port.Info` | `LINE_OUT` | A type of port that sends audio to a line-level audio output jack.
    `static Port.Info` | `MICROPHONE` | A type of port that gets audio from a built-in microphone or a microphone jack.
    `static Port.Info` | `SPEAKER` | A type of port that sends audio to a built-in speaker or a speaker jack.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Info​(Class<?> lineClass, String name, boolean isSource)` | Constructs a port's info object from the information given.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` | Finalizes the equals method.
    `String` | `getName​()` | Obtains the name of the port.
    `int` | `hashCode​()` | Finalizes the hashCode method.
    `boolean` | `isSource​()` | Indicates whether the port is a source or a target for its mixer.
    `boolean` | `matches​(Line.Info info)` | Indicates whether this info object specified matches this one.
    `String` | `toString​()` | Provides a `String` representation of the port.

    - ### Methods inherited from class javax.sound.sampled.Line.Info

      `getLineClass`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### MICROPHONE

          public static final Port.Info MICROPHONE

      A type of port that gets audio from a built-in microphone or a microphone jack.

    - #### LINE_IN

          public static final Port.Info LINE_IN

      A type of port that gets audio from a line-level audio input jack.

    - #### COMPACT_DISC

          public static final Port.Info COMPACT_DISC

      A type of port that gets audio from a CD-ROM drive.

    - #### SPEAKER

          public static final Port.Info SPEAKER

      A type of port that sends audio to a built-in speaker or a speaker jack.

    - #### HEADPHONE

          public static final Port.Info HEADPHONE

      A type of port that sends audio to a headphone jack.

    - #### LINE_OUT

          public static final Port.Info LINE_OUT

      A type of port that sends audio to a line-level audio output jack.

  - ### Constructor Detail

    - #### Info

          public Info​(Class<?> lineClass,
                      String name,
                      boolean isSource)

      Constructs a port's info object from the information given. This constructor is typically used by an implementation of Java Sound to describe a supported line.
      Parameters:
        `lineClass` - the class of the port described by the info object
        `name` - the string that names the port
        `isSource` - `true` if the port is a source port (such as a microphone), `false` if the port is a target port (such as a speaker)

  - ### Method Detail

    - #### getName

          public String getName​()

      Obtains the name of the port.
      Returns:
        the string that names the port

    - #### isSource

          public boolean isSource​()

      Indicates whether the port is a source or a target for its mixer.
      Returns:
        `true` if the port is a source port (such as a microphone), `false` if the port is a target port (such as a speaker)

    - #### matches

          public boolean matches​(Line.Info info)

      Indicates whether this info object specified matches this one. To match, the match requirements of the superclass must be met and the types must be equal.
      Overrides:
        `matches` in class `Line.Info`
      Parameters:
        `info` - the info object for which the match is queried
      Returns:
        `true` if the specified object matches this one, `false` otherwise

    - #### equals

          public final boolean equals​(Object obj)

      Finalizes the equals method.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - the reference object with which to compare.
      Returns:
        `true` if this object is the same as the obj argument; `false` otherwise.
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### hashCode

          public final int hashCode​()

      Finalizes the hashCode method.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code value for this object.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### toString

          public final String toString​()

      Provides a `String` representation of the port.
      Overrides:
        `toString` in class `Line.Info`
      Returns:
        a string that describes the port