public int[] getEncodings() { List<Integer> v = new ArrayList<Integer>(); if (requestCursorUpdates) { v.add(new Integer(MASK_ENCODING_RICHCURSOR)); // Rich Cursor v.add(new Integer(MASK_ENCODING_XCURSOR)); // X Cursor if (!ignoreCursorUpdates) { v.add(new Integer(MASK_ENCODING_POINTERPOS)); // Pointer // pos } } v.add(new Integer(preferredEncoding)); if (useCopyRect) { v.add(new Integer(ENCODING_COPYRECT)); } for (RFBEncoding e : encodings.values()) { if (e.getType() != preferredEncoding && e.getType() != ENCODING_COPYRECT && !e.isPseudoEncoding()) { v.add(new Integer(e.getType())); } } if (preferredEncoding == ENCODING_ZLIB || preferredEncoding == ENCODING_TIGHT) { if (compressLevel >= 0 && compressLevel <= 9) { v.add(new Integer(MASK_ENCODING_COMPRESS_LEVEL + compressLevel)); } } if (preferredEncoding == ENCODING_TIGHT && jpegQuality > -1) { v.add(new Integer(MASK_ENCODING_JPEG_QUALITY + jpegQuality)); } v.add(new Integer(MASK_ENCODING_LAST_RECT)); v.add(new Integer(MASK_ENCODING_NEW_SIZE)); int[] ret = new int[v.size()]; for (int i = 0; i < v.size(); i++) { ret[i] = v.get(i); } return ret; }
public void registerEncoding(RFBEncoding encoder) { encodings.put(String.valueOf(encoder.getType()), encoder); }