# 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 final Port.Info`
  `COMPACT_DISC`
  A type of port that gets audio from a CD-ROM drive.
  `static final Port.Info`
  `HEADPHONE`
  A type of port that sends audio to a headphone jack.
  `static final Port.Info`
  `LINE_IN`
  A type of port that gets audio from a line-level audio input jack.
  `static final Port.Info`
  `LINE_OUT`
  A type of port that sends audio to a line-level audio output jack.
  `static final Port.Info`
  `MICROPHONE`
  A type of port that gets audio from a built-in microphone or a microphone jack.
  `static final 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

  Modifier and Type
  Method
  Description
  `final boolean`
  `equals(Object obj)`
  Indicates whether the specified object is equal to this info object, returning `true` if the objects are the same.
  `String`
  `getName()`
  Obtains the name of the port.
  `final int`
  `hashCode()`
  Returns a hash code value for this info object.
  `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.
  `final String`
  `toString()`
  Returns a string representation of the info object.

  ### Methods declared in class Line.Info

  `getLineClass`
  Modifier and Type
  Method
  Description
  `Class<?>`
  `getLineClass()`
  Obtains the class of the line that this `Line.Info` object describes.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### 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 Details

  - ### 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 Details

  - ### 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)
    Indicates whether the specified object is equal to this info object, returning `true` if the objects are the same.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the reference object with which to compare
    Returns:
      `true` if the specified object is equal to this info object; `false` otherwise
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### hashCode

    public final int hashCode()
    Returns a hash code value for this info object.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value for this info object
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(Object)`

  - ### toString

    public final String toString()
    Returns a string representation of the info object.
    Overrides:
      `toString` in class `Line.Info`
    Returns:
      a string representation of the info object