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
`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
`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
`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.
`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.
`String` `toString()` Provides a `String` representation of the port.

### Methods declared in class javax.sound.sampled.Line.Info

`getLineClass`

### Methods declared in 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)

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(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