diff options
Diffstat (limited to 'src/main/java/org/openslx/libvirt/domain/device/GraphicsSpice.java')
-rw-r--r-- | src/main/java/org/openslx/libvirt/domain/device/GraphicsSpice.java | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/libvirt/domain/device/GraphicsSpice.java b/src/main/java/org/openslx/libvirt/domain/device/GraphicsSpice.java new file mode 100644 index 0000000..be67200 --- /dev/null +++ b/src/main/java/org/openslx/libvirt/domain/device/GraphicsSpice.java @@ -0,0 +1,261 @@ +package org.openslx.libvirt.domain.device; + +import java.net.InetAddress; + +import org.openslx.libvirt.xml.LibvirtXmlNode; + +/** + * A graphics SPICE device node in a Libvirt domain XML document. + * + * @author Manuel Bentele + * @version 1.0 + */ +public class GraphicsSpice extends Graphics +{ + /** + * Default address of a SPICE graphics listener. + */ + public static final InetAddress DEFAULT_ADDRESS = InetAddress.getLoopbackAddress(); + + /** + * Default port of a SPICE graphics listener. + */ + public static final int DEFAULT_PORT = 59000; + + /** + * Creates an empty graphics SPICE device. + */ + public GraphicsSpice() + { + super(); + } + + /** + * Creates a graphics SPICE device representing an existing Libvirt XML graphics SPICE device + * element. + * + * @param xmlNode existing Libvirt XML graphics SPCIE device element. + */ + public GraphicsSpice( LibvirtXmlNode xmlNode ) + { + super( xmlNode ); + } + + /** + * Returns the state whether OpenGL hardware acceleration is enabled or not. + * + * @return state whether OpenGL hardware acceleration is enabled or not. + */ + public boolean isOpenGlEnabled() + { + return this.getXmlElementAttributeValueAsBool( "gl", "enable" ); + } + + /** + * Sets the state whether OpenGL hardware acceleration is enabled or not. + * + * @param enabled state whether OpenGL hardware acceleration is enabled or not. + */ + public void setOpenGl( boolean enabled ) + { + this.setXmlElementAttributeValueYesNo( "gl", "enable", enabled ); + } + + /** + * Returns the image compression type. + * + * @return image compression type. + */ + public ImageCompression getImageCompression() + { + final String imageCompression = this.getXmlElementAttributeValue( "image", "compression" ); + return ImageCompression.fromString( imageCompression ); + } + + /** + * Sets the image compression type. + * + * @param type image compression type. + */ + public void setImageCompression( ImageCompression type ) + { + this.setXmlElementAttributeValue( "image", "compression", type.toString() ); + } + + /** + * Checks if audio playback compression is enabled or not. + * + * @return state whether audio playback compression is enabled or not. + */ + public boolean isPlaybackCompressionOn() + { + return this.getXmlElementAttributeValueAsBool( "playback", "compression" ); + } + + /** + * Sets the state whether audio playback compression is enabled or not. + * + * @param enabled state whether audio playback compression is enabled or not. + */ + public void setPlaybackCompression( boolean enabled ) + { + this.setXmlElementAttributeValueOnOff( "playback", "compression", enabled ); + } + + /** + * Returns the streaming mode. + * + * @return streaming mode type. + */ + public StreamingMode getStreamingMode() + { + final String streamingMode = this.getXmlElementAttributeValue( "streaming", "mode" ); + return StreamingMode.fromString( streamingMode ); + } + + /** + * Sets the streaming mode. + * + * @param type streaming mode type. + */ + public void setStreamingMode( StreamingMode type ) + { + this.setXmlElementAttributeValue( "streaming", "mode", type.toString() ); + } + + /** + * Creates a non-existent graphics SPICE device as Libvirt XML device element. + * + * @param xmlNode Libvirt XML node of the Libvirt XML device that is created. + * @return created graphics SPICE device instance. + */ + public static GraphicsSpice createInstance( LibvirtXmlNode xmlNode ) + { + return GraphicsSpice.newInstance( xmlNode ); + } + + /** + * Creates a graphics SPICE device representing an existing Libvirt XML graphics SPICE device + * element. + * + * @param xmlNode existing Libvirt XML graphics SPICE device element. + * @return graphics SPICE device instance. + */ + public static GraphicsSpice newInstance( LibvirtXmlNode xmlNode ) + { + return new GraphicsSpice( xmlNode ); + } + + /** + * Image compression type of graphics device. + * + * @author Manuel Bentele + * @version 1.0 + */ + public enum ImageCompression + { + // @formatter:off + AUTO_GLZ( "auto_glz" ), + AUTO_LZ ( "auto_lz" ), + QUIC ( "quic" ), + GLZ ( "glz" ), + LZ ( "lz" ), + OFF ( "off" ); + // @formatter:on + + /** + * Name of graphics device image compression type. + */ + private String type = null; + + /** + * Creates graphics device image compression type. + * + * @param type valid name of the graphics device image compression type in a Libvirt domain + * XML document. + */ + ImageCompression( String type ) + { + this.type = type; + } + + @Override + public String toString() + { + return this.type; + } + + /** + * Creates graphics device image compression type from its name with error check. + * + * @param type name of the graphics device image compression type in a Libvirt domain XML + * document. + * @return valid graphics device image compression type. + */ + public static ImageCompression fromString( String type ) + { + for ( ImageCompression t : ImageCompression.values() ) { + if ( t.type.equalsIgnoreCase( type ) ) { + return t; + } + } + + return null; + } + } + + /** + * Streaming mode type of graphics device. + * + * @author Manuel Bentele + * @version 1.0 + */ + public enum StreamingMode + { + // @formatter:off + ALL ( "all" ), + FILTER( "filter" ), + OFF ( "off" ); + // @formatter:on + + /** + * Name of graphics device image compression type. + */ + private String type = null; + + /** + * Creates graphics device streaming mode type. + * + * @param type valid name of the graphics device streaming mode type in a Libvirt domain XML + * document. + */ + StreamingMode( String type ) + { + this.type = type; + } + + @Override + public String toString() + { + return this.type; + } + + /** + * Creates graphics device streaming mode type from its name with error check. + * + * @param type name of the graphics device streaming mode type in a Libvirt domain XML + * document. + * @return valid graphics device streaming mode type. + */ + public static StreamingMode fromString( String type ) + { + for ( StreamingMode t : StreamingMode.values() ) { + if ( t.type.equalsIgnoreCase( type ) ) { + return t; + } + } + + return null; + } + } +} |