View Javadoc

1   package de.desy.acop.video.displayer;
2   
3   /**
4    * Image flag enumeration
5    * 
6    * @author mdavid
7    * 
8    */
9   public enum ImageFlag {
10  	/**
11  	 * if set, appended video data is ordered little endian (on video format
12  	 * types where this is applicable)
13  	 */
14  	LITTLE_ENDIAN_BYTE_ORDER(0x1),
15  
16  	/**
17  	 * If set, original image data (first digital image data) can be restored
18  	 * out of the appended image bits
19  	 */
20  	IMAGE_LOSSLESS(0x2),
21  
22  	/**
23  	 * If set, image was flipped around horizontal axis on its way
24  	 */
25  	HORIZONTAL_FLIP_180(0x4),
26  
27  	/**
28  	 * If set, image was flipped around vertical axis on its way
29  	 */
30  	VERTICAL_FLIP_180(0x8);
31  
32  	private static final String LITTLEENDIAN = "LITTLEENDIAN";
33  	private static final String BIGENDIAN = "BIGENDIAN";
34  	private static final String LOSSLESS = " LOSSLESS";
35  	private static final String LOSSY = " LOSSY";
36  	private static final String HORIZONTALFLIP180 = " HORIZONTAL_FLIP_180";
37  	private static final String VERTICALFLIP180 = " VERTICAL_FLIP_180";
38  
39  	private final int id;
40  
41  	ImageFlag(int id) {
42  		this.id = id;
43  	}
44  
45  	public int getId() {
46  		return id;
47  	}
48  
49  	/**
50  	 * Decodes flags integer into human readable string format
51  	 * 
52  	 * @param flags
53  	 * @return string representation of the passed aFlags
54  	 *         (frameHeader.imageFlags)
55  	 */
56  	public static String toString(int flags) {
57  		StringBuilder sb = new StringBuilder();
58  
59  		if ((flags & ImageFlag.LITTLE_ENDIAN_BYTE_ORDER.getId()) != 0)
60  			sb.append(LITTLEENDIAN);
61  		else
62  			sb.append(BIGENDIAN);
63  
64  		if ((flags & ImageFlag.IMAGE_LOSSLESS.getId()) != 0)
65  			sb.append(LOSSLESS);
66  		else
67  			sb.append(LOSSY);
68  
69  		if ((flags & ImageFlag.HORIZONTAL_FLIP_180.getId()) != 0)
70  			sb.append(HORIZONTALFLIP180);
71  
72  		if ((flags & ImageFlag.VERTICAL_FLIP_180.getId()) != 0)
73  			sb.append(VERTICALFLIP180);
74  
75  		return sb.toString();
76  	}
77  }