/*
* @(#)CaptureDeviceInfo.java 1.12 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media;
import javax.media.format.*;
import java.io.Serializable;
/**
* A <CODE>CaptureDeviceInfo</CODE> object contains information about a particular capture device.
* @since JMF 2.0
*/
public class CaptureDeviceInfo implements Serializable {
/**
* A <CODE>String</CODE> that contains the name of a device.
*/
protected String name;
/**
* A <CODE>MediaLocator</CODE> that identifies a device.
*/
protected MediaLocator locator = null;
/**
* The output formats supported by a device.
*/
protected Format [] formats = null;
/**
* Constructs a <CODE>CaptureDeviceInfo</CODE> object with the specified name, media
* locator, and array of <CODE>Format</CODE> objects.
* @param name A <CODE>String</CODE> that contains the name of the device.
* @param locator The <CODE>MediaLocator</CODE> that uniquely specifies the device.
* @param formats An array of the output formats supported by the device.
*/
public CaptureDeviceInfo(String name, MediaLocator locator, Format [] formats) {
this.name = name;
this.locator = locator;
this.formats = formats;
}
/**
* Constructs a <CODE>CaptureDeviceInfo</CODE> object with null attributes.
*/
public CaptureDeviceInfo() {
}
/**
* Gets a list of the output formats supported by this device.
* @return A <CODE>Format</CODE> array that contains the output formats supported by this device.
*/
public Format [] getFormats() {
return formats;
}
/**
* Gets the <code>MediaLocator</code> needed to create a <code>DataSource</code>
* for this device through the <code>Manager</code>. The <CODE>MediaLocator</CODE>
* is unique--no two devices can use the same locator.
*
* @return The <CODE>MediaLocator</CODE> that uniquely specifies this device.
*/
public MediaLocator getLocator() {
return locator;
}
/**
* Gets the name of this device.
* The name might include the device name, vendor name, and a version number.
* @return A <CODE>String</CODE> that describes this device.
*/
public String getName() {
return name;
}
public boolean equals(Object obj) {
if (!(obj instanceof CaptureDeviceInfo))
return false;
CaptureDeviceInfo cdi = (CaptureDeviceInfo) obj;
return
name != null && locator != null && formats != null &&
name.equals(cdi.getName()) &&
locator.equals(cdi.getLocator()) &&
formats.equals(cdi.getFormats());
}
public String toString() {
String result = name + " : " + locator + "\n";
if (formats != null) {
for (int i = 0; i < formats.length; i++) {
result += formats[i] + "\n";
}
}
return result;
}
}
|