consts.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. class Enum(object):
  2. @classmethod
  3. def tostring(cls, type):
  4. return cls._mapping.get(type, 'unknown')
  5. class BitmapFormat(Enum):
  6. BIT_8 = 3
  7. BIT_15 = 4
  8. BIT_24 = 5
  9. _mapping = {
  10. BIT_8: 'BIT_8',
  11. BIT_15: 'BIT_15',
  12. BIT_24: 'BIT_24',
  13. }
  14. class BitmapType(Enum):
  15. JPEG = 1
  16. GIF89A = 2
  17. PNG = 3
  18. _mapping = {
  19. JPEG: 'JPEG',
  20. GIF89A: 'GIF89A',
  21. PNG: 'PNG',
  22. }
  23. FileExtensions = {
  24. JPEG: '.jpeg',
  25. GIF89A: '.gif',
  26. PNG: '.png'
  27. }
  28. class GradientSpreadMode(Enum):
  29. PAD = 0
  30. REFLECT = 1
  31. REPEAT = 2
  32. _mapping = {
  33. PAD: 'pad',
  34. REFLECT: 'reflect',
  35. REPEAT: 'repeat',
  36. }
  37. class GradientType(Enum):
  38. LINEAR = 1
  39. RADIAL = 2
  40. _mapping = {
  41. LINEAR: 'LINEAR',
  42. RADIAL: 'RADIAL',
  43. }
  44. class LineScaleMode(Enum):
  45. NONE = 0
  46. HORIZONTAL = 1
  47. NORMAL = 2
  48. VERTICAL = 3
  49. _mapping = {
  50. NONE: 'none',
  51. HORIZONTAL: 'horizontal',
  52. NORMAL: 'normal',
  53. VERTICAL: 'vertical',
  54. }
  55. class SpreadMethod(Enum):
  56. PAD = 0
  57. REFLECT = 1
  58. REPEAT = 2
  59. _mapping = {
  60. PAD: 'pad',
  61. REFLECT: 'reflect',
  62. REPEAT: 'repeat',
  63. }
  64. class InterpolationMethod(Enum):
  65. RGB = 0
  66. LINEAR_RGB = 1
  67. _mapping = {
  68. RGB: 'RGB',
  69. LINEAR_RGB: 'LINEAR_RGB',
  70. }
  71. class LineJointStyle(Enum):
  72. ROUND = 0
  73. BEVEL = 1
  74. MITER = 2
  75. _mapping = {
  76. ROUND: 'ROUND',
  77. BEVEL: 'BEVEL',
  78. MITER: 'MITER',
  79. }
  80. class LineCapsStyle(Enum):
  81. ROUND = 0
  82. NO = 1
  83. SQUARE = 2
  84. _mapping = {
  85. ROUND: 'ROUND',
  86. NO: 'NO',
  87. SQUARE: 'SQUARE',
  88. }
  89. class TextAlign(Enum):
  90. LEFT = 0
  91. RIGHT = 1
  92. CENTER = 2
  93. JUSTIFY = 3
  94. _mapping = {
  95. LEFT: 'left',
  96. RIGHT: 'right',
  97. CENTER: 'center',
  98. JUSTIFY: 'justify',
  99. }
  100. class BlendMode(Enum):
  101. Normal = 0
  102. Normal_1 = 1
  103. Layer = 2
  104. Multiply = 3
  105. Screen = 4
  106. Lighten = 5
  107. Darken = 6
  108. Difference = 7
  109. Add = 8
  110. Subtract = 9
  111. Invert = 10
  112. Alpha = 11
  113. Erase = 12
  114. Overlay = 13
  115. Hardlight = 14
  116. _mapping = {
  117. Normal: "Normal",
  118. Normal_1: "Normal",
  119. Layer: "Layer",
  120. Multiply: "Multiply",
  121. Screen: "Screen",
  122. Lighten: "Lighten",
  123. Darken: "Darken",
  124. Difference: "Difference",
  125. Add: "Add",
  126. Subtract: "Subtract",
  127. Invert: "Invert",
  128. Alpha: "Alpha",
  129. Erase: "Erase",
  130. Overlay: "Overlay",
  131. Hardlight: "Hardlight",
  132. }
  133. class AudioSampleRate(Enum):
  134. Hz5k512 = 0
  135. Hz11k025 = 1
  136. Hz22k05 = 2
  137. Hz44k1 = 3
  138. _mapping = {
  139. Hz5k512: '5.512kHz',
  140. Hz11k025: '11.025kHz',
  141. Hz22k05: '22.05kHz',
  142. Hz44k1: '44.1kHz',
  143. }
  144. Rates = {
  145. Hz5k512: 5512,
  146. Hz11k025: 11025,
  147. Hz22k05: 22050,
  148. Hz44k1: 44100,
  149. }
  150. class AudioChannels(Enum):
  151. Mono = 0
  152. Stereo = 1
  153. _mapping = {
  154. Mono: 'Mono',
  155. Stereo: 'Stereo',
  156. }
  157. Channels = {
  158. Mono: 1,
  159. Stereo: 2
  160. }
  161. class AudioSampleSize(Enum):
  162. b8 = 0
  163. b16 = 1
  164. _mapping = {
  165. b8: '8-bit',
  166. b16: '16-bit',
  167. }
  168. Bits = {
  169. b8: 8,
  170. b16: 16
  171. }
  172. class AudioCodec(Enum):
  173. UncompressedNativeEndian = 0
  174. ADPCM = 1
  175. MP3 = 2
  176. UncompressedLittleEndian = 3
  177. Nellymoser16kHz = 4
  178. Nellymoser8kHz = 5
  179. Nellymoser = 6
  180. Speex = 11
  181. _mapping = {
  182. UncompressedNativeEndian: 'UncompressedNativeEndian',
  183. ADPCM: 'ADPCM',
  184. MP3: 'MP3',
  185. UncompressedLittleEndian: 'UncompressedLittleEndian',
  186. Nellymoser16kHz: 'Nellymoser16kHz',
  187. Nellymoser8kHz: 'Nellymoser8kHz',
  188. Nellymoser: 'Nellymoser',
  189. Speex: 'Speex',
  190. }
  191. MinimumVersions = {
  192. UncompressedNativeEndian: 1,
  193. ADPCM: 1,
  194. MP3: 4,
  195. UncompressedLittleEndian: 4,
  196. Nellymoser16kHz: 10,
  197. Nellymoser8kHz: 10,
  198. Nellymoser: 6,
  199. Speex: 10,
  200. }
  201. FileExtensions = {
  202. MP3: '.mp3',
  203. # arbitrary container
  204. UncompressedNativeEndian: '.wav',
  205. UncompressedLittleEndian: '.wav',
  206. ADPCM: '.wav',
  207. # fictitious
  208. Nellymoser16kHz: '.nel',
  209. Nellymoser8kHz: '.nel',
  210. Nellymoser: '.nel',
  211. Speex: '.spx',
  212. }
  213. MimeTypes = {
  214. MP3: 'audio/mpeg',
  215. UncompressedNativeEndian: 'audio/wav',
  216. UncompressedLittleEndian: 'audio/wav',
  217. ADPCM: 'audio/wav',
  218. # assume ogg container?
  219. Speex: 'audio/ogg',
  220. # punt
  221. Nellymoser16kHz: 'application/octet-stream',
  222. Nellymoser8kHz: 'application/octet-stream',
  223. Nellymoser: 'application/octet-stream',
  224. }
  225. class ProductEdition(Enum):
  226. DeveloperEdition = 0
  227. FullCommercialEdition = 1
  228. NonCommercialEdition = 2
  229. EducationalEdition = 3
  230. NotForResaleEdition = 4
  231. TrialEdition = 5
  232. NoEdition = 6
  233. _mapping = {
  234. DeveloperEdition: 'Developer edition',
  235. FullCommercialEdition: 'Full commercial',
  236. NonCommercialEdition: 'Non-commercial',
  237. EducationalEdition: 'Educational',
  238. NotForResaleEdition: 'Not for resale',
  239. TrialEdition: 'Trial',
  240. NoEdition: 'None',
  241. }
  242. class ProductKind(Enum):
  243. Unknown = 0
  244. FlexForJ2EE = 1
  245. FlexForDotNET = 2
  246. AdobeFlex = 3
  247. _mapping = {
  248. Unknown: 'Unknown',
  249. FlexForJ2EE: 'Flex for J2EE',
  250. FlexForDotNET: 'Flex for .NET',
  251. AdobeFlex: 'Adobe Flex',
  252. }
  253. class VideoCodec(Enum):
  254. SorensonH263 = 2
  255. ScreenVideo = 3
  256. VP6 = 4
  257. VP6Alpha = 5
  258. _mapping = {
  259. SorensonH263: 'Sorenson H.263',
  260. ScreenVideo: 'Screen video',
  261. VP6: 'VP6',
  262. VP6Alpha: 'VP6 with alpha',
  263. }
  264. MinimumVersions = {
  265. SorensonH263: 6,
  266. ScreenVideo: 7,
  267. VP6: 8,
  268. VP6Alpha: 8,
  269. }
  270. class MPEGVersion(Enum):
  271. MPEG2_5 = 0
  272. RFU = 1
  273. MPEG2 = 2
  274. MPEG1 = 3
  275. _mapping = {
  276. MPEG2_5: 'MPEG2.5',
  277. RFU: 'Reserved',
  278. MPEG2: 'MPEG2',
  279. MPEG1: 'MPEG1',
  280. }
  281. class MPEGLayer(Enum):
  282. RFU = 0
  283. Layer3 = 1
  284. Layer2 = 2
  285. Layer1 = 3
  286. _mapping = {
  287. RFU: 'Reserved',
  288. Layer3: 'Layer 3',
  289. Layer2: 'Layer 2',
  290. Layer1: 'Layer 1',
  291. }