drv_blt_interface.h 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531
  1. #ifndef _BLT_IOCTL_H_
  2. #define _BLT_IOCTL_H_
  3. #include <linux/ioctl.h>
  4. #include "drv_types.h"
  5. #define BLT_CMD_TEXP 0x01 //Text Expansion
  6. #define BLT_CMD_GEXP 0x02 //Graphic Expansion
  7. #define BLT_CMD_CFILL 0x04 //Color Fill
  8. #define BLT_CMD_CLUT 0x08 //CLUT DMA Update
  9. #define BLT_CMD_SCL 0x10 //Stretch/Shrink
  10. #define BLT_CMD_CP 0x20 //Source Copy
  11. #define BLT_CMD_BLD 0x40 //Blending
  12. #define BLT_CMD_SWINT 0x80 //SW Interrupt
  13. #define BLT_CMD_LINE 0x00800004 //Line draw
  14. #define BLT_CMD_ELLIPSE 0x00400004 //
  15. #define BLT_CMD_ANTI_ALIAS 0x00000010
  16. #define BLT_CMD_POLYGON_FILL 0x00040040
  17. #define BLT_CMD_GRADIENT_FILL 0x00200004
  18. #define BITS_PER_PIXEL_1 1
  19. #define BITS_PER_PIXEL_2 2
  20. #define BITS_PER_PIXEL_4 4
  21. #define BITS_PER_PIXEL_8 8
  22. #define BITS_PER_PIXEL_16 16
  23. #define BITS_PER_PIXEL_24 24
  24. #define BITS_PER_PIXEL_32 32
  25. #define BYTE_PER_PIXEL_8 1
  26. #define BYTE_PER_PIXEL_24 3
  27. #define DRV_BITS_PER_PIXEL_1 1
  28. #define DRV_BITS_PER_PIXEL_2 0
  29. #define DRV_BITS_PER_PIXEL_4 2
  30. #define DRV_BITS_PER_PIXEL_8 3
  31. #define DRV_BITS_PER_PIXEL_16 4
  32. #define DRV_BITS_PER_PIXEL_24 5
  33. #define DRV_BITS_PER_PIXEL_32 6
  34. //********* Ioctl Blt Rotation AP use //x16 version define
  35. #define ROT_DIRECTION_CLOCKWISE 1
  36. #define ROT_DIRECTION_COUNTERCLOCKWISE 2
  37. #define ROT_DIRECTION_HFLIP 3
  38. #define ROT_DIRECTION_VFLIP 4
  39. #define ROT_180_ANGLE 5
  40. //********* x26 will let AP to use
  41. #define MODE_2ROT_NORMAL 0x70000000//copy //add 0x200 for check only
  42. #define MODE_2ROT_V_FLIP 0x70100000
  43. #define MODE_2ROT_H_FLIP 0x70200000
  44. #define MODE_2ROT_180_ANGLE 0x70300000
  45. #define MODE_2ROT_90_ANGLE_H_FLIP 0x70400000
  46. #define MODE_2ROT_270_ANGLE 0x70500000
  47. #define MODE_2ROT_90_ANGLE 0x70600000
  48. #define MODE_2ROT_90_ANGLE_V_FLIP 0x70700000
  49. #define MODE_ALPHA_INVERT 0xE0100000
  50. #define MODE_BILINEAR_ENABLE 0xE0200000
  51. //******** 368
  52. //------ 0x 1 1 8 =>
  53. #define BLT_CPE_ALPHA_REPLACE_BSHIFT 8
  54. #define BLT_CPE_ALPHA_CHANGE_BSHIFT 16
  55. #define BLT_CPE_ROTE_BSHIFT 17
  56. #define BLT_CPE_ALPHA_REPLACE_ENABLED_BSHIFT 23
  57. #define BLT_CPE_ALPHA_INVERSE_BSHIFT 24
  58. #define BLT_CPE_DITHER_ENABLED_BSHIFT 25
  59. #define BLT_CPE_FUN_SHIFT 20 //22:20
  60. #define BLT_CPE_FUN_CP 0
  61. #define BLT_CPE_FUN_COMPRE 1
  62. #define BLT_CPE_FUN_DE_COM 2
  63. #define BLT_CPE_FUN_MERGE 3
  64. #define BLT_CPE_FUN_ROP 4
  65. //******** COMPRESS
  66. #define BLT_CP_COMPRESS_16A 0x00
  67. #define BLT_CP_FUNC_MASK 0x07 //22:20
  68. #define BLT_CP_COMPRESS_EN 0x01 //22:20 001b
  69. #define BLT_CP_COMPRESS_DE 0x02 //22:20 010b
  70. #define BLT_CP_COMPRESS_INVERSE_EN 0x05 //22:20 101b
  71. #define BLT_CP_COMPRESS_EN_NEW 0x06 //22:20 110b
  72. #define BLT_CP_COMPRESS_INVERSE_EN_NEW 0x07 //22:20 111b
  73. #define BLT_COMP_SATRT_ADDR 13 //13
  74. //------ 0x 1 3 0 =>
  75. #define BLT_CPE_TYPE_SHIFT 8 //12:8
  76. #define BLT_CPE_TYPE_ARGB8565_ARGB8565 0x00
  77. #define BLT_CPE_TYPE_ARGB8565_ARGB4444 0x01
  78. #define BLT_CPE_TYPE_8565_2222 0x02
  79. #define BLT_CPE_TYPE_ARGB8565_RGB565 0x03
  80. #define BLT_CPE_TYPE_MERGE_NORMAL 0x04
  81. #define BLT_CPE_TYPE_MERGE_420_YUV 0x05
  82. #define BLT_CPE_TYPE_MERGE_422_YUV 0x25 //13 12:8
  83. #define BLT_CPE_TYPE_MERGE_444_YUV 0x06
  84. #define BLT_CPE_TYPE_MERGE_420_VIP 0x07
  85. #define BLT_CPE_TYPE_MERGE_422_VIP 0x27 //13 12:8
  86. #define BLT_CPE_TYPE_MERGE_444_VIP 0x107 //16 12:8
  87. #define BLT_CPE_TYPE_MERGE_Gray_VIP 0x207 //17
  88. #define BLT_CPE_TYPE_RGBA8888_ARGB8565 0x08
  89. #define BLT_CPE_TYPE_RGB888_ARGB8565 0x09
  90. #define BLT_CPE_TYPE_RGBA5551_ARGB8565 0x0a
  91. #define BLT_CPE_TYPE_RGBA4444_ARGB8565 0x0b
  92. #define BLT_CPE_TYPE_RGB565_ARGB8565 0x0c
  93. #define BLT_CPE_TYPE_LA88_ARGB8565 0x0d
  94. #define BLT_CPE_TYPE_L8_ARGB8565 0x0e
  95. #define BLT_CPE_TYPE_A8_ARGB8565 0x0f
  96. #define BLT_CPE_TYPE_ARGB8888_ARGB8565 0x10
  97. #define BLT_CPE_TYPE_ARGB4444_ARGB8565 0x11
  98. #define BLT_CPE_TYPE_ARGB8565_A8 0x12
  99. #define BLT_CPE_TYPE_ARGB8565_L8 0x13
  100. #define BLT_CPE_TYPE_ARGB8565_L8_Gray 0x14
  101. #define BLT_CPE_TYPE_ABGR8888_ARGB8565 0x15
  102. #define BLT_CPE_TYPE_A8Y8_ARGB8565 0x16
  103. #define BLT_CPE_TYPE_L8_ARGB8555 0x17
  104. #define BLT_CPE_TYPE_ARGB8888_ARGB8888 0x19
  105. #define BLT_CPE_TYPE_ABGR8888_ARGB8888 0x1a
  106. #define BLT_CPE_TYPE_RGB888_ARGB8888 0x1b
  107. #define BLT_CPE_TYPE_RGB565_ARGB8888 0x1c
  108. #define BLT_CPE_TYPE_ARGB8888_RGB565 0x1d
  109. #define BLT_CPE_TYPE_ARGB8888_ARGB1555 0x1e
  110. #define BLT_CPE_TYPE_ARGB8565_ARGB1555 0x1f
  111. //Enable format mode for scaling, blending, scaling&blending, and compress after 331
  112. #define BLT_CPE_MODE_SHIFT 6 //7:6
  113. #define BLT_CPE_MODE_ARGB1555 0x1
  114. #define BLT_CPE_MODE_ARGB4444 0x2
  115. #define BLT_COMPARE_ARGB8565_ARGB8888 0x80000000 //
  116. #define BLT_COMPARE_ARGB4444_ARGB8565 (0x80000000 +BLT_CPE_TYPE_ARGB4444_ARGB8565)
  117. #define BLT_COMPARE_ARGB8565_ARGB4444 (0x80000000 +BLT_CPE_TYPE_ARGB8565_ARGB4444)\
  118. //******** 358
  119. #define BLT_H264MERGE_NORMAL 0x00180000 //not change OSD has use
  120. #define BLT_H264MERGE_420_YUV 0x001a0000 //not change OSD has use
  121. #define BLT_H264MERGE_422_YUV 0x001b0000 //not change OSD has use
  122. #define BLT_H264MERGE_444_YUV 0x001c0000 //not change OSD has use
  123. #define BLT_H264MERGE_420_VIP 0x001d0000 // 368
  124. #define BLT_H264MERGE_422_VIP 0x001e0000 // 368
  125. #define BLT_H264MERGE_444_VIP 0x00190000 // 368
  126. #define BLT_H264MERGE_Gray_VIP 0x00200000
  127. #define BLT_CURSOR_DATA_SW_SIZE (64 * 64 * 3) // 8 5 6 5 //12288 0x3000
  128. #define BLT_CURSOR_DATA_HW_SIZE (64 * 0x100) // It must 2 5 6 alig_ment //16384 0x4000
  129. //Androi_d Virtual Screen Width/Height
  130. //taco [ocean blue]
  131. #ifdef CONFIG_FB1366_768
  132. #define PS_AND_WIDTH 1366
  133. #define PS_AND_HEIGHT 768
  134. #endif
  135. #ifdef CONFIG_FB720
  136. #define PS_AND_WIDTH 1280
  137. #define PS_AND_HEIGHT 720
  138. #endif
  139. #ifdef CONFIG_FB1080
  140. #define PS_AND_WIDTH 1920
  141. #define PS_AND_HEIGHT 1080
  142. #endif
  143. #ifdef CONFIG_FB768
  144. #define PS_AND_WIDTH 1024
  145. #define PS_AND_HEIGHT 768
  146. #endif
  147. #if !defined(PS_AND_WIDTH) || !defined(PS_AND_HEIGHT)
  148. #define PS_AND_WIDTH 1920
  149. #define PS_AND_HEIGHT 1080
  150. #endif
  151. //~taco [ocean blue]
  152. //CC Virtual Screen Width/Height
  153. #define PS_CC_WIDTH 16*34//16*32//720
  154. #define PS_CC_HEIGHT 26*15//576
  155. //Subtitle Virtual Screen Width/Height
  156. #define PS_SUBTITLE_WIDTH 720
  157. #define PS_SUBTITLE_HEIGHT 576
  158. //Teletex Virtual Screen Width/Height
  159. #define PS_TT_WIDTH 12*40//720
  160. #define PS_TT_HEIGHT 10*25//576
  161. //Menu Virtual Screen Width/Height
  162. #define PS_MENU_WIDTH 683//600//720
  163. #define PS_MENU_HEIGHT 384//300//576
  164. #define PS_MEDIA_WIDTH 1366
  165. #define PS_MEDIA_HEIGHT 768
  166. //OSDGAME Virtual Sceen Width/Height
  167. #define PS_GAME_WIDTH 640
  168. #define PS_GAME_HEIGHT 480
  169. #define OSD_PIXEL_DEPTH 24 // bits per pixel(RGB(5:6:5) + 8-bit Alpha
  170. #define OSD_PIXEL_DEPTH_IN_BYTE 3 //(OSD_PIXEL_DEPTH / 8)
  171. #define OSD_FAILURE 0
  172. #define OSD_SUCCESS 1
  173. //for update opton Show effect mode
  174. #define UPDATE_NOW 0x01
  175. #define UPDATE_FADE_IN 0x02
  176. #define UPDATE_FADE_OUT 0x04
  177. #define UPDATE_FADE_MOV 0x08
  178. #define UPDATE_PULL_DOWN_IN 0x10
  179. #define UPDATE_PULL_DOWN_OUT 0x20
  180. #define UPDATE_PULL_UP_IN 0x40
  181. #define UPDATE_PULL_UP_OUT 0x80
  182. #if 1//ENABLE_BLT_FADE_IN_OUT
  183. //pull I_O => hide mov_in + dis_play mov_out
  184. #define UPDATE_PULL_I_O_2DOWN 0x0100
  185. #define UPDATE_PULL_I_O_2UP 0x0200
  186. #define UPDATE_PULL_I_O_2LEFT 0x0400
  187. #define UPDATE_PULL_I_O_2RIGHT 0x0800
  188. #define UPDATE_PULL_I_O_DIR_MASK (UPDATE_PULL_I_O_2DOWN|UPDATE_PULL_I_O_2UP|UPDATE_PULL_I_O_2LEFT|UPDATE_PULL_I_O_2RIGHT) //driver only
  189. #endif
  190. #define TEXT_MODE_ITALIC 0x00000001
  191. #define TEXT_MODE_UNDERLINE 0x00000002
  192. #define TEXT_MODE_DOUBLE_WIDTH 0x00000004
  193. #define TEXT_MODE_DOUBLE_HEIGHT 0x00000008
  194. #define TEXT_MODE_FLASH 0x00000010 //Don't set FLASH directly, Set the following flash mode instead
  195. #define TEXT_MODE_FLASH_FG_TO_BG (0x00000020 | TEXT_MODE_FLASH)
  196. #define TEXT_MODE_FLASH_FG_INVERT (0x00000040 | TEXT_MODE_FLASH)
  197. #define TEXT_MODE_FLASH_FG_BG_INVERT (0x00000080 | TEXT_MODE_FLASH)
  198. #define TEXT_MODE_SCROLL 0x00000100 //Don't set SCROLL directly, set the following scroll mode instead
  199. #define TEXT_MODE_SCROLL_UP (0x00000200 | TEXT_MODE_SCROLL)
  200. #define TEXT_MODE_SCROLL_DOWN (0x00000400 | TEXT_MODE_SCROLL)
  201. #define TEXT_MODE_SCROLL_LEFT (0x00000800 | TEXT_MODE_SCROLL)
  202. #define TEXT_MODE_SCROLL_RIGHT (0x00001000 | TEXT_MODE_SCROLL)
  203. #define TEXT_MODE_LARGE_FONT 0x00002000
  204. #define TEXT_MODE_SMALL_FONT 0x00004000
  205. #define TEXT_MODE_ITALIC_HEAD (0x00008000 | TEXT_MODE_ITALIC)
  206. #define TEXT_MODE_ITALIC_TAIL (0x00010000 | TEXT_MODE_ITALIC)
  207. #define TEXT_MODE_FORCE_COVER 0x00020000 // for C_C will trans_patent window
  208. #define TEXT_MODE_FLASH_FG_TO_BG_PHASE_INVERT (0x00040000 | TEXT_MODE_FLASH)
  209. #define TEXT_MODE_FLASH_FG_TO_USERDEF (0x00080000 | TEXT_MODE_FLASH)
  210. #define TEXT_MODE_FLASH_RATE_SLOW 0
  211. #define TEXT_MODE_FLASH_RATE_FAST_PHASE_1 0x00100000
  212. #define TEXT_MODE_FLASH_RATE_FAST_PHASE_2 0x00200000
  213. #define TEXT_MODE_FLASH_RATE_FAST_PHASE_3 0x00300000
  214. #define TEXT_MODE_FLASH_RATE_MASK 0x00300000
  215. #define TEXT_MODE_EDGE_RIGHT_DROP 0x01000000 // S/W mode only
  216. #define TEXT_MODE_EDGE_RAISED 0x02000000 // S/W mode only
  217. #define TEXT_MODE_EDGE_DEPRESSED 0x04000000 // S/W mode only
  218. #define TEXT_MODE_EDGE_UNIFORM 0x08000000 // S/W mode only
  219. #define TEXT_MODE_EDGE_LEFT_DROP 0x10000000 // S/W mode only
  220. #define TEXT_MODE_EDGE_BY_HW 0x20000000 // should set by OSD_lib
  221. #define TEXT_MODE_EDGE_SW_ENABLE (TEXT_MODE_EDGE_RIGHT_DROP|TEXT_MODE_EDGE_RAISED|TEXT_MODE_EDGE_DEPRESSED|TEXT_MODE_EDGE_UNIFORM|TEXT_MODE_EDGE_LEFT_DROP) // for blt driver only
  222. #define TEXT_FOREGROUND 0
  223. #define TEXT_BACKGROUND 1
  224. #define TEXT_EDGE 2
  225. #define TEXT_SHADOW 3
  226. //special use in TEXT_MODE_FLAHS_FG_TO_USERDEF to define customize flash color
  227. #define TEXT_USERDEF_FOREGROUND 2
  228. #define TEXT_USERDEF_BACKGROUND 3
  229. #define TEXT_MODE_2ROT_NORMAL 0x40000000
  230. #define TEXT_MODE_2ROT_V_FLIP 0x40100000
  231. #define TEXT_MODE_2ROT_H_FLIP 0x40200000
  232. #define TEXT_MODE_2ROT_180_ANGLE 0x40300000
  233. #define TEXT_MODE_2ROT_90_ANGLE_H_FLIP 0x40400000
  234. #define TEXT_MODE_2ROT_270_ANGLE 0x40500000
  235. #define TEXT_MODE_2ROT_90_ANGLE 0x40600000
  236. #define TEXT_MODE_2ROT_90_ANGLE_V_FLIP 0x40700000
  237. #define BLT_MAX_PRIORITY_NUM 8
  238. //---------------------------------------------------------------------------------------
  239. typedef enum
  240. {
  241. PS_BOTTOM =0,
  242. PS_ANDROID,
  243. PS_CC,
  244. PS_SUBTITLE,
  245. PS_TT,
  246. PS_EX_TT,
  247. PS_OSD_GAME,
  248. PS_ESTICKER,
  249. PS_MEDIA,
  250. PS_MENU,
  251. PS_KEYPAD,
  252. PS_BLTAP,
  253. PS_PLANE_NUM,
  254. PS_REDO,
  255. PS_FLASH,
  256. PS_IOCTL
  257. }PLANE_STYLE;
  258. typedef enum
  259. {
  260. MODE_ORIGINAL =0,
  261. MODE_EBOOK,
  262. MODE_GAME,
  263. MODE_NUM
  264. }MEMORY_MODE;
  265. ///////////////////////Color Look Up Table///////////////////////////////////
  266. typedef enum
  267. {
  268. CR_ALPHA,
  269. CR_RED,
  270. CR_GREEN,
  271. CR_BLUE
  272. }COLOR_STYLE;
  273. typedef enum
  274. {
  275. CLUT_TYPE_ARGB,
  276. CLUT_TYPE_AYCC
  277. }CLUT_TYPE;
  278. enum //IOCTL MULTI FUNC
  279. {
  280. IMF_CUR_DATA_CHANGE_BY_BLT = 1, //should not use
  281. IMF_CUR_DATA_CHANGE_BY_AP , // size = 64 x 64 *3
  282. IMF_CUR_DATA_CHANGE_BY_BLT_HALF_W ,
  283. IMF_CUR_DATA_CHANGE_BY_BLT_HALF_H,
  284. IMF_PDP_CHNAGE_SIT
  285. };
  286. typedef enum
  287. {
  288. OSD_SSE_MOVE_FROM_LAST = 0, // not change use last value
  289. OSD_SSE_MOVE_FROM_LEFT = 0x1, //notice:: depend on iotcl.h
  290. OSD_SSE_MOVE_FROM_UP = 0x2,
  291. OSD_SSE_MOVE_FROM_RIGHT = 0x3,
  292. OSD_SSE_MOVE_FROM_DOWN = 0x4,
  293. OSD_SSE_MOVE_FROM_LEFT_UP = 0x5,
  294. OSD_SSE_MOVE_FROM_RIGHT_UP = 0x6,
  295. OSD_SSE_MOVE_FROM_LEFT_DOWN = 0x7,
  296. OSD_SSE_MOVE_FROM_RIGHT_DOWN = 0x8,
  297. OSD_SSE_MOVE_FROM_XY = 0x9, //selt set
  298. }OSD_SSE_MOVE_IN_DIRECTION; // Show Special Effect
  299. typedef enum
  300. {
  301. OSD_SSE_MOVE_TO_LAST = 0x0, // not change use last value
  302. OSD_SSE_MOVE_TO_LEFT = 0x11,
  303. OSD_SSE_MOVE_TO_UP = 0x12,
  304. OSD_SSE_MOVE_TO_RIGHT = 0x13,
  305. OSD_SSE_MOVE_TO_DOWN = 0x14,
  306. OSD_SSE_MOVE_TO_LEFT_UP = 0x15,
  307. OSD_SSE_MOVE_TO_RIGHT_UP = 0x16,
  308. OSD_SSE_MOVE_TO_LEFT_DOWN = 0x17,
  309. OSD_SSE_MOVE_TO_RIGHT_DOWN = 0x18,
  310. OSD_SSE_MOVE_TO_XY = 0x19, //selt set
  311. }OSD_SSE_MOVE_OUT_DIRECTION; // Show Special Effect
  312. typedef enum
  313. { //For use to recognize the font type, used to translate the index between unicode and font table
  314. FONT_TT = 1,
  315. FONT_TT_ITALIC, // 2
  316. FONT_CAPTION, // 3
  317. FONT_CAPTION_ITALIC, // 4
  318. FONT_SYSTEM, // 5
  319. FONT_EPG = FONT_SYSTEM, // 5
  320. FONT_CHINESE, // 6
  321. FONT_CCSTYLE, // 7
  322. FONT_CUSTOM, // 8
  323. FONT_MULTI_LANG0 // 9 //2081126
  324. }FONT_TYPE;
  325. //---------------------------------------------------------------------------------------
  326. typedef struct
  327. {
  328. UINT8 crBlue;
  329. UINT8 crGreen;
  330. UINT8 crRed;
  331. UINT8 crAlpha;
  332. }COLOR_ARGB, *PCOLOR_ARGB;
  333. typedef enum
  334. {
  335. RGB_888=0,
  336. BGR_888,
  337. YUV_888,
  338. }DATA_FORMAT;
  339. typedef struct
  340. {
  341. union
  342. {
  343. ULONG argb;
  344. ULONG aycc;
  345. COLOR_ARGB argb_byte;
  346. };
  347. }COLOR_ENTRY, *PCOLOR_ENTRY;
  348. typedef struct
  349. {
  350. ULONG ClutType:8; //CLUT_TYPE_ARGB: ARGB(8,8,8,8), CLUT_TYPE_AYCC: AYCC(8,8,8,8)
  351. ULONG StartEntry:8;
  352. ULONG EntryNums:16; // 1 ~ 255
  353. COLOR_ENTRY Entry[1];
  354. }CLU_TABLE, *PCLU_TABLE;
  355. typedef struct
  356. {
  357. ULONG a565:24;
  358. ULONG Reserved_1:8;
  359. }COLOR_A565, *PCOLOR_A565;
  360. typedef struct
  361. {
  362. ULONG blue:5;
  363. ULONG green:6;
  364. ULONG red:5;
  365. ULONG alpha:8;
  366. ULONG Reserved_2:8;
  367. }COLOR_A565_BYTE;
  368. typedef struct
  369. {
  370. union{
  371. COLOR_A565 ClrA565;
  372. COLOR_A565_BYTE ClrA565Byte;
  373. };
  374. }COLOR_24BIT;
  375. /////////////////////////////////////////////////////////////////////////////
  376. typedef struct _tagPOINT_
  377. {
  378. UINT32 nX:16;
  379. UINT32 nY:16;
  380. }S_POINT,* PS_POINT;
  381. typedef struct _tagSIZE_
  382. {
  383. UINT32 nWidth:16;
  384. UINT32 nHeight:16;
  385. }S_SIZE,* PS_SIZE;
  386. typedef struct _tagBlock_
  387. {
  388. S_POINT TopLeftPt;
  389. S_SIZE Size;
  390. }S_BLOCK,* PS_BLOCK;
  391. typedef struct _tagRECTANGLE_
  392. {
  393. UINT32 nLeft:16;
  394. UINT32 nTop:16;
  395. UINT32 nRight:16;
  396. UINT32 nBottom:16;
  397. }S_RECT,*PS_RECT;
  398. /*//////////////////////////// Font Table ///////////////////////////////////
  399. Font ---> ----------------- \
  400. Address | Char Code 0 | Font Offset, every char code should have the same Font Offset
  401. ----------------- /
  402. | Char Code 1 |
  403. -----------------
  404. |
  405. |
  406. -----------------
  407. | Char Code N |
  408. -----------------
  409. *///////////////////////////////////////////////////////////////////////
  410. typedef struct
  411. {
  412. //The byte length of the character, if it's not byte aligend, rounded up to
  413. //the nearest byte size.
  414. //For example, a 13*18, 2 bit per pixel font should have 468 bits.
  415. //CharLen = 59 byte(actual 58.5 byte)
  416. //CharW = 13
  417. //CharH = 18
  418. ULONG CharLen:16;
  419. ULONG CharW:8; //number of columns of the character
  420. ULONG CharH:8; //number of rows of the character
  421. UINT8 CharBmp[1]; //Should allocate size as FontOffset for each CHAR_CODE
  422. }CHAR_CODE, *PCHAR_CODE;
  423. typedef struct
  424. {
  425. ULONG FontOffset:16; //FontOffset value should be 16-byte aligned
  426. ULONG BitsPerPixel:8; //Value should be 1 or 2.
  427. //For 1bpp, 0 is background color, 1 is foreground color
  428. //For 2bpp, in addition to 0 and 1,
  429. //2 means shadow color and 3 means the edge color
  430. //4 may be used in TT 12x10x4, 6x5x4 DRCS
  431. ULONG FontType:8; //Enum values defined in FONT_TYPE
  432. UINT32 (*IndexTransformFun)(ULONG );
  433. //If the index of the unicode character is not the same to
  434. //the index of the font table, the value will not be NULL.
  435. //It'll be the function pointer that transform the index of
  436. //unicode character to the index of the font table
  437. UINT32 reserved1;
  438. ULONG reserved2:16;
  439. ULONG CharNums:16; //Char numbers of the font table
  440. CHAR_CODE Char[1]; //Font address should be 16-byte aligned
  441. }FONT_TABLE, *PFONT_TABLE;
  442. /////////////////////////////////////////////////////////////////////////////
  443. typedef struct
  444. {
  445. //If pCluTable is NULL, the following 4 color entry represents the real ARGB value of Backgournd, forground, edge and shadow color. if pCluTable is not NULL, the following 4 color represents the index of the color look up table. In the last case, only low byte is used. Cause the maximum index of the CLUT is 256.
  446. PCLU_TABLE pCluTable;
  447. COLOR_ENTRY Color[4]; //represent TEXT_BACKGROUND, TEXT_FOREGROUND, TEXT_EDGE and TEXT_SHADOW respectively
  448. ULONG TextMode; //eg. italic, flash, double width, double height, etc, the value could be XORed with the pre-defined TEXT_MODE_XXX value
  449. }TEXT_ATTRIBUTE, *PTEXT_ATTRIBUTE;
  450. typedef struct
  451. {
  452. PFONT_TABLE pFontTable;
  453. PTEXT_ATTRIBUTE pTextAttrib;
  454. S_BLOCK DestBlock;
  455. S_SIZE fontStrExpSize; // for Str _ Ex will as "Texp size" vs "virture" vs "true size"
  456. ULONG TextCount;
  457. union{
  458. UINT8 * pCharByte; //if pFontTable->CharNums <= 256, use pCharByte
  459. UINT16 * pCharUnicode; //if pFontTable->CharNums > 256, use pCharUnicode
  460. };
  461. }OSD_TEXT, * POSD_TEXT;
  462. typedef struct _BLT_CMD_UNIT_
  463. {
  464. ULONG BltCmd;
  465. void * pParam; //pass the following corresponding data structure with the BltCmd
  466. ULONG option[2];//option[0]has used for 1 bit
  467. }BLT_CMD_UNIT, *PBLT_CMD_UNIT;
  468. typedef struct _BLT_IOCTL_PARAM_
  469. {
  470. INT32 BlockIndex; //returned from driver
  471. ULONG bDisplay:8;
  472. ULONG Ps:7;
  473. ULONG bUsePTS:1;
  474. ULONG BltCmdNums:16;
  475. ULONG priority;
  476. ULONG Pts;
  477. ULONG PtsTimeOut;
  478. BLT_CMD_UNIT * pBltCmdUnit;
  479. }BLT_IOCTL_PARAM, *PBLT_IOCTL_PARAM;
  480. typedef struct _BLT_IOCTL_MULTI_FUNC_
  481. {
  482. ULONG functionMode;
  483. ULONG oneValue;
  484. ULONG moreDataSize;
  485. INT8 *pData;
  486. }BLT_IOCTL_MULTI_FUNC, *PBLT_IOCTL_MULTI_FUNC;
  487. typedef struct _CFILL_UNIT_
  488. {
  489. // the coordinate is relative to CFILL block Coordinate
  490. S_BLOCK RelBlock;
  491. ULONG Argb565Clr:24; //A:r:g:b 8:5:6:5
  492. ULONG Reserved_2:8;
  493. }CFILL_UNIT, *PCFILL_UNIT;
  494. #define CFILL_TYPE_BLOCK 0
  495. #define CFILL_TYPE_BACKGROUND 1
  496. typedef struct _CFILL_PARAM_
  497. {
  498. INT32 DestBlockId; //Returned from Driver
  499. INT32 CFillType; //0 : Normal Object, 1:Background
  500. //Coordinate relative to the virtual screen of the specified plane
  501. //Maximum CFill Size relative to the virtual screen of the specified plane
  502. S_BLOCK DestBlock;
  503. ULONG CFillUnitNums;
  504. CFILL_UNIT * pCfillUnit;
  505. }CFILL_PARAM, *PCFILL_PARAM;
  506. typedef struct _CLUT_PARAM_
  507. {
  508. ULONG IsYCC:1; //1 //1: YCC, 0: RGB
  509. ULONG Reserved_1:7;
  510. ULONG DestStartEntry:8; // Starting Entry Index to fill, 0~0xff, DestStartEntry+ClutEntryNum should be <= 256
  511. ULONG ClutEntryNum:16; //1 // 1 ~ 256
  512. COLOR_ENTRY * pClutEntry;
  513. /*
  514. ULONG DestStartEntry:8; // Starting Entry Index to fill, 0~0xff, DestStartEntry+ClutEntryNum should be <= 256
  515. ULONG Reserved_1:24;
  516. CLU_TABLE Clut;
  517. */
  518. }CLUT_PARAM, *PCLUT_PARAM;
  519. typedef struct _MEMORY_PARAM_
  520. {
  521. ULONG phyAddr;
  522. ULONG Size;
  523. }MEMORY_PARAM, *PMEMORY_PARAM;
  524. typedef struct _GEXP_PARAM_
  525. {
  526. // PLANE_STYLE Ps;
  527. ULONG SrcAddr;
  528. ULONG MMUEnable;
  529. ULONG SrcAddr2; //NULL if the bitmap is not interlaced, usually used in subtitle
  530. ULONG MMUEnable2;
  531. S_SIZE SrcSize;
  532. S_SIZE WishSize;
  533. UINT8 alphaOld;
  534. UINT8 alphaNew;
  535. S_POINT DestLeftTopPt;
  536. PCLUT_PARAM pClut; //Used when ClutEn is 1
  537. COLOR_24BIT DclrARGB565[4]; //argb Only, not used when ClutEn is 1
  538. // ULONG DclrARGB565:24;
  539. ULONG SrcBPP:3;
  540. ULONG DclrRoute:3; // Dclr Set value : 0 ~ 5
  541. ULONG ClutEn:1; //0: Disable CLUT(using Dclr Mode), 1: Enable CLUT
  542. ULONG Reserved_1:25;
  543. ULONG Mode;
  544. INT32 DestBlockId; //Returned from Driver
  545. }GEXP_PARAM, *PGEXP_PARAM;
  546. typedef struct _GEXPDFB_PARAM_
  547. {
  548. ULONG SrcAddr;
  549. ULONG DestAddr; //NULL if the bitmap is not interlaced, usually used in subtitle
  550. ULONG DestOffset;
  551. UINT32 SrcWidth:16;
  552. UINT32 SrcHeight:16;
  553. PCLUT_PARAM pClut; //Used when ClutEn is 1
  554. ULONG SrcBPP:3;
  555. ULONG Reserved_1:29;
  556. INT32 DestBlockId; //Returned from Driver
  557. }GEXPDFB_PARAM, *PGEXPDFB_PARAM;
  558. typedef struct _TEXP_PARAM_
  559. {
  560. // PLANE_STYLE Ps;
  561. INT32 DestBlockId; //Returned from Driver
  562. OSD_TEXT OsdText;
  563. }TEXP_PARAM, *PTEXP_PARAM;
  564. typedef struct _BLD_PARAM_
  565. {
  566. // PLANE_STYLE Ps;
  567. INT32 SrcBlockId; //Set by UI
  568. INT32 DestBlockId; //Set by UI, if 0 means blend to the Plane
  569. ULONG SrcPosX:16; //PosX in Src position
  570. ULONG SrctPosY:16; //PosY in Src Position
  571. ULONG SrcWidth:12; //in Pixel
  572. ULONG SrcHeight:12; //in Pixel
  573. ULONG Reserved_1:8;
  574. ULONG DestPosX:16; //PosX in Dest Position
  575. ULONG DestPosY:16; //PosY in Dest Position
  576. }BLD_PARAM, *PBLD_PARAM;
  577. typedef struct _SCL_PARAM_
  578. {
  579. // PLANE_STYLE Ps;
  580. INT32 SrcBlockId;
  581. INT32 DestBlockId; //Returned from driver
  582. ULONG SrcPosX:16; //PosX in Src Position
  583. ULONG SrctPosY:16;//PoxY in Src Position
  584. ULONG SrcWidth:12; //in Pixel
  585. ULONG SrcHeight:12; //in Pixel
  586. ULONG Reserved_1:8; //End of Dword
  587. ULONG DestWidth:12; //in Pixel
  588. ULONG DestHeight:12; //in Pixel
  589. ULONG Reserved_2:8; //End of Dword
  590. ULONG DestOffset:14; //in Byte, if 0 or too small then would be decided by driver
  591. ULONG Reserved_3:18; //End of Dword
  592. }SCL_PARAM, *PSCL_PARAM;
  593. typedef struct _CP_PARAM_
  594. {
  595. // PLANE_STYLE Ps;
  596. INT32 SrcBlockId;
  597. INT32 DestBlockId; //Returned from driver
  598. ULONG SrcWidth:12; //in Pixel
  599. ULONG SrcHeight:12; //in Pixel
  600. ULONG Reserved_1:8; //End of Dword
  601. ULONG DestOffset:14; //in Byte, if 0 or too small then would be decided by driver
  602. ULONG Reserved_2:18; //End of Dword
  603. }CP_PARAM, *PCP_PARAM;
  604. /////////////////////////////////////////////////////////////////////
  605. typedef struct _REMOVE_BLOCK_IOCTL_PARAM_
  606. {
  607. PLANE_STYLE Plane;
  608. INT32 BlockType; //-1 means all
  609. ULONG bUpdate:16; //if bUpdate = 0, do not update display screen, otherwise, display screen will be updated.
  610. ULONG bFound:8; //Return from Driver
  611. ULONG Reserved:8;
  612. INT32 RmBlkNums; //If 0 means all, the pRmBlockIndex will be ignored, otherwize it means the nums of the pDispBlockIndex nums
  613. INT32 * pRmBlockIndex;
  614. }REMOVE_BLOCK_IOCTL_PARAM, *PREMOVE_BLOCK_IOCTL_PARAM;
  615. typedef struct _REMOVE_SHOW_GROUP_IOCTL_PARAM_
  616. {
  617. PLANE_STYLE Plane;
  618. ULONG bUpdate:16; //if bUpdate = 0, do not update display screen, otherwise, display screen will be updated.
  619. ULONG bFound:8; //Return from Driver
  620. ULONG Reserved:8;
  621. INT32 RmBlkNums;
  622. INT32 * pRmBlockIndex;
  623. S_POINT *pRmsPt;
  624. }REMOVE_SHOW_GROUP_IOCTL_PARAM, *PREMOVE_SHOW_GROUP_IOCTL_PARAM;
  625. typedef struct _DISPLAY_BLOCK_IOCTL_PARAM_
  626. {
  627. PLANE_STYLE Plane;
  628. INT32 BlockType; //-1 means all
  629. ULONG bUpdate:16; //if bUpdate = 0, do not update display screen, otherwise, display screen will be updated immediately.
  630. ULONG bFound:8; //Return from Driver
  631. ULONG Reserved:8;
  632. INT32 DispBlkNums; //If 0 means all, the pDispBlockIndex will be ignored, otherwize it means the nums of the pDispBlockIndex nums
  633. INT32 * pDispBlockIndex;
  634. }DISPLAY_BLOCK_IOCTL_PARAM, *PDISPLAY_BLOCK_IOCTL_PARAM;
  635. typedef struct _MOVE_BLOCK_IOCTL_PARAM_
  636. {
  637. PLANE_STYLE Plane;
  638. INT32 BlockIndex;
  639. S_POINT DestPt; //Dispaly Postion, each -1 value of nX or nY means no change
  640. S_BLOCK SrcBlock; //If you want to display partial of the src block, set the top-left point and size of the block, if it's left unchanged, set the value to -1
  641. ULONG bUpdate:16;
  642. ULONG bFound:8; //Return from driver, 0 means cann't find the block
  643. ULONG Reserved:8;
  644. }MOVE_BLOCK_IOCTL_PARAM, *PMOVE_BLOCK_IOCTL_PARAM;
  645. /////////////////////////////////////////////////////////////////////
  646. typedef struct _RESERVED_FONT_INFO_
  647. {
  648. ULONG ReservedAddr;
  649. ULONG ReservedSize;
  650. ULONG AvailableAddr;
  651. ULONG RequiredFontSize;
  652. ULONG RequiredMode; //2081126 =>
  653. }RESERVED_FONT_INFO, *PRESERVED_FONT_INFO;
  654. #define OSD_FONT_SITE_AT_0 0 // use same addr range
  655. #define OSD_FONT_SITE_ORDER 1 // use other addr range
  656. #define OSD_FONT_MULTI_LANG0_SIZE 150*1024 //2081126 <=
  657. typedef struct _RGB_3TO4_TRANSFORM_
  658. {
  659. ULONG SrcAddr;
  660. ULONG Width;
  661. ULONG Height;
  662. ULONG SrcLineOffset;
  663. ULONG DestAddr;
  664. ULONG DestLineOffset;
  665. }RGB_3TO4_TRANSFORM, *PRGB_3TO4_TRANSFORM;
  666. typedef struct _RGBYCC_SCALING_
  667. {
  668. ULONG SrcAddr;
  669. ULONG SrcWidth;
  670. ULONG SrcHeight;
  671. ULONG SrcLineOffset;
  672. ULONG DestAddr;
  673. ULONG DestWidth;
  674. ULONG DestHeight;
  675. ULONG DestLineOffset;
  676. ULONG TempAddr;
  677. ULONG DataFormat;
  678. #ifdef BLT_HAPS
  679. ULONG MMU_Enable_line;
  680. ULONG TypeBits:5;
  681. ULONG Blending;
  682. ULONG Srcbpp;
  683. PCLUT_PARAM pClut; //Used when ClutEn is 1
  684. #endif
  685. }RGBYCC_SCALING, *PRGBYCC_SCALING;
  686. typedef struct _RGBYCC_SCALING_MODES_
  687. {
  688. ULONG SrcAddr;
  689. ULONG SrcWidth;
  690. ULONG SrcHeight;
  691. ULONG SrcLineOffset;
  692. ULONG DestAddr;
  693. ULONG DestWidth;
  694. ULONG DestHeight;
  695. ULONG DestLineOffset;
  696. ULONG Mode; // Dithering:1 [10] InterAlgorithm:1 [9] Dithering:1 [8] TypeBits:5 [4:0]
  697. }RGBYCC_SCALING_MODES, *PRGBYCC_SCALING_MODES;
  698. typedef struct _OSDPLANE_SETTING_
  699. {
  700. PLANE_STYLE Ps;
  701. S_SIZE VirtualScrSize;
  702. S_BLOCK OsdPlaneBlock;
  703. }OSDPLANE_SETTING, *POSDPLANE_SETTING;
  704. typedef struct _OSDPLANE_DISPLAYSIZE_
  705. {
  706. PLANE_STYLE Ps;
  707. S_POINT sPt;
  708. S_SIZE DisplaySize;
  709. }OSDPLANE_DISPLAYSIZE, *POSDPLANE_DISPLAYSIZE;
  710. typedef struct _BLT_MEMCOPY_
  711. {
  712. ULONG SrcAddr;
  713. ULONG SrcWidth;
  714. ULONG SrcHeight;
  715. ULONG SrcLineOffset;
  716. ULONG DestAddr;
  717. ULONG DestLineOffset;
  718. }BLT_MEMCOPY, *PBLT_MEMCOPY;
  719. typedef struct _BLT_MEMCOPY_EX_
  720. {
  721. ULONG SrcAddr;
  722. ULONG SrcWidth;
  723. ULONG SrcHeight;
  724. ULONG SrcLineOffset;
  725. ULONG DestAddr;
  726. ULONG DestLineOffset;
  727. ULONG Option;
  728. }BLT_MEMCOPY_EX, *PBLT_MEMCOPY_EX;
  729. typedef struct _BLT_CONCENTRATE_ // com_press 3
  730. {
  731. ULONG SrcAddr;
  732. ULONG SrcWidth;
  733. ULONG SrcHeight;
  734. ULONG SrcLineOffset;
  735. ULONG DestAddr;
  736. ULONG DestLineOffset;
  737. ULONG Option;
  738. ULONG OutOption;
  739. ULONG UpperBboundAddr;
  740. }BLT_CONCENTRATE, *PBLT_CONCENTRATE;
  741. typedef struct _BLT_OSC_EVEN_
  742. {
  743. ULONG cursorX;
  744. ULONG cursorY;
  745. ULONG cursorW; //picture W
  746. ULONG cursorH; //picture H
  747. ULONG phyAddress; //when only chagne set value if set 0 => not chane
  748. ULONG turnOn; //when only chagne set 1
  749. ULONG turnOff; //when only chagne set 1
  750. ULONG lineOffset;
  751. }BLT_OSC_EVEN, *PBLT_OSC_EVEN;
  752. typedef struct _BLT_OSC_MOVE_ //O SC 02
  753. {
  754. ULONG Hds;
  755. ULONG Vds;
  756. ULONG Hde;
  757. ULONG Vde;
  758. ULONG address; //
  759. //ULONG byteOffset; // odd, even
  760. ULONG InversePICAddr; // , when inver_se PIC to use ; SW inver_se
  761. ULONG InversePICOffset; // , when inver_se PIC to use ; SW inver_se
  762. }BLT_OSC_MOVE, *PBLT_OSC_MOVE;
  763. typedef struct _BLT_OSC_INI_ //ini_t will use //O SC 03
  764. {
  765. ULONG baseAddr; // same as address //not use //only fix use it had mod 16 value
  766. ULONG w; // pic's W
  767. ULONG h; // pic's H
  768. ULONG offset;
  769. ULONG reg_00; // Os_c size:3 offset:2
  770. UINT8 onOff;
  771. ULONG setLineH; // inver_se need
  772. ULONG bWOffset; // inver_se need
  773. ULONG brushOffset; // inver_se need
  774. }BLT_OSC_INI, *PBLT_OSC_INI;
  775. typedef struct _BLT_BLD_2S1D_
  776. {
  777. ULONG SrcAddr;
  778. ULONG SrcWidth;
  779. ULONG SrcHeight;
  780. ULONG SrcLineOffset;
  781. ULONG DestAddr;
  782. ULONG DestLineOffset;
  783. ULONG Option;
  784. ULONG Src1Addr;
  785. ULONG Src1LineOffset;
  786. }BLT_BLD_2S1D, *PBLT_BLD_2S1D;
  787. typedef struct _Blt_H264_MERGE_
  788. {
  789. ULONG SrcWidth;
  790. ULONG SrcHeight;
  791. ULONG SrcAddr0;
  792. ULONG SrcLineOffset0;
  793. ULONG SrcAddr1;
  794. ULONG SrcLineOffset1;
  795. ULONG SrcAddr2;
  796. ULONG SrcLineOffset2;
  797. ULONG DestAddr;
  798. ULONG DestLineOffset;
  799. ULONG Option;
  800. }Blt_H264_MERGE, *PBlt_H264_MERGE;
  801. typedef struct _BLT_MEMSET_
  802. {
  803. ULONG DestAddr;
  804. ULONG DestWidth;
  805. ULONG DestHeight;
  806. ULONG DestLineOffset;
  807. ULONG Value:24;
  808. ULONG Reserved:8;
  809. }BLT_MEMSET, *PBLT_MEMSET;
  810. typedef struct _OSD_MEMSET_MODE_
  811. {
  812. ULONG DestAddr;
  813. ULONG DestWidth;
  814. ULONG DestHeight;
  815. ULONG DestLineOffset;
  816. ULONG Value;
  817. ULONG ModeByte; //[15:0] must 2, 3, 4 => "5 6 5", "8 5 6 5" , "8 8 8 8" [16] Bet Argb En
  818. }OSD_MEMSET_MODE, *POSD_MEMSET_MODE;
  819. typedef struct _BLT_MERGE_STR_BLOCK_PARAM_
  820. {
  821. PLANE_STYLE Ps;
  822. ULONG osdType;
  823. INT32 isFlashing;
  824. INT32 nItem;
  825. INT32 *pBlockIdsIn;
  826. INT32 *pBlockIdOut;
  827. }BLT_MERGE_STR_BLOCK_PARAM, *PBLT_MERGE_STR_BLOCK_PARAM;
  828. typedef struct _OSDPLANE_INT_
  829. {
  830. PLANE_STYLE Ps;
  831. UINT32 intd;
  832. }OSDPLANE_INT, *POSDPLANE_INT;
  833. typedef struct _OSDPLANE_UINT_
  834. {
  835. PLANE_STYLE Ps;
  836. UINT32 uint;
  837. }OSDPLANE_UINT, *POSDPLANE_UINT;
  838. typedef struct _OSDPLANE_POINT_
  839. {
  840. PLANE_STYLE Ps;
  841. S_POINT sPt;
  842. }OSDPLANE_POINT, *POSDPLANE_POINT;
  843. typedef struct _OSD_SHOW_IN_OUT_INFO_
  844. {
  845. PLANE_STYLE Ps;
  846. INT32 rect_X;
  847. INT32 rect_Y;
  848. INT32 rect_W;
  849. INT32 rect_H;
  850. INT32 shift_X; // total will shift value must > 0
  851. INT32 shift_Y; // total will shift value must > 0
  852. INT32 stepNo; // to finish step number must > 0
  853. INT32 msdelay; //each step will delay ms time must > 0 default:30
  854. }OSD_SHOW_IN_OUT_INFO, *POSD_SHOW_IN_OUT_INFO;
  855. typedef struct _OSDPLANE_CUTRATIO_
  856. {
  857. S_RECT CutWin;
  858. S_BLOCK DispWin;
  859. }OSDPLANE_CUTRATIO, *POSDPLANE_CUTRATIO;
  860. //---------------------------365chip------------------------------------------------------
  861. typedef struct _OSD_LINE_DRAW_PARAM_
  862. {
  863. ULONG DestAddr;
  864. ULONG DestLineOffset;
  865. ULONG Width;
  866. ULONG X0;
  867. ULONG Y0;
  868. ULONG X1;
  869. ULONG Y1;
  870. ULONG Mask;
  871. ULONG Mode;
  872. COLOR_24BIT Color;
  873. }OSD_LINE_DRAW_PARAM, *POSD_LINE_DRAW_PARAM;
  874. typedef struct _OSD_ELLIPSE_F_PARAM_
  875. {
  876. ULONG DestAddr;
  877. ULONG DestLineOffset;
  878. ULONG Width;
  879. ULONG X;
  880. ULONG Y;
  881. ULONG X1;
  882. ULONG Y1;
  883. ULONG Mask;
  884. COLOR_24BIT ColorInner;
  885. COLOR_24BIT ColorLine;
  886. COLOR_24BIT ColorOut;
  887. }OSD_ELLIPSE_F_PARAM, *POSD_ELLIPSE_F_PARAM;
  888. typedef struct _OSD_ELLIPSE_FB_PARAM_
  889. {
  890. ULONG DestAddr;
  891. ULONG DestLineOffset;
  892. ULONG Width;
  893. ULONG X;
  894. ULONG Y;
  895. ULONG X1;
  896. ULONG Y1;
  897. ULONG Mask;
  898. ULONG Delta;
  899. ULONG UseDBit;
  900. COLOR_24BIT ColorInner;
  901. COLOR_24BIT ColorLine;
  902. COLOR_24BIT ColorOut;
  903. }OSD_ELLIPSE_FB_PARAM, *POSD_ELLIPSE_FB_PARAM;
  904. typedef struct _OSD_ANTI_ALIAS_PARAM_
  905. {
  906. ULONG SrcAddr;
  907. ULONG SrcWidth;
  908. ULONG SrcHeight;
  909. ULONG SrcLineOffset;
  910. ULONG DestAddr;
  911. ULONG DestWidth;
  912. ULONG DestHeight;
  913. ULONG DestLineOffset;
  914. ULONG H_Alias;
  915. ULONG V_Alias;
  916. ULONG F_Option;
  917. }OSD_ANTI_ALIAS_PARAM, *POSD_ANTI_ALIAS_PARAM;
  918. typedef struct _OSD_POLYGON_FILL_PARAM_
  919. {
  920. ULONG SrcAddr;
  921. ULONG SrcWidth;
  922. ULONG SrcHeight;
  923. ULONG SrcLineOffset;
  924. ULONG DestAddr;
  925. ULONG DestLineOffset;
  926. ULONG X0;
  927. ULONG Y0;
  928. ULONG X1;
  929. ULONG Y1;
  930. ULONG X2;
  931. ULONG Y2;
  932. COLOR_24BIT ColorIn;
  933. COLOR_24BIT ColorOut;
  934. ULONG Mode;
  935. }OSD_POLYGON_FILL_PARAM, *POSD_POLYGON_FILL_PARAM;
  936. typedef struct _OSD_GRADIENT_FILL_PARAM_
  937. {
  938. ULONG DestAddr;;
  939. ULONG DestWidth;
  940. ULONG DestHeight;
  941. ULONG DestLineOffset;
  942. ULONG H_Enable;
  943. ULONG H_Reflect;
  944. ULONG H_ChangeValueAlpah;
  945. ULONG H_ChangeValueRed;
  946. ULONG H_ChangeValueGreen;
  947. ULONG H_ChangeValueBlue;
  948. ULONG H_PixelAlpha;
  949. ULONG H_PixelRed;
  950. ULONG H_PixelGreen;
  951. ULONG H_PixelBlue;
  952. ULONG V_Enable;
  953. ULONG V_Reflect;
  954. ULONG V_ChangeValueAlpah;
  955. ULONG V_ChangeValueRed;
  956. ULONG V_ChangeValueGreen;
  957. ULONG V_ChangeValueBlue;
  958. ULONG V_PixelAlpha;
  959. ULONG V_PixelRed;
  960. ULONG V_PixelGreen;
  961. ULONG V_PixelBlue;
  962. ULONG Argb565Clr;
  963. ULONG UpArgb565Clr;
  964. ULONG LowArgb565Clr;
  965. }OSD_GRADIENT_FILL_PARAM, *POSD_GRADIENT_FILL_PARAM;
  966. typedef struct _OSD_FORMAT_TRANS_ // Ex 6
  967. {
  968. ULONG SrcAddr;
  969. ULONG SrcWidth;
  970. ULONG SrcHeight;
  971. ULONG SrcLineOffset;
  972. ULONG DestAddr;
  973. ULONG DestLineOffset;
  974. ULONG Mode;
  975. ULONG AlphaNewOld;
  976. }OSD_FORMAT_TRANS, *POSD_FORMAT_TRANS;
  977. typedef struct _OSD_COPY_SPECI_ // Ex 6
  978. {
  979. ULONG SrcAddr;
  980. ULONG SrcWidth;
  981. ULONG SrcHeight;
  982. ULONG SrcLineOffset;
  983. ULONG DestAddr;
  984. ULONG DestLineOffset;
  985. ULONG IsSpeci;
  986. ULONG IsAlphaTest;
  987. ULONG AlphaTestValue;
  988. ULONG AlphaTestMode;
  989. ULONG RoteMode;
  990. }OSD_COPY_SPECI, *POSD_COPY_SPECI;
  991. typedef struct _OSD_LOGIC_OP_
  992. {
  993. ULONG SrcAddr;
  994. ULONG SrcWidth;
  995. ULONG SrcHeight;
  996. ULONG SrcLineOffset;
  997. ULONG DestAddr;
  998. ULONG DestLineOffset;
  999. ULONG Mode;
  1000. }OSD_LOGIC_OP, *POSD_LOGIC_OP;
  1001. typedef struct _OSD_BLD_MULTI_FORMAT_
  1002. {
  1003. ULONG SrcAddr;
  1004. ULONG SrcWidth;
  1005. ULONG SrcHeight;
  1006. ULONG SrcLineOffset;
  1007. ULONG DestAddr;
  1008. ULONG DestLineOffset;
  1009. ULONG SrcColorFact;
  1010. ULONG DestColorFact;
  1011. ULONG SrcAlphaFact;
  1012. ULONG DestAlphaFact;
  1013. ULONG Mode;
  1014. ULONG FillColor;
  1015. ULONG Src1Addr;
  1016. ULONG Src1LineOffset;
  1017. }OSD_BLD_MULTI_FORMAT, *POSD_BLD_MULTI_FORMAT;
  1018. typedef struct _OSD_PATTERN_ROP_
  1019. {
  1020. ULONG SrcAddr;
  1021. ULONG SrcWidth;
  1022. ULONG SrcHeight;
  1023. ULONG SrcLineOffset;
  1024. ULONG Src2Addr;
  1025. ULONG Src2LineOffset;
  1026. ULONG DestAddr;
  1027. ULONG DestLineOffset;
  1028. ULONG PatternAddr;
  1029. ULONG PatternLineOffset;
  1030. ULONG Mode;
  1031. }OSD_PATTERN_ROP, *POSD_PATTERN_ROP;
  1032. typedef struct _OSD_BEZIER_CURVE_
  1033. {
  1034. ULONG DestAddr;
  1035. ULONG DestLineOffset;
  1036. ULONG LineUseMode;
  1037. ULONG LineWidth;
  1038. ULONG ClrA8565;
  1039. ULONG X0;
  1040. ULONG Y0;
  1041. ULONG X1;
  1042. ULONG Y1;
  1043. ULONG Xa;
  1044. ULONG Ya;
  1045. ULONG Xb;
  1046. ULONG Yb;
  1047. }OSD_BEZIER_CURVE, *POSD_BEZIER_CURVE;
  1048. typedef struct _tagOSDROUND_RECT
  1049. {
  1050. ULONG DestAddr;
  1051. ULONG DestWidth;
  1052. ULONG DestHeight;
  1053. ULONG DestOffset;
  1054. COLOR_24BIT DestDrawData;
  1055. ULONG x;
  1056. ULONG y;
  1057. }OSDROUND_RECT, *POSDROUND_RECT;
  1058. typedef struct _RGBYCC_P_SCALING_
  1059. {
  1060. ULONG SrcAddr;
  1061. ULONG SrcWidth;
  1062. ULONG SrcHeight;
  1063. ULONG SrcLineOffset;
  1064. ULONG DestAddr;
  1065. ULONG DestWidth;
  1066. ULONG DestHeight;
  1067. ULONG DestLineOffset;
  1068. ULONG Para_nnVH; // 8~80
  1069. }RGBYCC_P_SCALING, *PRGBYCC_P_SCALING;
  1070. typedef struct _BLT_ROTATION_
  1071. {
  1072. ULONG SrcAddr;
  1073. ULONG SrcWidth;
  1074. ULONG SrcHeight;
  1075. ULONG SrcLineOffset;
  1076. ULONG DestAddr;
  1077. ULONG DestLineOffset;
  1078. ULONG RotDirection;
  1079. }BLT_ROTATION, *PBLT_ROTATION;
  1080. typedef struct _BLT_FB_Info
  1081. {
  1082. UINT32 FB_OnScreen_Addr;
  1083. UINT32 FB_OffScreen_Addr;
  1084. UINT32 FB_Width;
  1085. UINT32 FB_Height;
  1086. UINT32 FB_Lineoffset;
  1087. UINT32 BLT_FB_Size;
  1088. UINT32 BLT_Eng_Size;
  1089. UINT32 FB_Addr;
  1090. UINT32 eng_Source_Addr;
  1091. UINT32 eng_FB_Region_Addr;
  1092. UINT32 eng_tmp_Addr;
  1093. #if (defined(CONFIG_SUPPORT_TTX)||defined(CONFIG_SUPPORT_MHEG5))
  1094. UINT32 eng_FB_Tmp_Addr;
  1095. #endif
  1096. ULONG andBufSize;
  1097. ULONG andPhyAddr;
  1098. ULONG andVirAddr;
  1099. ULONG andoffset;
  1100. ULONG bitmapoffset;
  1101. ULONG transp_X;
  1102. ULONG transp_Y;
  1103. ULONG transp_W;
  1104. ULONG transp_H;
  1105. ULONG reserved_X;
  1106. ULONG reserved_Y;
  1107. ULONG reserved_W;
  1108. ULONG reserved_H;
  1109. ULONG reserved_Alpha;
  1110. ULONG reserved_mem_size;
  1111. //UINT32 FB_Enable;
  1112. }BLT_FB_Info,*PBLT_FB_Info;
  1113. typedef struct _BLT_SHOW_EFFECT_PARAM_
  1114. {
  1115. PLANE_STYLE Ps; // set by Osd lib
  1116. OSD_SSE_MOVE_IN_DIRECTION inDir; // set 0 not change
  1117. S_POINT insPt; // if set x= -1 or y = -1 => not change
  1118. INT32 inStepNumber; // wish how step to finish, min 2 // set 0 not change
  1119. INT32 inStepIntervalMs; // set 0 not change
  1120. OSD_SSE_MOVE_OUT_DIRECTION outDir;
  1121. S_POINT outsPt; // if set x= -1 or y = -1 => not change
  1122. INT32 outStepNumber; // wish how step to finish, min 2 // set 0 not change
  1123. INT32 outStepIntervalMs; // set 0 not change
  1124. }BLT_SHOW_EFFECT_PARAM, *PBLT_SHOW_EFFECT_PARAM;
  1125. typedef struct _BLT_FB_Param
  1126. {
  1127. ULONG FB_On_Address;
  1128. ULONG FB_Off_Address;
  1129. ULONG FB_Width;
  1130. ULONG FB_Height;
  1131. ULONG BLT_Source_Address;
  1132. ULONG BLT_FBRegion_Address;
  1133. ULONG BLT_Tmp_Address;
  1134. }BLT_FB_Param,*PBLT_FB_Param;
  1135. typedef struct _BLT_STB_PARAM
  1136. {
  1137. UINT32 HStart;
  1138. UINT32 VStart;
  1139. UINT32 HEnd;
  1140. UINT32 VEnd;
  1141. UINT32 nWidth;
  1142. UINT32 nHeight;
  1143. INT32 doUnderScan;
  1144. UINT32 top;
  1145. UINT32 down;
  1146. UINT32 left;
  1147. UINT32 right;
  1148. UINT32 isUnderScanChange;
  1149. UINT32 mChangeTo;
  1150. }BLT_STB_PARAM, *PBLT_STB_PARAM;
  1151. typedef struct _BLT_BLOCK_HOLE_PARAM_
  1152. {
  1153. INT32 BlockIndex;
  1154. ULONG bDisplay:8;
  1155. ULONG Ps:7;
  1156. ULONG bUsePTS:1;
  1157. ULONG BltCmdNums:16;
  1158. ULONG sBlockNums:16;
  1159. S_BLOCK *pSBlock;
  1160. ULONG setAlpha;
  1161. ULONG option; //reserved
  1162. }BLT_BLOCK_HOLE_PARAM, *PBLT_BLOCK_HOLE_PARAM;
  1163. typedef struct _OSD_MIRROR_
  1164. {
  1165. INT32 nBlockId; // input: will mir_ror's ID, output: after mirror use ID
  1166. S_POINT sPt;
  1167. }OSD_MIRROR, * POSD_MIRROR;
  1168. typedef struct _BLT_MIRROR_PARAM_
  1169. {
  1170. INT32 nBlockId;// input: will mir_ror's ID, output: after mirror use ID
  1171. S_POINT sPt;
  1172. ULONG bDisplay:8;
  1173. ULONG Ps:7;
  1174. ULONG bUsePTS:1;
  1175. ULONG BltCmdNums:16;
  1176. }BLT_MIRROR_PARAM, * PBLT_MIRROR_PARAM;
  1177. typedef struct _OSD_MIRROR_EX_CP_
  1178. {
  1179. INT32 nBlockId; // input: will mir_ror's ID, output: after mirror use ID
  1180. S_POINT sPt;
  1181. S_SIZE Size; // -1 or 0xffff is not chage size
  1182. UINT8 oldAlpha;
  1183. UINT8 newAlpha; // if(old == new) => does not change
  1184. UINT8 blendAlpha; // if 0 => does not all block blen_d
  1185. }OSD_MIRROR_EX_CP, * POSD_MIRROR_EX_CP;
  1186. typedef struct _BLT_MIRROR_EX_CP_PARAM_
  1187. {
  1188. INT32 nBlockId;// input: will mir_ror's ID, output: after mirror use ID
  1189. S_POINT sPt;
  1190. ULONG bDisplay:8;
  1191. ULONG Ps:7;
  1192. ULONG bUsePTS:1;
  1193. ULONG BltCmdNums:16;
  1194. S_SIZE Size; // -1 or 0xffff is not chage size
  1195. UINT8 oldAlpha;
  1196. UINT8 newAlpha; // if(old == new) => does not change
  1197. UINT8 blendAlpha; // if 0 => does not all block blen_d
  1198. }BLT_MIRROR_EX_CP_PARAM, * PBLT_MIRROR_EX_CP_PARAM;
  1199. typedef struct _OSD_MEM_INFO_
  1200. {
  1201. ULONG width;
  1202. ULONG height;
  1203. ULONG offset;
  1204. ULONG osdAddress;
  1205. ULONG osdSize;
  1206. ULONG osdUsedSize;
  1207. ULONG fontAddress;
  1208. ULONG fontSize;
  1209. ULONG compMem_0;
  1210. ULONG compMem_1;
  1211. ULONG dispMem_0;
  1212. ULONG dispMem_1;
  1213. ULONG cmdqMem;
  1214. ULONG drvVersion;
  1215. ULONG osdVersion;
  1216. ULONG oscMem_0;
  1217. ULONG reserved_2;
  1218. ULONG reserved_1;
  1219. ULONG reserved_0;
  1220. }OSD_MEM_INFO, *POSD_MEM_INFO;
  1221. typedef struct _BLT_BLOCK_DUMP_OSD_
  1222. {
  1223. UINT8 *sourAddr[70];
  1224. S_POINT insPt;
  1225. INT32 line;
  1226. UINT8 * Addr;
  1227. UINT32 offset;
  1228. }BLT_BLOCK_DUMP_OSD, *PBLT_BLOCK_DUMP_OSD;
  1229. typedef struct _BLT_BYPASS_WINDOW_
  1230. {
  1231. S_BLOCK BypassWin[4];
  1232. }BLT_BYPASS_WINDOW, *PBLT_BYPASS_WINDOW;
  1233. typedef struct _BLT_ZOOM_ASPECT_
  1234. {
  1235. INT32 HPercent;
  1236. INT32 VPercent;
  1237. }BLT_ZOOM_ASPECT, *PBLT_ZOOM_ASPECT;
  1238. //***************************************
  1239. #ifndef BLT_HAPS
  1240. #define DRV_BLT_MAGIC 't'
  1241. #else
  1242. #ifdef SISOSD_DEV_MAJOR
  1243. #define DRV_BLT_MAGIC SISOSD_DEV_MAJOR
  1244. #else
  1245. #define DRV_BLT_MAGIC 94
  1246. #endif
  1247. #endif
  1248. #define DRV_BLT_CMD _IOWR(DRV_BLT_MAGIC, 1, BLT_IOCTL_PARAM *)
  1249. #define DRV_BLT_FONTINFO _IOWR(DRV_BLT_MAGIC, 2, RESERVED_FONT_INFO *)
  1250. #define DRV_BLT_RGBTRANSFORM _IOWR(DRV_BLT_MAGIC, 3, RGB_3TO4_TRANSFORM *)
  1251. #define DRV_BLT_REMOVEBLOCK _IOWR(DRV_BLT_MAGIC, 4, REMOVE_BLOCK_IOCTL_PARAM *)
  1252. #define DRV_BLT_CMDDEBUG _IOWR(DRV_BLT_MAGIC, 5, BLT_IOCTL_PARAM *)
  1253. #define DRV_BLT_CMDDEBUG_TT _IOWR(DRV_BLT_MAGIC, 6, BLT_IOCTL_PARAM *)
  1254. #define DRV_BLT_RGBYCC_SCALING _IOWR(DRV_BLT_MAGIC, 7, RGBYCC_SCALING *)
  1255. #define DRV_BLT_DISPLAYBLOCK _IOWR(DRV_BLT_MAGIC, 8, DISPLAY_BLOCK_IOCTL_PARAM *)
  1256. #define DRV_BLT_MOVEBLOCK _IOWR(DRV_BLT_MAGIC, 9, MOVE_BLOCK_IOCTL_PARAM *)
  1257. #define DRV_BLT_QUERY_OSDPLANE _IOWR(DRV_BLT_MAGIC, 10, OSDPLANE_DISPLAYSIZE *)
  1258. #define DRV_BLT_SET_PLANEBLOCK _IOWR(DRV_BLT_MAGIC, 11, OSDPLANE_SETTING *)
  1259. #define DRV_BLT_MEM_COPY _IOWR(DRV_BLT_MAGIC, 12, BLT_MEMCOPY *)
  1260. #define DRV_BLT_MEM_SET _IOWR(DRV_BLT_MAGIC, 13, BLT_MEMSET *)
  1261. #define DRV_BLT_HIDEBLOCK _IOWR(DRV_BLT_MAGIC, 14, DISPLAY_BLOCK_IOCTL_PARAM *)
  1262. #define DRV_BLT_ROTATION _IOWR(DRV_BLT_MAGIC, 15, BLT_ROTATION *)
  1263. #define DRV_BLT_MEM_COPY_EX _IOWR(DRV_BLT_MAGIC, 16, BLT_MEMCOPY_EX *)
  1264. #define DRV_BLT_MEM_COMPARE_3BU _IOWR(DRV_BLT_MAGIC, 17, BLT_MEMCOPY *)
  1265. #define DRV_BLT_MEM_COMPARE_2BU _IOWR(DRV_BLT_MAGIC, 18, BLT_MEMCOPY *)
  1266. #define DRV_BLT_MEM_COMPARE_ROT _IOWR(DRV_BLT_MAGIC, 19, BLT_MEMCOPY_EX *)
  1267. #define DRV_BLT_MEM_COMPARE_32BU _IOWR(DRV_BLT_MAGIC, 20, BLT_MEMCOPY *)
  1268. #define DRV_BLT_MEM_COMPARE_PATT _IOWR(DRV_BLT_MAGIC, 21, BLT_MEMCOPY *)
  1269. //#define DRV_BLT_OSD_PRINT_OR_NOT _IOWR(DRV_BLT_MAGIC, 22, ULONG *)
  1270. #define DRV_BLT_TEST_FILLBLENDING _IOWR(DRV_BLT_MAGIC, 23, BLT_MEMSET *)
  1271. #define DRV_BLT_TEST_BLENDING _IOWR(DRV_BLT_MAGIC, 24, BLT_MEMCOPY *)
  1272. #define DRV_BLT_TEST_BLENDFADE _IOWR(DRV_BLT_MAGIC, 25, BLT_MEMCOPY_EX *)
  1273. #define DRV_BLT_MERGE_STR_BLOCK _IOWR(DRV_BLT_MAGIC, 26, BLT_MERGE_STR_BLOCK_PARAM *)
  1274. #define DRV_BLT_SHOW_EFFECT_IN_Dir _IOWR(DRV_BLT_MAGIC, 27, OSDPLANE_UINT *)
  1275. #define DRV_BLT_SHOW_EFFECT_IN_XY _IOWR(DRV_BLT_MAGIC, 28, OSDPLANE_POINT *)
  1276. #define DRV_BLT_SHOW_EFFECT_OUT_Dir _IOWR(DRV_BLT_MAGIC, 29, OSDPLANE_UINT *)
  1277. #define DRV_BLT_SHOW_EFFECT_OUT_XY _IOWR(DRV_BLT_MAGIC, 30, OSDPLANE_POINT *)
  1278. #define DRV_BLT_SHOW_EFFECT_IN_LOOP _IOWR(DRV_BLT_MAGIC, 31, OSDPLANE_INT *)
  1279. #define DRV_BLT_SHOW_EFFECT_IN_INTERVAL _IOWR(DRV_BLT_MAGIC, 32, OSDPLANE_INT *)
  1280. #define DRV_BLT_SHOW_EFFECT_OUT_LOOP _IOWR(DRV_BLT_MAGIC, 33, OSDPLANE_INT *)
  1281. #define DRV_BLT_SHOW_EFFECT_OUT_INTERVAL _IOWR(DRV_BLT_MAGIC, 34, OSDPLANE_INT *)
  1282. #define DRV_BLT_SHOW_GROUP_MOVE _IOWR(DRV_BLT_MAGIC, 35, OSDPLANE_INT *)
  1283. #define DRV_BLT_SET_SHOW_EFFECT_PARAMETER _IOWR(DRV_BLT_MAGIC, 36, BLT_SHOW_EFFECT_PARAM *)
  1284. #define DRV_BLT_GET_SHOW_EFFECT_PARAMETER _IOWR(DRV_BLT_MAGIC, 37, BLT_SHOW_EFFECT_PARAM *)
  1285. #define DRV_BLT_YUV_SCALING _IOWR(DRV_BLT_MAGIC, 38, BLT_SHOW_EFFECT_PARAM *)
  1286. #define DRV_BLT_MOVE_HIDDEN_AS_MIRROR_SOURCE_BLOCK _IOWR(DRV_BLT_MAGIC, 39, OSDPLANE_INT *)
  1287. #define DRV_BLT_RELEASE_MIRROR_SOURCE_BLOCK _IOWR(DRV_BLT_MAGIC, 40, OSDPLANE_INT *)
  1288. #define DRV_BLT_DRAW_MIRROR_BLOCK _IOWR(DRV_BLT_MAGIC, 41, BLT_MIRROR_PARAM *)
  1289. #define DRV_BLT_CONCENTRATE _IOWR(DRV_BLT_MAGIC, 42, BLT_CONCENTRATE *)
  1290. #define DRV_BLT_H264_MERGE _IOWR(DRV_BLT_MAGIC, 43, Blt_H264_MERGE *)
  1291. #define DRV_BLT_H264_COMPARE _IOWR(DRV_BLT_MAGIC, 44, Blt_H264_MERGE *)
  1292. #define DRV_BLT_BLENDING_2S1D _IOWR(DRV_BLT_MAGIC, 45, BLT_BLD_2S1D *)
  1293. #define DRV_BLT_LOOP_CMD _IOWR(DRV_BLT_MAGIC, 46, BLT_MEMCOPY *)
  1294. #define DRV_BLT_GET_MEM_INFO _IOWR(DRV_BLT_MAGIC, 47, OSD_MEM_INFO *)
  1295. #define DRV_BLT_SHOW_IN_OUT_INFO _IOWR(DRV_BLT_MAGIC, 48, OSD_SHOW_IN_OUT_INFO *)
  1296. #define DRV_BLT_DRAW_MIRROR_EX_CP_BLOCK _IOWR(DRV_BLT_MAGIC, 49, BLT_MIRROR_EX_CP_PARAM *)
  1297. #define DRV_BLT_IDLE_DRV _IOWR(DRV_BLT_MAGIC, 50, OSDPLANE_INT *)
  1298. #define DRV_BLT_WORKING_DRV _IOWR(DRV_BLT_MAGIC, 51, OSDPLANE_INT *)
  1299. #define DRV_BLT_LINE_DRAW _IOWR(DRV_BLT_MAGIC, 52, OSD_LINE_DRAW_PARAM *)
  1300. #define DRV_BLT_ELLIPSE_FILL _IOWR(DRV_BLT_MAGIC, 53, OSD_ELLIPSE_F_PARAM *)
  1301. #define DRV_BLT_ANTI_ALIAS _IOWR(DRV_BLT_MAGIC, 54, OSD_ANTI_ALIAS_PARAM *)
  1302. #define DRV_BLT_POLYGON_FILL _IOWR(DRV_BLT_MAGIC, 55, OSD_POLYGON_FILL_PARAM *)
  1303. #define DRV_BLT_FORMAT_TRANS _IOWR(DRV_BLT_MAGIC, 56, OSD_FORMAT_TRANS *)
  1304. #define DRV_BLT_COMPARE_TRANS _IOWR(DRV_BLT_MAGIC, 57, OSD_FORMAT_TRANS *)
  1305. #define DRV_BLT_LOGIC_OP _IOWR(DRV_BLT_MAGIC, 58, OSD_LOGIC_OP *)
  1306. #define DRV_BLT_COMPARE_LOGIC _IOWR(DRV_BLT_MAGIC, 59, OSD_LOGIC_OP *)
  1307. #define DRV_BLT_GRADIENT_FILL _IOWR(DRV_BLT_MAGIC, 60, OSD_GRADIENT_FILL_PARAM *)
  1308. #define DRV_BLT_BLEND_MULTI_FORMAT _IOWR(DRV_BLT_MAGIC, 61, OSD_BLD_MULTI_FORMAT *)
  1309. #define DRV_BLT_COPY_SPECI_TEST _IOWR(DRV_BLT_MAGIC, 62, OSD_COPY_SPECI *)
  1310. #define DRV_BLT_PATTERN_ROP _IOWR(DRV_BLT_MAGIC, 63, OSD_PATTERN_ROP *)
  1311. #define DRV_BLT_BEZIER_CURVE _IOWR(DRV_BLT_MAGIC, 64, OSD_BEZIER_CURVE *)
  1312. #define DRV_BLT_ELLIPSE_FILLB _IOWR(DRV_BLT_MAGIC, 65, OSD_ELLIPSE_FB_PARAM *)
  1313. #define DRV_BLT_RGBYCC_P_SCALING _IOWR(DRV_BLT_MAGIC, 66, RGBYCC_P_SCALING *)
  1314. #define DRV_BLT_MEM_SET_565 _IOWR(DRV_BLT_MAGIC, 67, BLT_MEMSET *)
  1315. #define DRV_BLT_ELLIPSE_FILLB_FULL _IOWR(DRV_BLT_MAGIC, 68, OSD_ELLIPSE_FB_PARAM *)
  1316. #define DRV_BLT_ROUND_RECT _IOWR(DRV_BLT_MAGIC, 69, OSDROUND_RECT *)
  1317. //#define GRAPHIC_ELLIPSE_FILL _IOWR(DRV_BLT_MAGIC, 70, Graphic_ELLIPSE_FB_PARAM *)
  1318. //#define GRAPHIC_MEM_SET _IOWR(DRV_BLT_MAGIC, 71, Graphic_MEMSET *)
  1319. //#define GRAPHIC_LINE_DRAW _IOWR(DRV_BLT_MAGIC, 72, Graphic_LINE_DRAW_PARAM *)
  1320. //#define GRAPHIC_MEM_COPY _IOWR(DRV_BLT_MAGIC, 73, Graphic_MEMCOPY *)
  1321. //#define GRAPHIC_BEZIER_CURVE _IOWR(DRV_BLT_MAGIC, 74, Graphic_BEZIER_CURVE *)
  1322. //#define GRAPHIC_SCALING _IOWR(DRV_BLT_MAGIC, 75, Graphic_SCALING *)
  1323. //#define GRAPHIC_POLYGON _IOWR(DRV_BLT_MAGIC, 76, Graphic_POLYGON_FILL_PARAM *)
  1324. //#define GRAPHIC_ROTATE _IOWR(DRV_BLT_MAGIC, 77, Graphic_ROTATION *)
  1325. //#define GRAPHIC_ANTIALIAS _IOWR(DRV_BLT_MAGIC, 78, Graphic_ANTI_ALIAS_PARAM *)
  1326. //#define GRAPHIC_ROUNDRECT _IOWR(DRV_BLT_MAGIC, 79, Graphic_ROUND_RECT_PARAM *)
  1327. //#define GRAPHIC_MULTIF_BLEND _IOWR(DRV_BLT_MAGIC, 80, Graphic_MULTIF_BLEND_PARAM *)
  1328. //#define GRAPHIC_FORMAT_TRANS _IOWR(DRV_BLT_MAGIC, 81, Graphic_FORMAT_TRANS_PARAM *)
  1329. //#define GRAPHIC_ROUNDRECT_2 _IOWR(DRV_BLT_MAGIC, 82, Graphic_ROUND_RECT2_PARAM *)
  1330. #define DRV_GET_TOTAL_SIZE _IOWR(DRV_BLT_MAGIC, 83, And_Buffer_Param *)
  1331. #define DRV_MAP _IOWR(DRV_BLT_MAGIC, 84, And_Buffer_Param *)
  1332. #define DRV_MAP_END _IOWR(DRV_BLT_MAGIC, 85, And_Buffer_Param *)
  1333. //#define GRAPHIC_QUERYBUFINFO _IOWR(DRV_BLT_MAGIC, 86, Graphic_BUFINFO *)
  1334. #define GRAPHIC_BUFAREACOPY _IOWR(DRV_BLT_MAGIC, 87, Graphic_BUFAREACOPY *)
  1335. //#define GRAPHIC_8888_BLT _IOWR(DRV_BLT_MAGIC, 88, Graphic_BUFAREACOPY *)
  1336. #define GRAPHIC_BUFAREABLEND _IOWR(DRV_BLT_MAGIC, 89, Graphic_BUFAREABLEND *)
  1337. //#define Graphic_BitmapAllocation _IOWR(DRV_BLT_MAGIC, 90, Graphic_BITMAPALLOCATION *)
  1338. //#define Graphic_BitmapRelease _IOWR(DRV_BLT_MAGIC, 91, Graphic_BITMAPALLOCATION *)
  1339. //#define SIS516BLT_MEM_8888_CHECKSUM _IOWR(DRV_BLT_MAGIC, 92, TEST_MEMCOMPARE *)
  1340. #define GRAPHIC_AllocBitmap _IOWR(DRV_BLT_MAGIC, 93, ULONG *)
  1341. #define GRAPHIC_DeallocBitmap _IOWR(DRV_BLT_MAGIC, 94, ULONG *)
  1342. #define GRAPHIC_DeallocByPid _IOWR(DRV_BLT_MAGIC, 95, ULONG *)
  1343. #define DRV_BLT_CURSOR_INI_XY _IOWR(DRV_BLT_MAGIC, 97, ULONG *)
  1344. #define DRV_BLT_IS_USE_CURSOR _IOWR(DRV_BLT_MAGIC, 98, ULONG *)
  1345. #define DRV_BLT_OSC_EVEN _IOWR(DRV_BLT_MAGIC, 99, BLT_OSC_EVEN *)
  1346. #define DRV_BLT_DRAW_AND _IOWR(DRV_BLT_MAGIC, 100, ULONG *)
  1347. #define DRV_BLT_MEMSET_MODE _IOWR(DRV_BLT_MAGIC, 107, OSD_MEMSET_MODE *)
  1348. #define DRV_BLT_SCALING_MODES _IOWR(DRV_BLT_MAGIC, 127, RGBYCC_SCALING_MODES *)
  1349. #define DRV_BLT_QUERY_VIDEO_PLANE _IOWR(DRV_BLT_MAGIC, 128, S_SIZE *)
  1350. #define DRV_BLT_MULTI_FUNC _IOWR(DRV_BLT_MAGIC, 129, BLT_IOCTL_MULTI_FUNC *)
  1351. #define DRV_BLT_FLASH_SCALLING _IOWR(DRV_BLT_MAGIC, 130, ULONG *)
  1352. #define DRV_BLT_BLOCK_HOLES _IOWR(DRV_BLT_MAGIC, 132, BLT_BLOCK_HOLE_PARAM *)
  1353. #define DRV_BLT_JPEG_MULTIP_ALPHA _IOWR(DRV_BLT_MAGIC, 133, BLT_MEMCOPY_EX *)
  1354. #define DRV_BLT_ALLOC_OSDBLOCK _IOWR(DRV_BLT_MAGIC, 134, MEMORY_PARAM *)
  1355. #define DRV_BLT_FREE_OSDBLOCK _IOWR(DRV_BLT_MAGIC, 135, MEMORY_PARAM *)
  1356. #define DRV_BLT_GRAPHIC_INDEX_EXP _IOWR(DRV_BLT_MAGIC, 136, GEXPDFB_PARAM *)
  1357. #define DRV_BLT_DUMP_OSD _IOWR(DRV_BLT_MAGIC, 137, BLT_BLOCK_DUMP_OSD*)
  1358. #define DRV_BLT_RELEASE_MHEG5_TEMP _IOWR(DRV_BLT_MAGIC, 139, ULONG *)
  1359. #define DRV_BLT_GET_MEMC_BYPASS_WINDOW _IOWR(DRV_BLT_MAGIC, 141, BLT_BYPASS_WINDOW*)
  1360. #define DRV_BLT_PRIMARY_SURFACE_FILP _IOWR(DRV_BLT_MAGIC, 142, MEMORY_PARAM *)
  1361. #define DRV_BLT_GRAPHIC_ALLOC_BUFFER _IOWR(DRV_BLT_MAGIC, 143, MEMORY_PARAM *)
  1362. #define DRV_BLT_GRAPHIC_FREE_BUFFER _IOWR(DRV_BLT_MAGIC, 144, MEMORY_PARAM *)
  1363. #define DRV_BLT_YUV_MULTI_SCALING _IOWR(DRV_BLT_MAGIC, 145, BLT_SHOW_EFFECT_PARAM *)
  1364. #define DRV_BLT_SET_OSD _IOWR(DRV_BLT_MAGIC, 146, BOOL *)
  1365. #define DRV_BLT_HAS_BLOCK _IOWR(DRV_BLT_MAGIC, 147, ULONG *)
  1366. #define DRV_BLT_DUMP_MEMORY _IOWR(DRV_BLT_MAGIC, 148, BLT_BLOCK_DUMP_OSD*)
  1367. #define DRV_BLT_SET_MEMORY_MODE _IOWR(DRV_BLT_MAGIC, 149, UINT8 *)
  1368. #define DRV_BLT_YUV_SCALING_CONVERT_ARGB _IOWR(DRV_BLT_MAGIC, 150, BLT_SHOW_EFFECT_PARAM *)
  1369. #define DRV_BLT_SET_SUBTITLE _IOWR(DRV_BLT_MAGIC, 151, BOOL *)
  1370. #define DRV_BLT_MEMORY_ALLOC_SET _IOWR(DRV_BLT_MAGIC, 152, UINT8 *)
  1371. #define DRV_BLT_MEMORY_DUMP _IOWR(DRV_BLT_MAGIC, 153, UINT8 *)
  1372. #define DRV_BLT_SET_ZOOM_ASPECT _IOWR(DRV_BLT_MAGIC, 154, BLT_ZOOM_ASPECT *)
  1373. #define DRV_BLT_IOC_MAXNUM 155
  1374. #endif //End of _BLT_IOCTL_H_