
com.github.moaxcp.x11.protocol.xinerama.XineramaPlugin Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of x11-protocol-xinerama Show documentation
Show all versions of x11-protocol-xinerama Show documentation
An implementation of the x11 xinerama protocol in java
package com.github.moaxcp.x11.protocol.xinerama;
import com.github.moaxcp.x11.protocol.X11Input;
import com.github.moaxcp.x11.protocol.XError;
import com.github.moaxcp.x11.protocol.XEvent;
import com.github.moaxcp.x11.protocol.XGenericEvent;
import com.github.moaxcp.x11.protocol.XProtocolPlugin;
import com.github.moaxcp.x11.protocol.XRequest;
import java.io.IOException;
import java.util.Optional;
import lombok.Getter;
import lombok.Setter;
public class XineramaPlugin implements XProtocolPlugin {
@Getter
@Setter
private byte majorOpcode;
@Getter
@Setter
private byte firstEvent;
@Getter
@Setter
private byte firstError;
public String getPluginName() {
return "xinerama";
}
public Optional getExtensionXName() {
return Optional.ofNullable("XINERAMA");
}
public Optional getExtensionName() {
return Optional.ofNullable("Xinerama");
}
public Optional getExtensionMultiword() {
return Optional.ofNullable(true);
}
public Optional getMajorVersion() {
return Optional.ofNullable((byte) 1);
}
public Optional getMinorVersion() {
return Optional.ofNullable((byte) 1);
}
@Override
public boolean supportedRequest(XRequest request) {
return request.getPluginName().equals(getPluginName());
}
@Override
public boolean supportedRequest(byte majorOpcode, byte minorOpcode) {
boolean isMajorOpcode = majorOpcode == getMajorOpcode();
if(minorOpcode == 0) {
return isMajorOpcode;
}
if(minorOpcode == 1) {
return isMajorOpcode;
}
if(minorOpcode == 2) {
return isMajorOpcode;
}
if(minorOpcode == 3) {
return isMajorOpcode;
}
if(minorOpcode == 4) {
return isMajorOpcode;
}
if(minorOpcode == 5) {
return isMajorOpcode;
}
return false;
}
@Override
public boolean supportedEvent(byte number) {
return false;
}
@Override
public boolean supportedError(byte code) {
return false;
}
@Override
public XRequest readRequest(byte majorOpcode, byte minorOpcode, X11Input in) throws IOException {
if(minorOpcode == QueryVersion.OPCODE) {
return QueryVersion.readQueryVersion(in);
}
if(minorOpcode == GetState.OPCODE) {
return GetState.readGetState(in);
}
if(minorOpcode == GetScreenCount.OPCODE) {
return GetScreenCount.readGetScreenCount(in);
}
if(minorOpcode == GetScreenSize.OPCODE) {
return GetScreenSize.readGetScreenSize(in);
}
if(minorOpcode == IsActive.OPCODE) {
return IsActive.readIsActive(in);
}
if(minorOpcode == QueryScreens.OPCODE) {
return QueryScreens.readQueryScreens(in);
}
throw new IllegalArgumentException("majorOpcode " + majorOpcode + ", minorOpcode " + minorOpcode + " is not supported");
}
@Override
public XEvent readEvent(byte number, boolean sentEvent, X11Input in) throws IOException {
throw new IllegalArgumentException("number " + number + " is not supported");
}
@Override
public XError readError(byte code, X11Input in) throws IOException {
throw new IllegalArgumentException("code " + code + " is not supported");
}
@Override
public XGenericEvent readGenericEvent(boolean sentEvent, byte extension, short sequenceNumber,
int length, short eventType, X11Input in) throws IOException {
throw new IllegalArgumentException("eventType " + eventType + " is not supported");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy