
de.pitkley.jmccs.monitor.Monitor Maven / Gradle / Ivy
package de.pitkley.jmccs.monitor;
import java.io.Closeable;
/**
* This interface is for interacting with a physical monitor and should be implemented by system-specific classes.
*/
public interface Monitor extends Closeable {
/**
* Checks if this monitor is the main monitor.
*
* Many operating systems have the notion of a main monitor. This is the monitor that e.g. the taskbar is
* associated to.
*
* @return true
if the current monitor is the main monitor, false
if it isn't or if the
* operating system doesn't have the notion of main monitor
*/
boolean isMainMonitor();
/**
* Checks if the supplied {@link VCPCode} is supported by the monitor.
*
* @param vcpCode the VCP-code to check
* @return true
if the code is supported, otherwise false
*/
boolean isVCPCodeSupported(VCPCode vcpCode);
/**
* Tries to get the value that is associated to the given {@link VCPCode} from the monitor.
*
* @param vcpCode the VCP-code to retrieve the value for
* @return a {@link VCPReply} containing the minimum, maxmimum and current value for the VCP-code
*/
VCPReply getVCPFeature(VCPCode vcpCode);
/**
* Tries to set the value for the given {@link VCPCode} to the monitor.
*
* @param vcpCode the VCP-code to set the value for
* @param value the value to set the VCP-code to
* @return true
if setting the value succeeded, otherwise false
*/
boolean setVCPFeature(VCPCode vcpCode, int value);
/**
* Checks if the monitor has been closed.
*
* Closing a monitor generally refers to freeing up any system-resources or clearing any handles an implementation
* might have. If there is no need for closing monitors, this method including {@link Closeable#close()} can be
* ignored.
*
* @return true
if the monitor has already been closed, otherwise false
*/
boolean isClosed();
}