xref: /utopia/UTPA2-700.0.x/mxlib/include/apiGOP.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 ///////////////////////////////////////////////////////////////////////////////
95 ///
96 /// @file   apiGOP.h
97 /// @brief  MStar GOP Driver Interface
98 /// @author MStar Semiconductor Inc.
99 /// @version 1.0
100 ///////////////////////////////////////////////////////////////////////////////
101 //-------------------------------------------------
102 /*! \defgroup GOP GOP interface
103 
104  \image html apiGOP_schema.png
105  <b>Mstar GOP(Graphic Output Path) engine is used to for graphic output. </b> \n
106  - Alpha blending??the content of framebuffer to video.
107  - GWIN is a window defined for displaying framebuffer content of GOP.
108  - Once enabled, GOP read framebuffer pixel data continuously upon output timing
109 
110  <b> Features: </b> \ns
111  - Data Format : RGB565/RGB1555/ARGB4444/I8/ARGB8888/2266/YUV??etc
112  - Output mode : RGB/YUV
113  - Window dimension : h-start, h-end, v-start, v-end
114  - Out path:  MVOP/IP main/IP sub/VOP/MIXER/VE/OC
115  - Scaling UP
116  - H/V Mirror
117  - H/V Scolling
118  - Testpattern
119  - Color colorkey
120 
121  <b> Operation Code Flow:  </b> \ns
122  -# ResetPool
123  -# ResetGOP
124  -# InitByGOP
125  -# UpdateRegOnce(TRUE)
126  -# ...AP Behavior...
127  -# GWIN_Enable
128  -# UpdateRegOnce(FALSE)
129 
130   *! \defgroup GOP_INIT GOP init related functions
131   *   \ingroup   GOP
132 
133   *! \defgroup INIT GOP init related functions
134   *   \ingroup   GOP_INIT
135 
136   *! \defgroup RESET GOP rest related functions
137   *   \ingroup   GOP_INIT
138 
139   *! \defgroup PRE_CONFIG GOP pre config related functions
140   *   \ingroup   GOP_INIT
141 
142   *! \defgroup GOP_CAPS GOP get capability related functions
143   *   \ingroup   GOP
144 
145   *! \defgroup GOP_CB GOP call back related functions
146   *   \ingroup   GOP
147 
148   *! \defgroup GOP_LOCK_BEGINE_END GOP lock begine/end related functions
149   *   \ingroup   GOP
150 
151   *! \defgroup GOP_CONFIG GOP config related functions
152   *   \ingroup   GOP
153 
154   *! \defgroup DST GOP dst related functions
155   *   \ingroup   GOP_CONFIG
156 
157   *! \defgroup MIRROR GOP mirror related functions
158   *   \ingroup   GOP_CONFIG
159 
160   *! \defgroup PALETTE GOP palette related functions
161   *   \ingroup   GOP_CONFIG
162 
163   *! \defgroup 3D GOP 3D related functions
164   *   \ingroup   GOP_CONFIG
165 
166   *! \defgroup GOP_ORDER GOP order related functions
167   *   \ingroup   GOP_CONFIG
168 
169   *! \defgroup COLOR_TRANSFOR GOP color transfor related functions
170   *   \ingroup   GOP_CONFIG
171 
172   *! \defgroup TRANSPARENT_CLR_CEY GOP transparent color key related functions
173   *   \ingroup   GOP_CONFIG
174 
175   *! \defgroup MIU GOP MIU related functions
176   *   \ingroup   GOP_CONFIG
177 
178   *! \defgroup BW GOP BW related functions
179   *   \ingroup   GOP_CONFIG
180 
181   *! \defgroup GOP_OPTION GOP option related functions
182   *   \ingroup   GOP_CONFIG
183 
184   *! \defgroup GOP_UPDATE GOP update related functions
185   *   \ingroup   GOP
186 
187   *! \defgroup FORCE_WRITE GOP force write related functions
188   *   \ingroup   GOP_UPDATE
189 
190   *! \defgroup UPDATE_GROUP_ONCE GOP update group once related functions
191   *   \ingroup   GOP_UPDATE
192 
193   *! \defgroup UPDATE GOP update related functions
194   *   \ingroup   GOP_UPDATE
195 
196   *! \defgroup GOP_TEST_PATTERN GOP test pattern related functions
197   *   \ingroup   GOP
198 
199   *! \defgroup GOP_POWER_STATE GOP power state related functions
200   *   \ingroup   GOP
201 
202   *! \defgroup STRETCH_WINDOW Stretch-window related functions
203   *   \ingroup   GOP
204 
205   *! \defgroup SET_STRETCH_WINDOW Stretch-window set window related functions
206   *   \ingroup   STRETCH_WINDOW
207 
208   *! \defgroup SCALE Stretch-window scaling related functions
209   *   \ingroup   STRETCH_WINDOW
210 
211   *! \defgroup GWIN GWIN related functions
212   *   \ingroup   GOP
213 
214   *! \defgroup GWIN_CREATE GWIN create related functions
215   *   \ingroup   GWIN
216 
217   *! \defgroup SHARE GWIN share related functions
218   *   \ingroup   GWIN
219 
220   *! \defgroup GWIN_DELETE GWIN delete related functions
221   *   \ingroup   GWIN
222 
223   *! \defgroup SET_GWIN_WINDOW GWIN set window related functions
224   *   \ingroup   GWIN
225 
226   *! \defgroup FLIP GWIN flip related functions
227   *   \ingroup   GWIN
228 
229   *! \defgroup ALPHA_BLENDING GWIN alpha blending related functions
230   *   \ingroup   GWIN
231 
232   *! \defgroup BASIC GWIN alpha blending basic related functions
233   *   \ingroup   ALPHA_BLENDING
234 
235   *! \defgroup EXTRA GWIN alpha blending option related functions
236   *   \ingroup   ALPHA_BLENDING
237 
238   *! \defgroup ENABLE GWIN enable related functions
239   *   \ingroup   GWIN
240 
241   *! \defgroup GWIN_STATUS GWIN status related functions
242   *   \ingroup   GWIN
243 
244   *! \defgroup GWIN_OPTION GWIN option related functions
245   *   \ingroup   GWIN
246 
247   *! \defgroup GWIN_ORDER GWIN order related functions
248   *   \ingroup   GWIN_OPTION
249 
250   *! \defgroup BG GWIN BG related functions
251   *   \ingroup   GWIN_OPTION
252 
253   *! \defgroup SCROLL GWIN scroll related functions
254   *   \ingroup   GWIN_OPTION
255 
256   *! \defgroup FADING GWIN fading related functions
257   *   \ingroup   GWIN_OPTION
258 
259   *! \defgroup BLINK GWIN blink related functions
260   *   \ingroup   GWIN_OPTION
261 
262   *! \defgroup PINPON GWIN pin-pon related functions
263   *   \ingroup   GWIN_OPTION
264 
265   *! \defgroup TILE_MODE GWIN tile-mode related functions
266   *   \ingroup   GWIN_OPTION
267 
268   *! \defgroup FB FB related functions
269   *   \ingroup   GOP
270 
271   *! \defgroup POOL FB pool related functions
272   *   \ingroup   FB
273 
274   *! \defgroup FB_CREATE FB create related functions
275   *   \ingroup   FB
276 
277   *! \defgroup SET FB set related functions
278   *   \ingroup   FB
279 
280   *! \defgroup FB_STATUS FB status related functions
281   *   \ingroup   FB
282 
283   *! \defgroup FB_DELETE FB delete related functions
284   *   \ingroup   FB
285 
286   *! \defgroup DWIN DWIN related functions
287   *   \ingroup   GOP
288 
289   *! \defgroup DWIN_CONFIG DWIN config related functions
290   *   \ingroup   DWIN
291 
292   *! \defgroup DWIN_INTERRUPT DWIN interrupt related functions
293   *   \ingroup   DWIN
294 
295   *! \defgroup DWIN_CAPTURE DWIN capture related functions
296   *   \ingroup   DWIN
297 
298   *! \defgroup DWIN_OPTION DWIN option related functions
299   *   \ingroup   DWIN
300 
301   *! \defgroup GOP_MIXER MIXER related functions
302   *   \ingroup   GOP
303 
304   *! \defgroup GOP_VE VE related functions
305   *   \ingroup   GOP
306 
307   *! \defgroup GOP_ToBeRemove GOP to be remove related functions
308   *   \ingroup   GOP
309 
310   */
311 //-------------------------------------------------
312 
313 
314 #ifndef _API_GOP_H_
315 #define _API_GOP_H_
316 
317 
318 
319 #ifdef __cplusplus
320 extern "C"
321 {
322 #endif
323 #include "UFO.h"
324 #include "MsCommon.h"
325 #include "MsDevice.h"
326 #include "apiGOP_v2.h"
327 //-------------------------------------------------------------------------------------------------
328 //  Macro and Define
329 //-------------------------------------------------------------------------------------------------
330 /// GOP Version
331 #define MSIF_GOP_LIB_CODE                   {'G','O','P','_'}    //Lib code
332 #define MSIF_GOP_LIBVER                     {'8','9'}            //LIB version
333 #define MSIF_GOP_BUILDNUM                   {'0','2'}            //Build Number
334 #define MSIF_GOP_CHANGELIST                 {'0','0','5','2','4','9','1','6'} //P4 ChangeList Number
335 
336 #define GOP_API_VERSION                   /* Character String for DRV/API version             */  \
337     MSIF_TAG,                             /* 'MSIF'                                           */  \
338     MSIF_CLASS,                           /* '00'                                             */  \
339     MSIF_CUS,                             /* 0x0000                                           */  \
340     MSIF_MOD,                             /* 0x0000                                           */  \
341     MSIF_CHIP,                                                                                  \
342     MSIF_CPU,                                                                                   \
343     MSIF_GOP_LIB_CODE,                    /* IP__                                             */  \
344     MSIF_GOP_LIBVER,                      /* 0.0 ~ Z.Z                                        */  \
345     MSIF_GOP_BUILDNUM,                    /* 00 ~ 99                                          */  \
346     MSIF_GOP_CHANGELIST,                  /* CL#                                              */  \
347     MSIF_OS
348 
349 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
350 ///GOP_PALETTE_ENTRY_NUM
351 #define GOP_PALETTE_ENTRY_NUM   256
352 ///FB_FMT_AS_DEFAULT
353 #define FB_FMT_AS_DEFAULT   0xFFFF
354 ///DEFAULT_FB_FMT
355 #define DEFAULT_FB_FMT 0xffff
356 ///INVALID_WIN_ID
357 #define INVALID_WIN_ID GWIN_NO_AVAILABLE
358 ///GWIN_ID_INVALID
359 #define GWIN_ID_INVALID 0xFF
360 ///LAYER_ID_INVALID
361 #define LAYER_ID_INVALID 0xFFFF
362 ///INVALID_GOP_NUM
363 #define INVALID_GOP_NUM  0xFF
364 #else
365 ///GOP_PALETTE_ENTRY_NUM
366 #define GOP_PALETTE_ENTRY_NUM   256UL
367 ///FB_FMT_AS_DEFAULT
368 #define FB_FMT_AS_DEFAULT   0xFFFFUL
369 ///DEFAULT_FB_FMT
370 #define DEFAULT_FB_FMT 0xFFFFUL
371 ///INVALID_WIN_ID
372 #define INVALID_WIN_ID GWIN_NO_AVAILABLE
373 ///GWIN_ID_INVALID
374 #define GWIN_ID_INVALID 0xFFUL
375 ///LAYER_ID_INVALID
376 #define LAYER_ID_INVALID 0xFFFFUL
377 ///INVALID_GOP_NUM
378 #define INVALID_GOP_NUM  0xFFUL
379 #endif
380 ///MAX_GWIN_SUPPORT
381 #define MAX_GWIN_SUPPORT MApi_GOP_GWIN_GetTotalGwinNum()
382 
383 
384 #ifndef MAX_GWIN_FB_SUPPORT
385 #define MAX_GWIN_FB_SUPPORT MApi_GOP_GWIN_GetMax32FBNum()
386 #endif
387 
388 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
389 #define MAX_NUM_GOP_API_INF_SUPPORT 6
390 #else
391 #define MAX_NUM_GOP_API_INF_SUPPORT 6UL
392 #endif
393 
394 //the macro defines only be applied for the upper user, not for the internal driver,otherwise it will cause the deadlock
395 #define MAX_GOP0_SUPPORT MApi_GOP_GWIN_GetGwinNum(0)
396 #define MAX_GOP1_SUPPORT MApi_GOP_GWIN_GetGwinNum(1)
397 #define MAX_GOP2_SUPPORT MApi_GOP_GWIN_GetGwinNum(2)
398 #define MAX_GOP3_SUPPORT MApi_GOP_GWIN_GetGwinNum(3)
399 #define MAX_GOP4_SUPPORT MApi_GOP_GWIN_GetGwinNum(4)
400 #define MAX_GOP5_SUPPORT MApi_GOP_GWIN_GetGwinNum(5)
401 //#define MAX_GOP_SUPPORT MApi_GOP_GWIN_GetMaxGOPNum()
402 
403 //the macro defines only be applied for the upper user, not for the internal driver,otherwise it will cause the deadlock
404 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
405 #define GOP0_GWIN_START 0
406 #else
407 #define GOP0_GWIN_START 0UL
408 #endif
409 #define GOP1_GWIN_START MAX_GOP0_SUPPORT
410 #define GOP2_GWIN_START MAX_GOP0_SUPPORT + MAX_GOP1_SUPPORT
411 #define GOP3_GWIN_START MAX_GOP0_SUPPORT + MAX_GOP1_SUPPORT + MAX_GOP2_SUPPORT
412 #define GOP4_GWIN_START MAX_GOP0_SUPPORT + MAX_GOP1_SUPPORT + MAX_GOP2_SUPPORT + MAX_GOP3_SUPPORT
413 #define GOP5_GWIN_START MAX_GOP0_SUPPORT + MAX_GOP1_SUPPORT + MAX_GOP2_SUPPORT + MAX_GOP3_SUPPORT + MAX_GOP4_SUPPORT
414 
415 /// GOP API return value
416 typedef enum
417 {
418     ///GOP API return fail.
419     GOP_API_FAIL                        = 0,
420     ///GOP API return success.
421     GOP_API_SUCCESS                     = 1,
422     ///GOP API return non align address.
423     GOP_API_NON_ALIGN_ADDRESS           ,
424     ///GOP API return non align pitch.
425     GOP_API_NON_ALIGN_PITCH             ,
426     ///GOP API return depend no avail.
427     GOP_API_DEPEND_NOAVAIL              ,
428     ///GOP API return mutex obtain fail.
429     GOP_API_MUTEX_OBTAIN_FAIL           ,
430     ///GOP API return mutex obtain.
431     GOP_API_MUTEX_OBTAINED              ,
432     ///GOP API return invalid buffer info.
433     GOP_API_INVALID_BUFF_INFO          ,
434     ///GOP API return invalid parameter.
435     GOP_API_INVALID_PARAMETERS,
436     ///GOP API return this interface not supported.
437     GOP_API_FUN_NOT_SUPPORTED,
438     ///GOP API return enum not supported.
439     GOP_API_ENUM_NOT_SUPPORTED,
440     ///GOP API return create gwin fail.
441     GOP_API_CRT_GWIN_FAIL               = 0xFE,
442     ///GOP API return create no avail
443     GOP_API_CRT_GWIN_NOAVAIL            = 0xFF,
444 } E_GOP_API_Result;
445 
446 ///GWIN_FAIL
447 #define GWIN_FAIL         GOP_API_CRT_GWIN_FAIL
448 ///GWIN_OK
449 #define GWIN_OK           GOP_API_SUCCESS
450 ///GWIN_NO_AVAILABLE
451 #define GWIN_NO_AVAILABLE GOP_API_CRT_GWIN_NOAVAIL
452 
453 
454 ///GWINID
455 typedef MS_U8 GWINID;
456 
457 //-------------------------------------------------------------------------------------------------
458 //  Type and Structure
459 //-------------------------------------------------------------------------------------------------
460 /// GWIN display property
461 typedef struct DLL_PACKED
462 {
463     ///gwin id.
464     MS_U8 gId;
465     ///gwin start x coordinate.
466     MS_U16 StartX;
467     ///gwin start y coordinate.
468     MS_U16 StartY;
469     ///gwin win width.
470     MS_U16 Win_Width;
471     ///gwin win height.
472     MS_U16 Win_Height;
473     ///gwin frame buffer offset x.
474     MS_U16 FBOffset_X;
475     ///gwin frame buffer offset y.
476     MS_U16 FBOffset_Y;
477 } GOP_GwinDispProperty;
478 
479 /// GOP init info
480 typedef struct DLL_PACKED
481 {
482     ///panel width.
483     MS_U16 u16PanelWidth;
484     ///panel height.
485     MS_U16 u16PanelHeight;
486     ///panel h-start.
487     MS_U16 u16PanelHStr;
488     ///vsync interrupt flip enable flag.
489     MS_BOOL bEnableVsyncIntFlip;
490     ///gop frame buffer starting address.
491 #if (defined(UFO_PUBLIC_HEADER_500)||defined(UFO_PUBLIC_HEADER_500_3)||defined(UFO_PUBLIC_HEADER_700))
492     MS_PHY u32GOPRBAdr;
493 #else
494     MS_PHYADDR u32GOPRBAdr;
495 #endif
496     ///gop frame buffer length.
497     MS_U32 u32GOPRBLen;
498     ///gop regdma starting address.
499 #if (defined(UFO_PUBLIC_HEADER_500)||defined(UFO_PUBLIC_HEADER_500_3)||defined(UFO_PUBLIC_HEADER_700))
500     MS_PHY u32GOPRegdmaAdr;
501 #else
502     MS_PHYADDR u32GOPRegdmaAdr;
503 #endif
504     ///gop regdma length.
505     MS_U32 u32GOPRegdmaLen;
506 }GOP_InitInfo;
507 
508 /// GOP palette entry
509 typedef struct DLL_PACKED
510 {
511     /// A.
512     MS_U8 u8A;
513     /// R.
514     MS_U8 u8R;
515     /// G.
516     MS_U8 u8G;
517     /// B.
518     MS_U8 u8B;
519 } GOP_Palette;
520 
521 /// Frame buffer attributes for GWIN
522 typedef struct DLL_PACKED
523 {
524     /// frame buffer is mapped to which gwin.
525     MS_U8 gWinId;
526     /// frame buffer enable flag.
527     MS_U8 enable:1;
528     /// frame buffer allocated flag.
529     MS_U8 allocated:1;
530     /// frame buffer x0 (unit: pix).
531     MS_U16 x0;
532     /// frame buffer y0 (unit: line).
533     MS_U16 y0;
534     /// frame buffer x1 (unit: pix).
535     MS_U16 x1;
536     /// frame buffer y1 (unit: line).
537     MS_U16 y1;
538     /// frame buffer width (unit: pix).
539     MS_U16 width;
540     /// frame buffer height (unit: line).
541     MS_U16 height;
542     /// frame buffer pitch (unit: byte).
543     MS_U16 pitch;
544     /// frame buffer color format.
545     MS_U16 fbFmt;
546     /// frame buffer starting address.
547 #if (defined(UFO_PUBLIC_HEADER_500)||defined(UFO_PUBLIC_HEADER_500_3)||defined(UFO_PUBLIC_HEADER_700))
548     MS_PHY addr;
549 #else
550     MS_U32 addr;
551 #endif
552     /// frame buffer size.
553     MS_U32 size;
554     /// next frame buffer id in the same pool.
555     MS_U8 next;
556     /// previous frame buffer in the same pool.
557     MS_U8 prev;
558     ///store which AP use this FB.
559     MS_U8 string;
560     /// frame buffer s_x (unit: pix).
561     MS_U16 s_x;
562     /// frame buffer  s_y (unit: pix).
563     MS_U16 s_y;
564     /// frame buffer dispWidth (unit: pix).
565     MS_U16 dispWidth;
566     /// frame buffer dispHeight (unit: line).
567     MS_U16 dispHeight;
568 } GOP_GwinFBAttr;
569 
570 /// Dump Window Information
571 typedef struct DLL_PACKED
572 {
573     /// dwin v-start (unit:line).
574     MS_U16 u16VPixelStart;
575     /// dwin v-end (unit: line).
576     MS_U16 u16VPixelEnd;
577     /// dwin h-start (unit: pix).
578     MS_U16 u16HPixelStart;
579     /// dwin h-end (unit: pix).
580     MS_U16 u16HPixelEnd;
581 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
582     /// dwin dram starting address (unit: Byte).
583     MS_U32 u32TFDRAMAddr;
584     /// dwin access address high bond (unit: Byte).
585     MS_U32 u32BFDRAMAddr;
586 #else
587     /// dwin dram starting address (unit: Byte).
588     MS_PHY u32TFDRAMAddr;
589     /// dwin access address high bond (unit: Byte).
590     MS_PHY u32BFDRAMAddr;
591 #endif
592     /// dwin jump address length after each dwin line end to next line start (unit: Byte).
593     MS_U16 u16DRAMJumpLen;
594     /// DWIN format: 0 UV7Y8, 1 UV8Y8, 2 ARGB8888, 3 RGB565.
595     MS_U8 u8fmt;
596 } GOP_DwinInfo;
597 
598 /// DWIN source selection
599 typedef enum
600 {
601     /// DWIN OP source
602     DWIN_SRC_OP = 0,
603     /// DWIN MVOP source
604     DWIN_SRC_MVOP = 1,
605     /// DWIN IP source
606     DWIN_SRC_IP = 2,
607     /// DWIN OP1 source
608     DWIN_SRC_OP1 = 3,
609     /// DWIN SUBMVOP source
610     DWIN_SRC_SUBMVOP = 4,
611     /// DWIN GOPScaling source
612     DWIN_SRC_GOPScaling = 5,
613     DWIN_SRC_MAX = 6,
614 }EN_GOP_DWIN_SRC_SEL;
615 
616 /// DWIN source data format
617 typedef enum
618 {
619     /// CrYCb domain.
620     DWIN_DATA_FMT_UV7Y8 = 0,
621     /// CrYCb domain.
622     DWIN_DATA_FMT_UV8Y8,
623     /// RGB domain (CSC bypass).
624     DWIN_DATA_FMT_ARGB8888,
625     /// RGB domain (CSC bypass).
626     DWIN_DATA_FMT_RGB565,
627     DWIN_DATA_FMT_MAX
628 } EN_GOP_DWIN_DATA_FMT;
629 
630 
631 /// DWIN Interrupt mask
632 typedef enum
633 {
634     /// DWIN PROG INT mask
635     GOPDWIN_INT_MASK_PROG   = 0x0010,
636     /// DWIN TOP Field INT mask
637     GOPDWIN_INT_MASK_TF     = 0x0020,
638     /// DWIN Bottom Field INT mask
639     GOPDWIN_INT_MASK_BF     = 0x0040,
640     /// DWIN Vsync INT mask
641     GOPDWIN_INT_MASK_VS     = 0x0080,
642 } EN_GOP_DWIN_INT_MASK;
643 
644 /// GWIN output color domain
645 typedef enum
646 {
647     /// output color RGB.
648     GOPOUT_RGB,
649     /// output color YUV.
650     GOPOUT_YUV,
651 } EN_GOP_OUTPUT_COLOR;
652 
653 
654 /// Define GOP FB string.
655 typedef enum
656 {
657     E_GOP_FB_NULL,
658     /// OSD frame buffer.
659     E_GOP_FB_OSD,
660     /// Mute frame buffer.
661     E_GOP_FB_MUTE,
662     /// subtitle frame buffer.
663     E_GOP_FB_SUBTITLE,
664     /// teltext frame buffer.
665     E_GOP_FB_TELTEXT,
666     /// MHEG5 frame buffer.
667     E_GOP_FB_MHEG5,
668     /// CC frame buffer.
669     E_GOP_FB_CLOSEDCAPTION,
670     /// AFBC frame buffer.
671     E_GOP_FB_AFBC_SPLT_YUVTRNS_ARGB8888= 0x100,
672     E_GOP_FB_AFBC_NONSPLT_YUVTRS_ARGB8888,
673     E_GOP_FB_AFBC_SPLT_NONYUVTRS_ARGB8888,
674     E_GOP_FB_AFBC_NONSPLT_NONYUVTRS_ARGB8888,
675 } EN_GOP_FRAMEBUFFER_STRING;
676 
677 
678 /// Define GOP Event for Notification.
679 typedef enum
680 {
681     /// E_GOP_EVENT_BUF_ARRANGE. Begin of Rearrange GOP buffers.
682     E_GOP_EVENT_BUF_ARRANGE_BEGIN    = 0,
683     /// E_GOP_Event_Buffer_Rearrange. End of Rearrange GOP buffers.
684     E_GOP_EVENT_BUF_ARRANGE_END    = 1,
685 } EN_GOP_EVENT_TYPE;
686 
687 /// Define GOP G3D DATA FORMAT.
688 typedef enum
689 {
690     /// E_GOP_TILE_DATA_16BPP. 16 BPP DATA FOR TILE MODE
691     E_GOP_TILE_DATA_16BPP    = 0,
692     /// E_GOP_TILE_DATA_16BPP. 32 BPP DATA FOR TILE MODE
693     E_GOP_TILE_DATA_32BPP    = 1,
694 } EN_GOP_TILE_DATA_TYPE;
695 
696 /// Define GOP MIU SEL
697 typedef enum
698 {
699     /// E_GOP_SEL_MIU0. gop access miu 0
700     E_GOP_SEL_MIU0    = 0,
701     /// E_GOP_SEL_MIU1. gop access miu1
702     E_GOP_SEL_MIU1    = 1,
703     /// E_GOP_SEL_MIU2. gop access miu2
704     E_GOP_SEL_MIU2    = 2,
705     /// E_GOP_SEL_MIU3. gop access miu3
706     E_GOP_SEL_MIU3    = 3,
707 } EN_GOP_SEL_TYPE;
708 
709 
710 ///the GOP and mux setting info on utopia
711 typedef struct DLL_PACKED _GOP_MuxConfig
712 {
713   //GopMux arrays record the u8GopIndex and the corresponding MuxIndex
714   //u8MuxCounts: how many mux need to modify the gop settings
715 
716   struct DLL_PACKED
717   {
718       MS_U8 u8GopIndex;
719       MS_U8 u8MuxIndex;
720   }GopMux[6];
721   MS_U8 u8MuxCounts;
722 }GOP_MuxConfig, *PGOP_MuxConfig;
723 
724 ///the GOP and OSD Layer setting info on utopia
725 typedef struct DLL_PACKED _GOP_LayerConfig
726 {
727   struct DLL_PACKED
728   {
729       MS_U32 u32GopIndex;
730       MS_U32 u32LayerIndex;
731   }stGopLayer[6];
732   MS_U32 u32LayerCounts;
733 }GOP_LayerConfig, *PGOP_LayerConfig;
734 
735 typedef struct DLL_PACKED
736 {
737     MS_U8 gWinId;
738 #if (defined(UFO_PUBLIC_HEADER_500)||defined(UFO_PUBLIC_HEADER_500_3)||defined(UFO_PUBLIC_HEADER_700))
739     MS_PHY u32FlipAddr;
740     MS_PHY u32SubAddr;
741 #else
742     MS_U32 u32FlipAddr;
743     MS_U32 u32SubAddr;
744 #endif
745     MS_U16 u16WaitTagID;
746     MS_U16 *pU16QueueCnt;
747 }GOP_FlipConfig, *PGOP_FlipConfig;
748 
749 typedef struct DLL_PACKED
750 {
751     MS_U8 u8InfoCnt;
752     GOP_FlipConfig astGopInfo[GOP_MULTIINFO_NUM];
753 }GOP_MultiFlipInfo, *PGOP_MultiFlipInfo;
754 
755 /// Define Mux
756 typedef enum
757 {
758     ///Select gop output to mux0
759     EN_GOP_MUX0 = 0,
760     /// Select gop output to mux1
761     EN_GOP_MUX1 = 1,
762     /// Select gop output to mux2
763     EN_GOP_MUX2 = 2,
764     /// Select gop output to mux3
765     EN_GOP_MUX3 = 3,
766         ///Select gop output to IP0
767     EN_GOP_IP0_MUX = 4,
768     /// Select gop output to IP1
769     EN_GOP_IP1_MUX = 5,
770     /// Select gop output to vop0
771     EN_GOP_VOP0_MUX = 6,
772     /// Select gop output to vop1
773     EN_GOP_VOP1_MUX = 7,
774     /// Select gop output to FRC mux0
775     EN_GOP_FRC_MUX0 = 8,
776     /// Select gop output to FRC mux1
777     EN_GOP_FRC_MUX1 = 9,
778     /// Select gop output to FRC mux2
779     EN_GOP_FRC_MUX2 = 10,
780     /// Select gop output to FRC mux3
781     EN_GOP_FRC_MUX3 = 11,
782     /// Select gop output to BYPASS mux
783     EN_GOP_BYPASS_MUX0 = 12,
784     /// Select gop output to IP0_SUB
785     EN_GOP_IP0_SUB_MUX = 13,
786     /// Select gop output to VOP0_SUB
787     EN_GOP_VOP0_SUB_MUX = 14,
788     /// Select gop output to OP1
789     EN_GOP_OP1_MUX = 15,
790     /// Select gop output to DIP
791     EN_GOP_DIP_MUX = 16,
792     /// Select gop output to DIP
793     EN_GOP_GS_MUX = 17,
794     /// Select gop output to mux4
795     EN_GOP_MUX4  = 18,
796     EN_MAX_GOP_MUX_SUPPORT,
797 } EN_Gop_MuxSel;
798 
799 /// Define DEBUG level.
800 typedef enum
801 {
802     /// GOP DEBUG LEVEL LOW. Just printf error message.
803     E_GOP_Debug_Level_LOW    = 0,
804     /// GOP DEBUG LEVEL Medium. printf warning message and error message.
805     E_GOP_Debug_Level_MED    = 1,
806     /// GOP DEBUG LEVEL hIGH. printf all message with function.
807     E_GOP_Debug_Level_HIGH    = 2,
808 } EN_GOP_DEBUG_LEVEL;
809 
810 
811 /// Define GOP gwin fade in/out.
812 typedef enum
813 {
814     /// GOP gwin fade in.
815     E_GOP_GWIN_FADE_IN,
816     /// GOP gwin fade out.
817     E_GOP_GWIN_FADE_OUT,
818     /// GOP gwin fade unknow type.
819     E_GOP_GWIN_FADE_UNKNOWN,
820 } EN_GOP_FADE_TYPE;
821 
822 
823 typedef enum
824 {
825     GOP_PINPON_G3D ,
826     GOP_PINPON_VE,
827     GOP_PINPON_DWIN,
828     GOP_PINPON_DIP,
829     GOP_PINPON_DWIN0,
830     GOP_PINPON_DWIN1,
831 }GOP_PINPON_MODE;
832 
833 typedef struct DLL_PACKED
834 {
835     MS_BOOL bEnable; //InOut
836     MS_U8   u8FrameCount; //Out, value range: 0~3
837     MS_U8   u8Result; //Out
838 }MS_GOP_VECAPTURESTATE, *PMS_GOP_VECAPTURESTATE;
839 
840 typedef enum
841 {
842     E_GOP_VALID_6BITS             =   0,
843     E_GOP_VALID_8BITS             =   1,
844 } EN_GOP_CONSALPHA_BITS;
845 
846 
847 /// Define GOP Ignore init value
848 typedef enum
849 {
850     /// GOP init ingore mux init
851     E_GOP_IGNORE_MUX              =   0x0001,
852     /// GOP init ingore gwin reset
853     E_GOP_IGNORE_GWIN             =   0x0002,
854     /// GOP init ingore stretchwin reset
855     E_GOP_IGNORE_STRETCHWIN      =   0x0004,
856     /// GOP init ingore palette table reset
857     E_GOP_IGNORE_PALETTE          =   0x0008,
858     /// GOP init ingore rest GOP destination to OP
859     E_GOP_IGNORE_SET_DST_OP       =   0x0010,
860     /// GOP init ingore enable transparent color key
861     E_GOP_IGNORE_ENABLE_TRANSCLR =   0x0020,
862     /// GOP set destination ignore VEOSD for bootlogo case
863     E_GOP_BOOTLOGO_IGNORE_VEOSDEN =  0x0040,
864     /// GOP init ingore all
865     E_GOP_IGNORE_ALL              =   0xFFFF,
866     ///Not Ingore
867     E_GOP_IGNORE_DISABLE          =   0x0000,
868 } EN_GOP_IGNOREINIT;
869 
870 
871 //GOP Capability
872 typedef enum
873 {
874     E_GOP_CAP_WORD_UNIT ,
875     E_GOP_CAP_GWIN_NUM,
876     E_GOP_CAP_VERSION,
877     E_GOP_CAP_RESERVED,
878     E_GOP_CAP_CONSALPHA_VALIDBITS,
879     E_GOP_CAP_PALETTE,
880     E_GOP_CAP_DWIN,
881     E_GOP_CAP_GOP_MUX,
882     E_GOP_CAP_PIXELMODE_SUPPORT,
883     E_GOP_CAP_STRETCH,
884     E_GOP_CAP_TLBMODE_SUPPORT,
885     E_GOP_CAP_AFBC_SUPPORT,
886     E_GOP_CAP_BNKFORCEWRITE,
887 }EN_GOP_CAPS;
888 
889 //GOP Function work type
890 typedef enum
891 {
892     E_GOP_FUN_AFBC,
893 }EN_GOP_FUNS;
894 
895 // GOP palette type
896 typedef enum
897 {
898     E_GOP_CAP_PAL_SIZE_NONE = 0x0000,
899     E_GOP_CAP_PAL_SIZE_256  = 0x0100,
900     E_GOP_CAP_PAL_SIZE_64   = 0x0200,
901     E_GOP_CAP_PAL_SIZE_MASK = 0x0F00,
902 }EN_GOP_CAP_PAL;
903 
904 
905 ///Dwin Capability of IC
906 typedef struct DLL_PACKED
907 {
908     MS_BOOL bSupportWindowDECapture; //TRUE: Support it; FALSE:Not support, should use FrameDE to capture video
909     MS_BOOL bSupportOSDCapture;      //TRUE: Support it; FALSE:Not support
910 }GOP_DWIN_CAP, *PGOP_DWIN_CAP;
911 
912 ///GOP MUX PRIORITY when gop goes OP
913 typedef struct DLL_PACKED
914 {
915     MS_U8 u8MuxNumber;
916     MS_U8 *pu8MuxProrityArray;
917     MS_BOOL bNewMux;
918     MS_BOOL bNeedSetMUX1ToIP0;
919     MS_BOOL bNeedSetMUX3ToIP0;
920 }ST_GOP_MUX_CAP, *PST_GOP_MUX_CAP;
921 
922 ///GOP lib info
923 typedef struct DLL_PACKED
924 {
925     MS_U32 GOP_LibVer;
926     MS_U32 GOP_BuildNum;
927     MS_U32 GOP_ChangeList;
928 }GOP_LIB_VER, *PGOP_LIB_VER;
929 
930 ///GOP palette info
931 typedef struct DLL_PACKED
932 {
933     MS_U32 GOP_NumOfTbl;
934     MS_U32 GOP_PalTbl[0x10];
935     MS_U32 GOP_PalTblIdx;
936 }GOP_CAP_PAL_TYPE, *PGOP_CAP_PAL_TYPE;
937 
938 typedef enum
939 {
940     E_GOP_DWIN_INIT ,
941     E_GOP_DWIN_ENABLE ,
942     E_GOP_DWIN_ENABLEINTR ,
943     E_GOP_DWIN_SRCSLCT ,
944     E_GOP_DWIN_ONESHOT ,
945     E_GOP_DWIN_ONESHOT2 ,
946     E_GOP_DWIN_SET_INFO ,
947     E_GOP_DWIN_SET_YUORD ,
948     E_GOP_DWIN_GET_BUFSTUS ,
949     E_GOP_DWIN_CLR_BUFSTUS ,
950     E_GOP_DWIN_SET_SCANTYPE ,
951     E_GOP_DWIN_SET_DATAFMT ,
952     E_GOP_DWIN_SET_ALPHA ,
953     E_GOP_DWIN_SET_R2Y ,
954 } EN_GOP_DWIN_CNTL;
955 
956 ///GOP palette info
957 typedef struct DLL_PACKED
958 {
959     MS_U32 GOP_VStretch_Support;
960 }GOP_CAP_STRETCH_INFO, *PGOP_CAP_STRETCH_INFO;
961 
962 ///GOP TLB support info
963 typedef struct DLL_PACKED
964 {
965     MS_U32 GOP_TLB_Support;
966 }GOP_CAP_TLB_INFO, *PGOP_CAP_TLB_INFO;
967 
968 ///GOP AFBC support info
969 typedef struct
970 {
971     MS_U32 GOP_AFBC_Support;
972 }GOP_CAP_AFBC_INFO, *PGOP_CAP_AFBC_INFO;
973 
974 ///GOP timing Information
975 typedef struct DLL_PACKED
976 {
977     MS_U16 u16HDTotal;// Output horizontal total
978     MS_U16 u16VDTotal; //Output vertical total
979 
980     MS_U16 u16DEHStart; //Output DE horizontal start
981     MS_U16 u16DEHSize;// Output DE horizontal size
982 
983     MS_U16 u16DEVStart; //Output DE vertical start
984     MS_U16 u16DEVSize;//Output DE Vertical size
985 
986     MS_BOOL bInterlaceMode;
987     MS_BOOL bYUVInput;
988     MS_BOOL bCLK_EN;
989     MS_BOOL bINVALPHA_EN;
990 }ST_GOP_TIMING_INFO, *PST_GOP_TIMING_INFO;
991 
992 typedef enum
993 {
994     E_GOP_MULTIWIN_SET_COLORKEY,
995     E_GOP_MULTIWIN_SET_FRAMECOLOR,
996     E_GOP_MULTIWIN_GET_COLORKEY,
997     E_GOP_MULTIWIN_GET_FRAMECOLOR,
998 }EN_GOP_MULTIWIN_COLOR_MODE;
999 
1000 typedef struct DLL_PACKED
1001 {
1002     MS_BOOL enable;
1003     MS_U8 u8WinAlpha;
1004     MS_U8 u8BoarderWidth;
1005     MS_U8 u8BoarderAlpha;
1006     MS_U8 u8BoarderY_G;
1007     MS_U8 u8BoarderCr_R;
1008     MS_U8 u8BoarderCb_B;
1009     MS_U16 u16WinHstart;
1010     MS_U16 u16WinHend;
1011     MS_U16 u16WinVstart;
1012     MS_U16 u16WinVend;
1013 }GOP_MULTIWIN_COLORKEY, *PGOP_MULTIWIN_COLORKEY;
1014 
1015 typedef struct DLL_PACKED
1016 {
1017     MS_U8 u8frameAlpha;
1018     MS_U8 u8frameY_G;
1019     MS_U8 u8frameCr_R;
1020     MS_U8 u8frameCb_B;
1021 }GOP_MULTIWIN_FRAMECOLOR, *PGOP_MULTIWIN_FRAMECOLOR;
1022 
1023 //-----------------------------------------------------------------------------
1024 //  Functions
1025 //-----------------------------------------------------------------------------
1026 //-----------------
1027 // GOP_INIT
1028 //-----------------
1029 //-----------------
1030 // INIT
1031 //-----------------
1032 //-------------------------------------------------------------------------------------------------
1033 /// Initial all GOP driver (include gop0, gop1 ext..)
1034 /// @ingroup INIT
1035 /// @param pGopInit \b IN:gop driver init info
1036 /// @return GOP_API_SUCCESS - Success
1037 /// @return GOP_API_FAIL - Failure
1038 //-------------------------------------------------------------------------------------------------
1039 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Init(GOP_InitInfo *pGopInit);
1040 //-----------------
1041 // GOP_ToBeRemove
1042 //-----------------
1043 //-------------------------------------------------------------------------------------------------
1044 /// MApi_GOP_GetInfo
1045 /// @ingroup GOP_ToBeRemove
1046 /// @return GOP_API_SUCCESS - Success
1047 //-------------------------------------------------------------------------------------------------
1048 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetInfo(GOP_ApiInfo* pGopApiInfo);
1049 //-------------------------------------------------------------------------------------------------
1050 /// MApi_GOP_GetStatus
1051 /// @ingroup GOP_ToBeRemove
1052 /// @return GOP_API_SUCCESS - Success
1053 //-------------------------------------------------------------------------------------------------
1054 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetStatus(GOP_ApiStatus *pGopApiSts);
1055 //-------------------------------------------------------------------------------------------------
1056 /// MApi_GOP_SetDbgLevel
1057 /// @ingroup GOP_ToBeRemove
1058 /// @return GOP_API_SUCCESS - Success
1059 //-------------------------------------------------------------------------------------------------
1060 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetDbgLevel(EN_GOP_DEBUG_LEVEL level);
1061 //-------------------------------------------------------------------------------------------------
1062 /// MApi_GOP_GetLibVer
1063 /// @ingroup GOP_ToBeRemove
1064 /// @return GOP_API_SUCCESS - Success
1065 //-------------------------------------------------------------------------------------------------
1066 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetLibVer(const MSIF_Version **ppVersion);
1067 
1068 //-------------------------------------------------------------------------------------------------
1069 /// Initial individual GOP driver
1070 /// @ingroup INIT
1071 /// @param pGopInit \b IN:gop driver init info
1072 /// @param u8GOP \b IN: only init by which gop
1073 /// @return GOP_API_SUCCESS - Success
1074 /// @return GOP_API_FAIL - Failure
1075 //-------------------------------------------------------------------------------------------------
1076 DLL_PUBLIC E_GOP_API_Result MApi_GOP_InitByGOP(GOP_InitInfo *pGopInit, MS_U8 u8GOP);
1077 //-------------------------------------------------------------------------------------------------
1078 /// MApi_GOP_GWIN_SwitchGOP
1079 /// @ingroup GOP_ToBeRemove
1080 /// @return GOP_API_SUCCESS - Success
1081 //-------------------------------------------------------------------------------------------------
1082 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SwitchGOP(MS_U8 u8GOP);
1083 //-----------------
1084 // STRETCH_WINDOW
1085 //-----------------
1086 //-----------------
1087 // SET_STRETCH_WINDOW
1088 //-----------------
1089 //-------------------------------------------------------------------------------------------------
1090 /// Restore initial stretch window setting of GOP. It will set gop to OP path and stretch window width/height
1091 /// @ingroup SET_STRETCH_WINDOW
1092 /// to panel width/height
1093 /// @param u8GOPNum \b IN : Number of GOP
1094 /// @return GOP_API_SUCCESS - Success
1095 //-------------------------------------------------------------------------------------------------
1096 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Initialize_StretchWindow(MS_U8 u8GOPNum);
1097 //-------------------------------------------------------------------------------------------------
1098 /// MApi_GOP_SetGOPClk
1099 /// @ingroup GOP_ToBeRemove
1100 /// @return GOP_API_SUCCESS - Success
1101 //-------------------------------------------------------------------------------------------------
1102 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPClk(MS_U8 gopNum, EN_GOP_DST_TYPE eDstType);
1103 //-------------------------------------------------------------------------------------------------
1104 /// MApi_GOP_GWIN_GetCurrentGOP
1105 /// @ingroup GOP_ToBeRemove
1106 /// @return GOP_API_SUCCESS - Success
1107 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetCurrentGOP(void);
1108 
1109 //-----------------
1110 // GOP_CAPS
1111 //-----------------
1112 //-------------------------------------------------------------------------------------------------
1113 /// Get maximum support gop number
1114 /// @ingroup GOP_CAPS
1115 /// @param  void                \b IN: none
1116 /// @return gop number
1117 //-------------------------------------------------------------------------------------------------
1118 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetMaxGOPNum(void);
1119 //-------------------------------------------------------------------------------------------------
1120 /// Get maximum gwin number by individual gop
1121 /// @ingroup GOP_CAPS
1122 /// @param u8GopNum \b IN: Number of GOP
1123 /// @return maximum gwin number by individual gop
1124 //-------------------------------------------------------------------------------------------------
1125 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetGwinNum(MS_U8 u8GopNum);
1126 
1127 //-------------------------------------------------------------------------------------------------
1128 /// Get maximum support gwin number by all gop
1129 /// @ingroup GOP_CAPS
1130 /// @param  void                \b IN: none
1131 /// @return gwin number
1132 //-------------------------------------------------------------------------------------------------
1133 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetTotalGwinNum(void);
1134 //-------------------------------------------------------------------------------------------------
1135 /// MApi_GOP_PowerOn
1136 /// @ingroup GOP_ToBeRemove
1137 /// @return GOP_API_SUCCESS - Success
1138 //-------------------------------------------------------------------------------------------------
1139 DLL_PUBLIC E_GOP_API_Result MApi_GOP_PowerOn(void); //temparially naming, maybe change
1140 //-------------------------------------------------------------------------------------------------
1141 /// MApi_GOP_PowerOff
1142 /// @ingroup GOP_ToBeRemove
1143 /// @return GOP_API_SUCCESS - Success
1144 //-------------------------------------------------------------------------------------------------
1145 DLL_PUBLIC E_GOP_API_Result MApi_GOP_PowerOff(void); //temparially naming, maybe change
1146 //-----------------
1147 // RESET
1148 //-----------------
1149 //-------------------------------------------------------------------------------------------------
1150 /// GOP reset GOP resource
1151 /// @ingroup RESET
1152 /// @param  u32Gop                \b IN: GOP
1153 //-------------------------------------------------------------------------------------------------
1154 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result Mapi_GOP_GWIN_ResetGOP(MS_U32 u32Gop);
1155 
1156 
1157 //-------------------------------------------------------------------------------------------------
1158 /// GOP reset lock resource
1159 /// @ingroup RESET
1160 /// @param  void                \b IN: none
1161 //-------------------------------------------------------------------------------------------------
1162 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_ResetPool(void);
1163 
1164 //-----------------
1165 // GOP_POWER_STATE
1166 //-----------------
1167 //-------------------------------------------------------------------------------------------------
1168 /// set GOP power state
1169 /// @ingroup GOP_POWER_STATE
1170 /// @param enPowerState\b IN power status
1171 /// @return GOP_API_SUCCESS - Success
1172 //-------------------------------------------------------------------------------------------------
1173 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetPowerState(EN_POWER_MODE enPowerState);
1174 //-------------------------------------------------------------------------------------------------
1175 /// Set GOP bandwidth saving mode.
1176 /// @ingroup BW
1177 /// @return GOP_API_SUCCESS - Success
1178 /// @return GOP_API_FAIL - Failure
1179 //-------------------------------------------------------------------------------------------------
1180 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPBWStrength(EN_GOP_BW_STRENGTH eGOPBWStr, MS_U8 u8GOP);
1181 //-------------------------------------------------------------------------------------------------
1182 /// Get GOP Power OFF for saving power.
1183 /// @ingroup BW
1184 /// @return EN_GOP_BW_STRENGTH - mode of GOP bw saving .
1185 //-------------------------------------------------------------------------------------------------
1186 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetGOPBWStrength(MS_U8 u8GOP, EN_GOP_BW_STRENGTH* curBW);
1187 
1188 //-----------------
1189 // GOP_OPTION
1190 //-----------------
1191 //-------------------------------------------------------------------------------------------------
1192 /// Configure panel hstart timing for GOP; For configuring correct OSD position.
1193 /// @ingroup GOP_OPTION
1194 /// @param u8GOP \b IN:  GOP number
1195 /// @param u16PanelHStr \b IN horizontal start
1196 /// @return GOP_API_SUCCESS - Success
1197 /// @return GOP_API_FAIL - Failure
1198 //-------------------------------------------------------------------------------------------------
1199 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPHStart(MS_U8 u8GOP,MS_U16 u16PanelHStr);
1200 //-------------------------------------------------------------------------------------------------
1201 /// Configure GOP brightness
1202 /// @ingroup COLOR_TRANSFOR
1203 /// @param u8GOP \b IN:  GOP number
1204 /// @param u16BriVal \b IN brightness value
1205 /// @param bMSB \b IN MSB
1206 /// @return GOP_API_SUCCESS - Success
1207 /// @return GOP_API_FAIL - Failure
1208 //-------------------------------------------------------------------------------------------------
1209 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPBrightness(MS_U8 u8GOP,MS_U16 u16BriVal,MS_BOOL bMSB);
1210 //-------------------------------------------------------------------------------------------------
1211 /// Get GOP brightness value
1212 /// @ingroup COLOR_TRANSFOR
1213 /// @param u8GOP \b IN:  GOP number
1214 /// @param u16BriVal \b OUT brightness value
1215 /// @param bMSB \b OUT MSB
1216 /// @return GOP_API_SUCCESS - Success
1217 /// @return GOP_API_FAIL - Failure
1218 //-------------------------------------------------------------------------------------------------
1219 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetGOPBrightness(MS_U8 u8GOP,MS_U16* u16BriVal,MS_BOOL* bMSB);
1220 //-----------------
1221 // BW
1222 //-----------------
1223 //-------------------------------------------------------------------------------------------------
1224 /// Enable LB Couple Feature to enlarge GOP FIFO for BW issue
1225 /// @ingroup BW
1226 /// @param u8GOP \b IN:  GOP number
1227 /// @param bEnable \b IN Enable or Disable
1228 /// @return GOP_API_SUCCESS - Success
1229 /// @return GOP_API_FAIL - Failure
1230 //-------------------------------------------------------------------------------------------------
1231 DLL_PUBLIC E_GOP_API_Result MApi_GOP_EnableLBCouple(MS_U8 u8GOP, MS_BOOL bEnable);
1232 //-----------------
1233 // GOP_VE
1234 //-----------------
1235 //-------------------------------------------------------------------------------------------------
1236 /// Configure panel hstart timing for GOP; For configuring correct OSD position.
1237 /// @ingroup GOP_VE
1238 /// @param u16PanelHStr \b IN horizontal start
1239 /// @return GOP_API_SUCCESS - Success
1240 /// @return GOP_API_FAIL - Failure
1241 //-------------------------------------------------------------------------------------------------
1242 DLL_PUBLIC E_GOP_API_Result MApi_GOP_VE_SetOutputTiming(GOP_VE_TIMINGTYPE mode);
1243 
1244 //-------------------------------------------------------------------------------------------------
1245 /// API for Enable VEOSD
1246 /// @ingroup GOP_VE
1247 /// @param u8win \b IN: GOP ID
1248 /// @return GOP_API_SUCCESS - Success
1249 /// @return GOP_API_FAIL - Failure
1250 //-------------------------------------------------------------------------------------------------
1251 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Enable_VEOSD(MS_U8 u8GOP, MS_BOOL bEn);
1252 //-----------------
1253 // GOP_MIXER
1254 //-----------------
1255 //-------------------------------------------------------------------------------------------------
1256 /// Configure panel hstart timing for GOP; For configuring correct OSD position.
1257 /// @ingroup GOP_MIXER
1258 /// @param u16PanelHStr \b IN horizontal start
1259 /// @return GOP_API_SUCCESS - Success
1260 /// @return GOP_API_FAIL - Failure
1261 //-------------------------------------------------------------------------------------------------
1262 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIXER_SetOutputTiming(GOP_MIXER_TIMINGTYPE mode, GOP_MixerTiming *pMT);
1263 
1264 
1265 //-------------------------------------------------------------------------------------------------
1266 /// Configure mixer timing for GOP destination MIXER2OP; For configuring correct OSD position.
1267 /// @ingroup GOP_MIXER
1268 /// @param pMT \b IN:  mixer timing
1269 /// @return GOP_API_SUCCESS - Success
1270 /// @return GOP_API_FAIL - Failure
1271 //-------------------------------------------------------------------------------------------------
1272 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIXER_SetMIXER2OPOutputTiming(GOP_Mixer2OPTiming *pMT);
1273 
1274 //-------------------------------------------------------------------------------------------------
1275 /// Enable Mixer for Vfilter
1276 /// @ingroup GOP_MIXER
1277 /// @param bEnable \b IN:
1278 ///   - # TRUE Enable Vfilter
1279 ///   - # FALSE Disable Vfilter
1280 /// @return GOP_API_SUCCESS - Success
1281 /// @return GOP_API_FAIL - Failure
1282 //-------------------------------------------------------------------------------------------------
1283 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIXER_EnableVfilter(MS_BOOL bEnable);
1284 //-------------------------------------------------------------------------------------------------
1285 /// Enable Mixer for old mode blending
1286 /// @ingroup GOP_MIXER
1287 /// @param bEnable \b IN:
1288 ///   - # TRUE Enable old mode
1289 ///   - # FALSE Disable old mode
1290 /// @return GOP_API_SUCCESS - Success
1291 /// @return GOP_API_FAIL - Failure
1292 //-------------------------------------------------------------------------------------------------
1293 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIXER_EnableOldBlendMode(MS_U8 u8GOP, MS_BOOL bEnable);
1294 //-------------------------------------------------------------------------------------------------
1295 /// MApi_GOP_RestoreFromVsyncLimitation
1296 /// @ingroup GOP_ToBeRemove
1297 /// @return GOP_API_SUCCESS - Success
1298 //-------------------------------------------------------------------------------------------------
1299 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RestoreFromVsyncLimitation(void);
1300 
1301 //-----------------
1302 // MIU
1303 //-----------------
1304 //-------------------------------------------------------------------------------------------------
1305 /// API for set gop miu selection
1306 /// @ingroup MIU
1307 /// @param bEnable \b IN:
1308 ///   - # TRUE Enable Tile Mode for GWIN
1309 ///   - # FALSE Disable Tile Mode for GWIN
1310 /// @return GOP_API_SUCCESS - Success
1311 /// @return GOP_API_FAIL - Failure
1312 //-------------------------------------------------------------------------------------------------
1313 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIUSel(MS_U8 u8GOP, EN_GOP_SEL_TYPE MiuSel);
1314 //-------------------------------------------------------------------------------------------------
1315 /// API for set U/V SWAP
1316 /// @ingroup COLOR_TRANSFOR
1317 /// @param u8GOP \b IN: GOP number
1318 /// @param bEnable \b IN:
1319 ///   - # TRUE Enable U/V SWAP for GOP
1320 ///   - # FALSE Disable U/V SWAP for GOP
1321 /// @return GOP_API_SUCCESS - Success
1322 /// @return GOP_API_FAIL - Failure
1323 //-------------------------------------------------------------------------------------------------
1324 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetUVSwap(MS_U8 u8GOP, MS_BOOL bEn);
1325 //-------------------------------------------------------------------------------------------------
1326 /// API for set Y/C SWAP
1327 /// @ingroup COLOR_TRANSFOR
1328 /// @param u8GOP \b IN: GOP number
1329 /// @param bEnable \b IN:
1330 ///   - # TRUE Enable Y/C SWAP for GOP
1331 ///   - # FALSE Disable Y/C SWAP for GOP
1332 /// @return GOP_API_SUCCESS - Success
1333 /// @return GOP_API_FAIL - Failure
1334 //-------------------------------------------------------------------------------------------------
1335 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetYCSwap(MS_U8 u8GOP, MS_BOOL bEn);
1336 //-------------------------------------------------------------------------------------------------
1337 /// API for query gop miu selection
1338 /// @ingroup MIU
1339 /// @param bEnable \b IN:
1340 ///   - # TRUE Enable Tile Mode for GWIN
1341 ///   - # FALSE Disable Tile Mode for GWIN
1342 /// @return GOP_API_SUCCESS - Success
1343 /// @return GOP_API_FAIL - Failure
1344 //-------------------------------------------------------------------------------------------------
1345 DLL_PUBLIC MS_U8 MApi_GOP_GetMIUSel(MS_U8 u8GOP);
1346 //-------------------------------------------------------------------------------------------------
1347 /// API for set contrast
1348 /// @ingroup COLOR_TRANSFOR
1349 /// @param u8GOP            \b IN: GOP number
1350 /// @param u16YContrast     \b IN: Y contrast
1351 /// @param u16UContrast     \b IN: U contrast
1352 /// @param u16VContrast     \b IN: V contrast
1353 /// @return GOP_API_SUCCESS - Success
1354 /// @return GOP_API_FAIL - Failure
1355 //-------------------------------------------------------------------------------------------------
1356 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPContrast(MS_U8 u8GOP, MS_U16 u16YContrast, MS_U16 u16UContrast, MS_U16 u16VContrast);
1357 //-------------------------------------------------------------------------------------------------
1358 /// API for get contrast
1359 /// @ingroup COLOR_TRANSFOR
1360 /// @param u8GOP \b IN: GOP number
1361 /// @param u16YContrast     \b IN: Y contrast
1362 /// @param u16UContrast     \b IN: U contrast
1363 /// @param u16VContrast     \b IN: V contrast
1364 /// @return GOP_API_SUCCESS - Success
1365 /// @return GOP_API_FAIL - Failure
1366 //-------------------------------------------------------------------------------------------------
1367 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetGOPContrast(MS_U8 u8GOP, MS_U16* u16YContrast, MS_U16* u16UContrast, MS_U16* u16VContrast);
1368 //-------------------------------------------------------------------------------------------------
1369 /// API for VE captue
1370 /// @ingroup GOP_VE
1371 /// @param pstVECapState \b IN: paramater of capture
1372 /// @return GOP_API_SUCCESS - Success
1373 /// @return GOP_API_FAIL - Failure
1374 //-------------------------------------------------------------------------------------------------
1375 DLL_PUBLIC E_GOP_API_Result MApi_GOP_EnaVECapture(PMS_GOP_VECAPTURESTATE pstVECapState);
1376 //-------------------------------------------------------------------------------------------------
1377 /// API for get VE captue status
1378 /// @ingroup GOP_VE
1379 /// @param pstVECapState \b IN: paramater of capture
1380 /// @return GOP_API_SUCCESS - Success
1381 /// @return GOP_API_FAIL - Failure
1382 //-------------------------------------------------------------------------------------------------
1383 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetVECaptureState(PMS_GOP_VECAPTURESTATE pstVECapState);
1384 //-------------------------------------------------------------------------------------------------
1385 /// API for wait one frame done
1386 /// @ingroup GOP_VE
1387 /// @param pstVECapState \b IN: paramater of capture
1388 /// @return GOP_API_SUCCESS - Success
1389 /// @return GOP_API_FAIL - Failure
1390 //-------------------------------------------------------------------------------------------------
1391 DLL_PUBLIC E_GOP_API_Result MApi_GOP_VECaptureWaitOnFrame(PMS_GOP_VECAPTURESTATE pstVECapState);
1392 
1393 /*******************************************************************************/
1394 //Set configuration for special cases
1395 ///        - This is for special case usage. Do NOT overuse this function
1396 /// @param type \b IN:  Config type
1397 ///        - 0: E_GOP_IGNOREINIT,
1398 ///        - 1: E_GOP_CONSALPHA_BITS
1399 /// @param plist \b IN:  Config list for the specific type
1400 //         - This list could be an enum or a structure
1401 //@return GOP_API_SUCCESS - Success
1402 /*******************************************************************************/
1403 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
1404 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetConfig(EN_GOP_CONFIG_TYPE type, MS_U32 *plist);
1405 #else
1406 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetConfig(EN_GOP_CONFIG_TYPE type, void *plist);
1407 #endif
1408 /********************************************************************************/
1409 /// Set config by GOP; For dynamic usage.
1410 /// @param u8GOP \b IN:  GOP number
1411 /// @param enType \b IN:  GOP info type
1412 /// @param pstInfo \b IN misc info
1413 /// @return GOP_API_SUCCESS - Success
1414 /// @return GOP_API_FAIL - Failure
1415 /********************************************************************************/
1416 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
1417 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_SetConfigEx(MS_U8 u8Gop, EN_GOP_CONFIG_TYPE enType, MS_U32 *plist);
1418 #else
1419 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_SetConfigEx(MS_U8 u8Gop, EN_GOP_CONFIG_TYPE enType, void *plist);
1420 #endif
1421 /********************************************************************************/
1422 /// Get config by GOP.
1423 /// @param u8GOP \b IN:  GOP number
1424 /// @param enType \b IN:  GOP info type
1425 /// @param pstInfo \b IN misc info
1426 /// @return GOP_API_SUCCESS - Success
1427 /// @return GOP_API_FAIL - Failure
1428 /********************************************************************************/
1429 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
1430 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GetConfigEx(MS_U8 u8Gop, EN_GOP_CONFIG_TYPE enType, MS_U32 *plist);
1431 #else
1432 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GetConfigEx(MS_U8 u8Gop, EN_GOP_CONFIG_TYPE enType, void *plist);
1433 #endif
1434 //-----------------
1435 // 3D
1436 //-----------------
1437 //-------------------------------------------------------------------------------------------------
1438 /// API for set GWIN 3D Mode
1439 /// @ingroup 3D
1440 /// @param u8GwinId \b IN: GWin ID
1441 /// @param u16MainFBId \b IN: Main-Frame Buffer ID
1442 /// @param u16SubFBId \b IN: Sub-Frame Buffer ID
1443 /// @param EN_3DOSD_Mode \b IN: 3D Osd mode select.
1444 /// @return GOP_API_SUCCESS - Success
1445 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Set3DOSDMode(MS_U8 u8Gwin, MS_U16 u16MainFBId, MS_U16 u16SubFBId,EN_GOP_3D_MODETYPE en3DMode);
1446 
1447 //-------------------------------------------------------------------------------------------------
1448 /// API for change L/R frame for GOP 3D function
1449 /// @ingroup 3D
1450 /// @param u8GOP \b IN: GOP ID
1451 /// @return GOP_API_SUCCESS - Success
1452 //-------------------------------------------------------------------------------------------------
1453 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Set3D_LR_FrameExchange(MS_U8 u8GOP);
1454 //-------------------------------------------------------------------------------------------------
1455 /// MApi_GOP_Set_GPIO3DPin
1456 /// @ingroup GOP_ToBeRemove
1457 /// @return GOP_API_SUCCESS - Success
1458 //-------------------------------------------------------------------------------------------------
1459 DLL_PUBLIC E_GOP_API_Result MApi_GOP_Set_GPIO3DPin(MS_U32 u32GPIO3DPin);
1460 //-------------------------------------------------------------------------------------------------
1461 /// API for Query GOP Capability
1462 /// @ingroup GOP_CAPS
1463 /// @param eCapType \b IN: Capability type
1464 /// @param pRet     \b OUT: return value
1465 /// @param ret_size \b IN: input structure size
1466 /// @return GOP_API_SUCCESS - Success
1467 //-------------------------------------------------------------------------------------------------
1468 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
1469 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetChipCaps(EN_GOP_CAPS eCapType, MS_U32* pRet, MS_U32 ret_size);
1470 #else
1471 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GetChipCaps(EN_GOP_CAPS eCapType, void* pRet, MS_U32 ret_size);
1472 #endif
1473 //-----------------
1474 // GOP_TEST_PATTERN
1475 //-----------------
1476 //-------------------------------------------------------------------------------------------------
1477 /// Set test pattern
1478 /// @ingroup GOP_TEST_PATTERN
1479 /// @param eTstPatternType      \b IN:  test pattern type
1480 /// @param u32ARGB              \b IN   color
1481 /// @return GOP_API_SUCCESS - Success
1482 //-------------------------------------------------------------------------------------------------
1483 DLL_PUBLIC E_GOP_API_Result MApi_GOP_TestPattern(EN_GOP_TST_PATTERN eTstPatternType, MS_U32 u32ARGB);
1484 //-------------------------------------------------------------------------------------------------
1485 /// Set test pattern alpha
1486 /// @ingroup GOP_TEST_PATTERN
1487 /// @param bTSTAlpha            \b IN:  test pattern alpha
1488 /// @return GOP_API_SUCCESS - Success
1489 //-------------------------------------------------------------------------------------------------
1490 DLL_PUBLIC E_GOP_API_Result MApi_GOP_TestPatternAlpha_Enable(MS_BOOL bTSTAlpha);
1491 //-------------------------------------------------------------------------------------------------
1492 /// MApi_GOP_IsRegUpdated
1493 /// @ingroup GOP_ToBeRemove
1494 /// @return GOP_API_SUCCESS - Success
1495 //-------------------------------------------------------------------------------------------------
1496 DLL_PUBLIC E_GOP_API_Result MApi_GOP_IsRegUpdated(MS_U8 u8GopType);
1497 
1498 /*******************************************************************************/
1499 //Get Layer From GOP
1500 //@param u32GOP \b IN: gop id
1501 //@return MS_U32 - the layer id which the gop is on, LAYER_ID_INVALID for invalid
1502 /*******************************************************************************/
1503 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetLayerFromGOP(MS_U32 u32GOP);
1504 
1505 /*******************************************************************************/
1506 //Get GOP From layer
1507 //@param u32Layer \b IN: layer id
1508 //@return MS_U32 - the gop id which the layer have,  INVALID_GOP_NUM for invalid
1509 /*******************************************************************************/
1510 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetGOPFromLayer(MS_U32 u32Layer);
1511 
1512 //-----------------
1513 // ENABLE
1514 //-----------------
1515 //-------------------------------------------------------------------------------------------------
1516 /// Enable GWIN for display
1517 /// @ingroup ENABLE
1518 /// @param winId \b IN: GWIN id
1519 /// @param bEnable \b IN:
1520 ///   - # TRUE Show GWIN
1521 ///   - # FALSE Hide GWIN
1522 /// @return GOP_API_SUCCESS - Success
1523 /// @return GOP_API_FAIL - Failure
1524 //-------------------------------------------------------------------------------------------------
1525 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Enable(MS_U8 winId, MS_BOOL bEnable);
1526 //-------------------------------------------------------------------------------------------------
1527 /// MApi_GOP_GWIN_EnableTransClr
1528 /// @ingroup GOP_ToBeRemove
1529 /// @return GOP_API_SUCCESS - Success
1530 //-------------------------------------------------------------------------------------------------
1531 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_EnableTransClr(EN_GOP_TRANSCLR_FMT fmt, MS_BOOL bEnable);
1532 //-----------------
1533 // TRANSPARENT_CLR_CEY
1534 //-----------------
1535 //-------------------------------------------------------------------------------------------------
1536 /// Enable gop transparent color
1537 /// @ingroup TRANSPARENT_CLR_CEY
1538 /// @param fmt \b IN: RGB mode or u8Index mode color format
1539 /// @param bEnable \b IN:
1540 ///   - # TRUE Enable gop transparent color
1541 ///   - # FALSE Disable gop transparent color
1542 /// @return GOP_API_SUCCESS - Success
1543 //-------------------------------------------------------------------------------------------------
1544 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_EnableTransClr_EX(MS_U8 u8GOP,EN_GOP_TRANSCLR_FMT fmt, MS_BOOL bEnable);
1545 //-------------------------------------------------------------------------------------------------
1546 /// MApi_GOP_GWIN_EnableProgressive
1547 /// @ingroup GOP_ToBeRemove
1548 /// @return GOP_API_SUCCESS - Success
1549 //-------------------------------------------------------------------------------------------------
1550 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_EnableProgressive(MS_BOOL bEnable);
1551 //-------------------------------------------------------------------------------------------------
1552 /// Enable gop progressive mode
1553 /// @ingroup GOP_OPTION
1554 /// @param u8GOP \b IN:  GOP number
1555 /// @param bEnable \b IN:
1556 ///   - # TRUE Enable gop progressive mode
1557 ///   - # FALSE Disable gop progressive mode
1558 /// @return GOP_API_SUCCESS - Success
1559 //-------------------------------------------------------------------------------------------------
1560 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_EnableProgressive_EX(MS_U8 u8GOP,MS_BOOL bEnable);
1561 //-----------------
1562 // GWIN_DELETE
1563 //-----------------
1564 //-------------------------------------------------------------------------------------------------
1565 /// Delete the GWIN, free corresponding frame buffer
1566 /// @ingroup GWIN_DELETE
1567 /// @param winId \b IN GWIN id
1568 /// @return GOP_API_SUCCESS - Success
1569 /// @return GOP_API_FAIL - Failure
1570 //-------------------------------------------------------------------------------------------------
1571 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_DeleteWin(MS_U8 winId);
1572 //-------------------------------------------------------------------------------------------------
1573 /// MApi_GOP_GWIN_ReleaseWin
1574 /// @ingroup GOP_ToBeRemove
1575 /// @return GOP_API_SUCCESS - Success
1576 //-------------------------------------------------------------------------------------------------
1577 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_ReleaseWin(MS_U8 gId);
1578 //-------------------------------------------------------------------------------------------------
1579 /// MApi_GOP_GWIN_DestroyWin
1580 /// @ingroup GOP_ToBeRemove
1581 /// @return GOP_API_SUCCESS - Success
1582 //-------------------------------------------------------------------------------------------------
1583 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_DestroyWin(MS_U8 gId);
1584 //-------------------------------------------------------------------------------------------------
1585 /// MApi_GOP_GWIN_DeleteWinHVSize
1586 /// @ingroup GOP_ToBeRemove
1587 /// @return GOP_API_SUCCESS - Success
1588 //-------------------------------------------------------------------------------------------------
1589 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_DeleteWinHVSize(MS_U8 u8GOP, MS_U16 u16HSize, MS_U16 u16VSize);
1590 
1591 /*******************************************************************************/
1592 //Set which OSD Layer select which GOP
1593 //@param pGopLayer \b IN:information about GOP and corresponding Layer
1594 //   #u32LayerCounts: the total GOP/Layer counts to set
1595 //   #stGopLayer[i].u32GopIndex :the GOP which need to change Layer
1596 //   #stGopLayer[i].u32LayerIndex :the GOP corresponding Layer
1597 //@return GOP_API_SUCCESS - Success
1598 /*******************************************************************************/
1599 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetLayer(GOP_LayerConfig *pGopLayer, MS_U32 u32SizeOfLayerInfo);
1600 /*******************************************************************************/
1601 //Get which OSD Layer select which GOP
1602 //@param pGopLayer \b OUT:information about GOP and corresponding Layer
1603 //   #u32LayerCounts: the total GOP/Layer inited
1604 //   #stGopLayer[i].u32GopIndex :the GOP which need to change Layer
1605 //   #stGopLayer[i].u32LayerIndex :the GOP corresponding Layer
1606 //@return GOP_API_SUCCESS - Success
1607 /*******************************************************************************/
1608 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetLayer(GOP_LayerConfig *pGopLayer, MS_U32 u32SizeOfLayerInfo);
1609 //-------------------------------------------------------------------------------------------------
1610 /// MApi_GOP_GWIN_OutputColor
1611 /// @ingroup GOP_ToBeRemove
1612 /// @return GOP_API_SUCCESS - Success
1613 //-------------------------------------------------------------------------------------------------
1614 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_OutputColor(EN_GOP_OUTPUT_COLOR type);
1615 //-----------------
1616 // COLOR_TRANSFOR
1617 //-----------------
1618 //-------------------------------------------------------------------------------------------------
1619 /// Set gop output color type
1620 /// @ingroup COLOR_TRANSFOR
1621 /// @param type \b IN: gop output color type
1622 ///   - # GOPOUT_RGB => RGB mode
1623 ///   - # GOPOUT_YUV => YUV mode
1624 /// @return GOP_API_SUCCESS - Success
1625 //-------------------------------------------------------------------------------------------------
1626 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_OutputColor_EX(MS_U8 u8GOP,EN_GOP_OUTPUT_COLOR type);
1627 //-------------------------------------------------------------------------------------------------
1628 /// MApi_GOP_GWIN_SwapOverlapWin
1629 /// @ingroup GOP_ToBeRemove
1630 /// @return GOP_API_SUCCESS - Success
1631 //-------------------------------------------------------------------------------------------------
1632 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SwapOverlapWin(MS_U8 u8GOP, MS_U8 u8win);
1633 //-----------------
1634 // GWIN_OPTION
1635 //-----------------
1636 //-----------------
1637 // GWIN_ORDER
1638 //-----------------
1639 //-------------------------------------------------------------------------------------------------
1640 /// Set GWIN relative Priority
1641 /// Will Ensure Gwin Priority in the same sequence in hw as pGwinPri defined
1642 /// @ingroup GWIN_ORDER
1643 /// @param u8GOP \b IN:  GOP number
1644 /// @param pGwinPri \b IN: Relative Gwin ID Priority Defines
1645 /// @return GOP_API_SUCCESS - Success
1646 /// @return GOP_API_FAIL - Failure
1647 //-------------------------------------------------------------------------------------------------
1648 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetRelativeWinPrio(MS_U8 u8GOP, GOP_GwinPri *pGwinPri);
1649 //-------------------------------------------------------------------------------------------------
1650 /// MApi_GOP_GWIN_Switch2Gwin
1651 /// @ingroup GOP_ToBeRemove
1652 /// @return GOP_API_SUCCESS - Success
1653 //-------------------------------------------------------------------------------------------------
1654 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Switch2Gwin(MS_U8 winId);
1655 //-------------------------------------------------------------------------------------------------
1656 /// MApi_GOP_GWIN_SetAlphaInverse
1657 /// @ingroup GOP_ToBeRemove
1658 /// @return GOP_API_SUCCESS - Success
1659 //-------------------------------------------------------------------------------------------------
1660 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetAlphaInverse(MS_BOOL bEnable);
1661 //-------------------------------------------------------------------------------------------------
1662 /// Enable/Disable gop alpha inverse
1663 /// @param u8GOP \b IN:  GOP number
1664 /// @ingroup GOP_OPTION
1665 /// @param bEnable \b IN: TRUE or FALSE
1666 /// @return GOP_API_SUCCESS - Success
1667 //-------------------------------------------------------------------------------------------------
1668 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetAlphaInverse_EX(MS_U8 u8GOP,MS_BOOL bEnable);
1669 //-------------------------------------------------------------------------------------------------
1670 /// MApi_GOP_GWIN_GetAlphaInverse
1671 /// @ingroup GOP_ToBeRemove
1672 /// @return GOP_API_SUCCESS - Success
1673 //-------------------------------------------------------------------------------------------------
1674 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetAlphaInverse(MS_BOOL *bEnable);
1675 //-------------------------------------------------------------------------------------------------
1676 /// Get gop alpha inverse setting
1677 /// @param u8GOP \b IN:  GOP number
1678 /// @ingroup GOP_OPTION
1679 /// @param bEnable \b OUT: TRUE or FALSE
1680 /// @return GOP_API_SUCCESS - Success
1681 //-------------------------------------------------------------------------------------------------
1682 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_GetAlphaInverse_EX(MS_U8 u8GOP,MS_BOOL *bEnable);
1683 //-------------------------------------------------------------------------------------------------
1684 /// MApi_GOP_GWIN_SetPalette
1685 /// @ingroup GOP_ToBeRemove
1686 /// @return GOP_API_SUCCESS - Success
1687 //-------------------------------------------------------------------------------------------------
1688 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetPalette(void);
1689 
1690 /******************************************************************************/
1691 /// Enable/Disable multi alpha for one gop
1692 /// @param u32GopIdx \b IN: gop ID
1693 /// @param bEnable \b IN: TRUE/FALSE
1694 /// @return GOP_API_SUCCESS - Success
1695 /******************************************************************************/
1696 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_EnableMultiAlpha(MS_U32 u32GopIdx, MS_BOOL bEnable);
1697 
1698 /******************************************************************************/
1699 /// get multi alpha status for one gop
1700 /// @param u32GopIdx \b IN: gop ID
1701 /// @return multi alpha status
1702 /******************************************************************************/
1703 DLL_PUBLIC SYMBOL_WEAK MS_BOOL MApi_GOP_GWIN_IsMultiAlphaEnable(MS_U32 u32GopIdx);
1704 //-------------------------------------------------------------------------------------------------
1705 /// MApi_GOP_GWIN_SetAlphaValue
1706 /// @ingroup GOP_ToBeRemove
1707 /// @return GOP_API_SUCCESS - Success
1708 //-------------------------------------------------------------------------------------------------
1709 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetAlphaValue(MS_U16 * Gwin01AlphaValue, MS_U16 * Gwin23AlphaValue);
1710 DLL_PUBLIC void MApi_GOP_GWIN_SetHScroll(MS_U8 nWinID, MS_U8 nRate, MS_BOOL bEnable);
1711 DLL_PUBLIC void MApi_GOP_GWIN_SetVScroll(MS_U8 nWinID, MS_U8 nRate, MS_BOOL bEnable);
1712 //-----------------
1713 // SCROLL
1714 //-----------------
1715 //-------------------------------------------------------------------------------------------------
1716 /// API for Set Scroll rate for Gwin
1717 /// @ingroup SCROLL
1718 /// @param winId \b IN: GWIN id
1719 /// @param bEnable \b IN:
1720 ///   - # TRUE Enable Tile Mode for GWIN
1721 ///   - # FALSE Disable Tile Mode for GWIN
1722 /// @return GOP_API_SUCCESS - Success
1723 /// @return GOP_API_FAIL - Failure
1724 //-------------------------------------------------------------------------------------------------
1725 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetScrollRate(MS_U8 u8rate);
1726 //-------------------------------------------------------------------------------------------------
1727 /// Set back ground window
1728 /// @ingroup SCROLL
1729 /// @param u8WinId              \b IN:  GWIN number
1730 /// @param type                 \b IN:  scroll type
1731 /// @param u16Offset            \b IN:  scroll offset
1732 /// @param bEnable              \b IN:  Enable/Disable
1733 /// @return GOP_API_SUCCESS - Success
1734 /// @return GOP_API_FAIL - Failure
1735 //-------------------------------------------------------------------------------------------------
1736 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetScrollType(MS_U8 u8WinId, GOP_SCROLL_TYPE type,  MS_U16 u16Offset, MS_BOOL bEnable );
1737 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetSWScrollBuffer(MS_U16 bufNum, MS_U32* pBuffer);
1738 //-------------------------------------------------------------------------------------------------
1739 /// MApi_GOP_GWIN_SetFMT0TransClr
1740 /// @ingroup GOP_ToBeRemove
1741 /// @return GOP_API_SUCCESS - Success
1742 //-------------------------------------------------------------------------------------------------
1743 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetFMT0TransClr(MS_U16 clr);
1744 //-------------------------------------------------------------------------------------------------
1745 /// MApi_GOP_GWIN_SetFMT0TransClr_EX
1746 /// @ingroup GOP_ToBeRemove
1747 /// @return GOP_API_SUCCESS - Success
1748 //-------------------------------------------------------------------------------------------------
1749 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetFMT0TransClr_EX(MS_U8 u8GOP,MS_U16 clr);
1750 //-------------------------------------------------------------------------------------------------
1751 /// MApi_GOP_GWIN_SetTransClr_8888
1752 /// @ingroup GOP_ToBeRemove
1753 /// @return GOP_API_SUCCESS - Success
1754 //-------------------------------------------------------------------------------------------------
1755 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetTransClr_8888(MS_U32 clr, MS_U32 mask);
1756 //-------------------------------------------------------------------------------------------------
1757 /// MApi_GOP_GWIN_SetTransClr_8888_EX
1758 /// @ingroup GOP_ToBeRemove
1759 /// @return GOP_API_SUCCESS - Success
1760 //-------------------------------------------------------------------------------------------------
1761 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetTransClr_8888_EX(MS_U8 u8GOP,MS_U32 clr, MS_U32 mask);
1762 //-------------------------------------------------------------------------------------------------
1763 /// MApi_GOP_GWIN_EnableT3DMode
1764 /// @ingroup GOP_ToBeRemove
1765 /// @return GOP_API_SUCCESS - Success
1766 //-------------------------------------------------------------------------------------------------
1767 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_EnableT3DMode(MS_BOOL bEnable);
1768 
1769 /********************************************************************************/
1770 /// Set GWIN alpha blending
1771 /// @param u8win \b IN GWIN id
1772 /// @param bEnable \b IN
1773 ///   - # TRUE enable pixel alpha
1774 ///   - # FALSE disable pixel alpha
1775 /// @param u8coef \b IN alpha blending coefficient (0-7)
1776 /// @return GOP_API_SUCCESS - Success
1777 /// if setting constant alpha blending,please firstly set User_ConsAlpha_bits by calling MApi_GOP_SetConfig(...)
1778 /// example:
1779 /// MS_U32 aConf32[] = {DRV_VALID_8BITS};
1780 /// MApi_GOP_SetConfig(E_GOP_CONSALPHA_BITS,aConf32);
1781 /// MApi_GOP_GWIN_SetBlending(0, FALSE, 0xFF);
1782 /********************************************************************************/
1783 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetBlending(MS_U8 u8win, MS_BOOL bEnable, MS_U8 u8coef);
1784 //-------------------------------------------------------------------------------------------------
1785 /// MApi_GOP_GWIN_SetDuplication
1786 /// @ingroup GOP_ToBeRemove
1787 /// @return GOP_API_SUCCESS - Success
1788 //-------------------------------------------------------------------------------------------------
1789 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetDuplication(MS_U8 hext, MS_U8 vext);
1790 //-----------------
1791 // SET_GWIN_WINDOW
1792 //-----------------
1793 //-------------------------------------------------------------------------------------------------
1794 /// Set the GWIN's position
1795 /// @ingroup SET_GWIN_WINDOW
1796 /// @param winId  \b IN: GWIN id
1797 /// @param dispX \b IN: x coordinate
1798 /// @param dispY \b IN: y coordinate
1799 /// @return GOP_API_SUCCESS - Success
1800 /// @return GOP_API_FAIL - Failure
1801 //-------------------------------------------------------------------------------------------------
1802 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetWinPosition(MS_U8 winId, MS_U16 dispX, MS_U16 dispY);
1803 //-------------------------------------------------------------------------------------------------
1804 /// MApi_GOP_GWIN_SetWinPositionOffset
1805 /// @ingroup GOP_ToBeRemove
1806 /// @return GOP_API_SUCCESS - Success
1807 //-------------------------------------------------------------------------------------------------
1808 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetWinPositionOffset(MS_U8 winId, MS_U16 x, MS_U16 y);
1809 //-------------------------------------------------------------------------------------------------
1810 /// MApi_GOP_GWIN_SetWinProperty
1811 /// @ingroup GOP_ToBeRemove
1812 /// @return GOP_API_SUCCESS - Success
1813 //-------------------------------------------------------------------------------------------------
1814 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetWinProperty(GOP_GwinDispProperty WinProperty);
1815 
1816 //-----------------
1817 // GOP_CONFIG
1818 //-----------------
1819 //-----------------
1820 // DST
1821 //-----------------
1822 //-------------------------------------------------------------------------------------------------
1823 /// Configure the destination of a specific GOP
1824 /// @ingroup DST
1825 /// @param u8GOP \b IN : Number of GOP
1826 /// @param dsttype \b IN : GOP destination
1827 /// @return GOP_API_SUCCESS - Success
1828 /// @return GOP_API_ENUM_NOT_SUPPORTED - GOP destination not support
1829 //-------------------------------------------------------------------------------------------------
1830 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetGOPDst(MS_U8 u8GOP, EN_GOP_DST_TYPE dsttype);
1831 //-----------------
1832 // BLINK
1833 //-----------------
1834 //-------------------------------------------------------------------------------------------------
1835 /// Set GWIN Blink
1836 /// @ingroup BLINK
1837 /// @param bEnable \b IN
1838 ///   - # TRUE enable
1839 ///   - # FALSE disable
1840 /// @param u8rate \b IN Blink frame rate
1841 /// @return GOP_API_SUCCESS - Success
1842 //-------------------------------------------------------------------------------------------------
1843 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetBlink(MS_BOOL bEnable, MS_U8 u8rate);
1844 //-------------------------------------------------------------------------------------------------
1845 /// MApi_GOP_GWIN_SetFieldInver
1846 /// @ingroup GOP_ToBeRemove
1847 /// @return GOP_API_SUCCESS - Success
1848 //-------------------------------------------------------------------------------------------------
1849 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetFieldInver(MS_BOOL enable);
1850 //-------------------------------------------------------------------------------------------------
1851 /// Enable/disable GOP field inverse
1852 /// @param u8GOP \b IN:  GOP number
1853 /// @ingroup GOP_OPTION
1854 /// @param enable  \b IN TRUE/FALSE
1855 /// @return GOP_API_SUCCESS - Success
1856 //-------------------------------------------------------------------------------------------------
1857 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetFieldInver_EX(MS_U8 u8GOP,MS_BOOL enable);
1858 //-------------------------------------------------------------------------------------------------
1859 /// Set stretch window property
1860 /// @ingroup SET_STRETCH_WINDOW
1861 /// @param u8GOP_num \b IN 0: GOP0  1:GOP1
1862 /// @param eDstType \b IN \copydoc EN_GOP_DST_TYPE
1863 /// @param x \b IN stretch window horizontal start position
1864 /// @param y \b IN stretch window vertical start position
1865 /// @param width \b IN stretch window width
1866 /// @param height \b IN stretch window height
1867 /// @return GOP_API_SUCCESS - Success
1868 /// @return GOP_API_FAIL - Failure
1869 //-------------------------------------------------------------------------------------------------
1870 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_STRETCHWIN(MS_U8 u8GOP_num, EN_GOP_DST_TYPE eDstType,MS_U16 x, MS_U16 y, MS_U16 width, MS_U16 height);
1871 //-------------------------------------------------------------------------------------------------
1872 /// Set stretch window position
1873 /// @ingroup SET_STRETCH_WINDOW
1874 /// @param u8GOPNum \b IN 0: GOP0  1:GOP1
1875 /// @param u16DispX \b IN stretch window horizontal start position
1876 /// @param u16DispY \b IN stretch window vertical start position
1877 /// @return GOP_API_SUCCESS - Success
1878 /// @return GOP_API_INVALID_PARAMETERS - Failure
1879 //-------------------------------------------------------------------------------------------------
1880 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetStretchWinPosition(MS_U8 u8GOPNum, MS_U16 u16DispX, MS_U16 u16DispY);
1881 //-------------------------------------------------------------------------------------------------
1882 /// MApi_GOP_GWIN_SetHDisplaySize
1883 /// @ingroup GOP_ToBeRemove
1884 /// @return GOP_API_SUCCESS - Success
1885 //-------------------------------------------------------------------------------------------------
1886 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetHDisplaySize(MS_U8 gId, MS_U16 Width,MS_U16 X_Start);
1887 //-------------------------------------------------------------------------------------------------
1888 /// Set GWIN information to GOP registers
1889 /// @ingroup SET_GWIN_WINDOW
1890 /// @param u8win \b IN: GWINID
1891 /// @param pinfo \b IN: GWIN Information
1892 /// @return GOP_API_SUCCESS - Success
1893 /// @return GOP_API_FAIL - Failure
1894 //-------------------------------------------------------------------------------------------------
1895 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetWinInfo(MS_U8 u8win, GOP_GwinInfo* pinfo);
1896 //-------------------------------------------------------------------------------------------------
1897 /// MApi_GOP_GWIN_SetTransClr
1898 /// @ingroup GOP_ToBeRemove
1899 /// @return GOP_API_SUCCESS - Success
1900 //-------------------------------------------------------------------------------------------------
1901 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetTransClr(EN_GOP_TRANSCLR_FMT fmt, MS_U16 clr);
1902 //-------------------------------------------------------------------------------------------------
1903 /// MApi_GOP_GWIN_SetTransparentClr
1904 /// @param u8GOP \b IN: GOP number
1905 /// @param fmt \b IN:
1906 ///  # GOPTRANSCLR_FMT0: RGB mode
1907 ///  # GOPTRANSCLR_FMT1: index mode
1908 ///  # GOPTRANSCLR_FMT2: ARGB8888 mode
1909 ///  # GOPTRANSCLR_FMT3: YUV mode
1910 /// @param st_Transcolor \b IN This structure has an element color which is used for trans color.
1911 /// @return GOP_API_SUCCESS - Success
1912 //-------------------------------------------------------------------------------------------------
1913 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetTransparentClr(MS_U8 u8GOP, EN_GOP_TRANSCLR_FMT fmt, ST_Transparent_Color *st_Transcolor);
1914 //-------------------------------------------------------------------------------------------------
1915 /// Set transparent color for the GWIN
1916 /// @ingroup TRANSPARENT_CLR_CEY
1917 /// @param fmt \b IN:
1918 ///  # GOPTRANSCLR_FMT0: RGB mode
1919 ///  # GOPTRANSCLR_FMT1: index mode
1920 /// @param clr \b IN Transparent color for in specific color format. Note that this is only for
1921 /// GOPTRANSCLR_FMT0(RGB mode) use. If you use GOPTRANSCLR_FMT1 (index mode), do not care this
1922 /// @return GOP_API_SUCCESS - Success
1923 //-------------------------------------------------------------------------------------------------
1924 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetTransClr_EX(MS_U8 u8GOP,EN_GOP_TRANSCLR_FMT fmt, MS_U16 clr);
1925 //-------------------------------------------------------------------------------------------------
1926 /// MApi_GOP_GWIN_SetWinDispPosition
1927 /// @ingroup GOP_ToBeRemove
1928 /// @return GOP_API_SUCCESS - Success
1929 //-------------------------------------------------------------------------------------------------
1930 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetWinDispPosition(MS_U8 gId, MS_U16 dispX, MS_U16 dispY);
1931 //-------------------------------------------------------------------------------------------------
1932 /// MApi_GOP_GWIN_SetHMirror
1933 /// @ingroup GOP_ToBeRemove
1934 /// @return GOP_API_SUCCESS - Success
1935 //-------------------------------------------------------------------------------------------------
1936 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetHMirror(MS_BOOL bEnable);
1937 //-----------------
1938 // MIRROR
1939 //-----------------
1940 //-------------------------------------------------------------------------------------------------
1941 /// Set GOP H-Mirror
1942 /// @ingroup MIRROR
1943 /// @param u8GOP \b IN : Number of GOP
1944 /// @param bEnable \b IN
1945 ///   - # TRUE enable
1946 ///   - # FALSE disable
1947 /// @return GOP_API_SUCCESS - Success
1948 //-------------------------------------------------------------------------------------------------
1949 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetHMirror_EX(MS_U8 u8GOP,MS_BOOL bEnable);
1950 //-------------------------------------------------------------------------------------------------
1951 /// MApi_GOP_GWIN_SetVMirror
1952 /// @ingroup GOP_ToBeRemove
1953 /// @return GOP_API_SUCCESS - Success
1954 //-------------------------------------------------------------------------------------------------
1955 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetVMirror(MS_BOOL bEnable);
1956 //-------------------------------------------------------------------------------------------------
1957 /// Set GOP V-Mirror
1958 /// @ingroup MIRROR
1959 /// @param u8GOP \b IN : Number of GOP
1960 /// @param bEnable \b IN
1961 ///   - # TRUE enable
1962 ///   - # FALSE disable
1963 /// @return GOP_API_SUCCESS - Success
1964 //-------------------------------------------------------------------------------------------------
1965 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetVMirror_EX(MS_U8 u8GOP,MS_BOOL bEnable);
1966 //-------------------------------------------------------------------------------------------------
1967 /// MApi_GOP_GWIN_IsMirrorOn
1968 /// @ingroup GOP_ToBeRemove
1969 /// @return GOP_API_SUCCESS - Success
1970 //-------------------------------------------------------------------------------------------------
1971 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_IsMirrorOn(MS_BOOL *bHMirror, MS_BOOL *bVMirror);
1972 //-------------------------------------------------------------------------------------------------
1973 /// Get GOP Mirror status
1974 /// @ingroup MIRROR
1975 /// @param u8GOP \b IN : Number of GOP
1976 /// @param bHMirror          \b IN : H mirror status
1977 /// @param bVMirror          \b IN : V mirror status
1978 /// @return GOP_API_SUCCESS - Success
1979 //-------------------------------------------------------------------------------------------------
1980 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_IsMirrorOn_EX(MS_U8 u8GOP,MS_BOOL *bHMirror, MS_BOOL *bVMirror);
1981 //-------------------------------------------------------------------------------------------------
1982 /// MApi_GOP_GWIN_Set_HSCALE
1983 /// @ingroup GOP_ToBeRemove
1984 /// @return GOP_API_SUCCESS - Success
1985 //-------------------------------------------------------------------------------------------------
1986 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_HSCALE(MS_BOOL bEnable, MS_U16 src, MS_U16 dst) ;
1987 //-----------------
1988 // SCALE
1989 //-----------------
1990 //-------------------------------------------------------------------------------------------------
1991 /// Set stretch window H-Stretch ratio.
1992 /// Example: gwin size:960*540  target gwin size: 1920*1080
1993 ///     step1: MApi_GOP_GWIN_Set_HSCALE(TRUE, 960, 1920);
1994 ///     step2: MApi_GOP_GWIN_Set_VSCALE(TRUE, 540, 1080);
1995 ///     step3: MApi_GOP_GWIN_Set_STRETCHWIN(u8GOPNum, E_GOP_DST_OP0, 0, 0, 960, 540);
1996 /// @ingroup SCALE
1997 /// @param u8GOP \b IN:  GOP number
1998 /// @param bEnable \b IN:
1999 ///   - # TRUE enable
2000 ///   - # FALSE disable
2001 /// @param src \b IN: original size
2002 /// @param dst \b IN: target size
2003 /// @return GOP_API_SUCCESS - Success
2004 //-------------------------------------------------------------------------------------------------
2005 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_HSCALE_EX(MS_U8 u8GOP,MS_BOOL bEnable, MS_U16 src, MS_U16 dst);
2006 //-------------------------------------------------------------------------------------------------
2007 /// MApi_GOP_GWIN_Set_VSCALE
2008 /// @ingroup GOP_ToBeRemove
2009 /// @return GOP_API_SUCCESS - Success
2010 //-------------------------------------------------------------------------------------------------
2011 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_VSCALE(MS_BOOL bEnable, MS_U16 src, MS_U16 dst) ;
2012 
2013 //-------------------------------------------------------------------------------------------------
2014 /// Set stretch window V-Stretch ratio.
2015 /// Example: gwin size:960*540  target gwin size: 1920*1080
2016 ///     step1: MApi_GOP_GWIN_Set_HSCALE(TRUE, 960, 1920);
2017 ///     step2: MApi_GOP_GWIN_Set_VSCALE(TRUE, 540, 1080);
2018 ///     step3: MApi_GOP_GWIN_Set_STRETCHWIN(u8GOPNum, E_GOP_DST_OP0, 0, 0, 960, 540);
2019 /// @ingroup SCALE
2020 /// @param u8GOP \b IN:  GOP number
2021 /// @param bEnable \b IN:
2022 ///   - # TRUE enable
2023 ///   - # FALSE disable
2024 /// @param src \b IN: original size
2025 /// @param dst \b IN: target size
2026 /// @return GOP_API_SUCCESS - Success
2027 //-------------------------------------------------------------------------------------------------
2028 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_VSCALE_EX(MS_U8 u8GOP,MS_BOOL bEnable, MS_U16 src, MS_U16 dst);
2029 //-------------------------------------------------------------------------------------------------
2030 /// MApi_GOP_GWIN_Set_HStretchMode
2031 /// @ingroup GOP_ToBeRemove
2032 /// @return GOP_API_SUCCESS - Success
2033 //-------------------------------------------------------------------------------------------------
2034 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_HStretchMode(EN_GOP_STRETCH_HMODE HStrchMode);
2035 //-------------------------------------------------------------------------------------------------
2036 /// Set GOP H stretch mode
2037 /// @ingroup SCALE
2038 /// @param u8GOP \b IN:  GOP number
2039 /// @param HStrchMode \b IN:
2040 ///   - # E_GOP_HSTRCH_6TAPE
2041 ///   - # E_GOP_HSTRCH_DUPLICATE
2042 /// @return GOP_API_SUCCESS - Success
2043 //-------------------------------------------------------------------------------------------------
2044 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_Set_HStretchMode_EX(MS_U8 u8GOP,EN_GOP_STRETCH_HMODE HStrchMode);
2045 //-------------------------------------------------------------------------------------------------
2046 /// MApi_GOP_GWIN_Set_VStretchMode
2047 /// @ingroup GOP_ToBeRemove
2048 /// @return GOP_API_SUCCESS - Success
2049 //-------------------------------------------------------------------------------------------------
2050 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_VStretchMode(EN_GOP_STRETCH_VMODE VStrchMode);
2051 //-------------------------------------------------------------------------------------------------
2052 /// Set GOP V stretch mode
2053 /// @ingroup SCALE
2054 /// @param u8GOP \b IN:  GOP number
2055 /// @param VStrchMode \b IN:
2056 ///   - # E_GOP_VSTRCH_LINEAR
2057 ///   - # E_GOP_VSTRCH_DUPLICATE
2058 ///   - # E_GOP_VSTRCH_NEAREST
2059 /// @return GOP_API_SUCCESS - Success
2060 //-------------------------------------------------------------------------------------------------
2061 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_Set_VStretchMode_EX(MS_U8 u8GOP,EN_GOP_STRETCH_VMODE VStrchMode);
2062 //-------------------------------------------------------------------------------------------------
2063 /// MApi_GOP_GWIN_Set_TranspColorStretchMode
2064 /// @ingroup GOP_ToBeRemove
2065 /// @return GOP_API_SUCCESS - Success
2066 //-------------------------------------------------------------------------------------------------
2067 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_TranspColorStretchMode(EN_GOP_STRCH_TRANSPCOLORMODE  TColorStrchMode);
2068 //-------------------------------------------------------------------------------------------------
2069 /// Set GOP Transparent color Stretch Mode
2070 /// @ingroup SCALE
2071 /// @param u8GOP \b IN:  GOP number
2072 /// @param VStrchMode \b IN:
2073 ///   - # E_GOP_TRANSPCOLOR_STRCH_DUPLICATE
2074 ///   - # E_GOP_TRANSPCOLOR_STRCH_ASNORMAL
2075 /// @return GOP_API_SUCCESS - Success
2076 //-------------------------------------------------------------------------------------------------
2077 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_Set_TranspColorStretchMode_EX(MS_U8 u8GOP,EN_GOP_STRCH_TRANSPCOLORMODE  TColorStrchMode);
2078 //-----------------
2079 // GOP_UPDATE
2080 //-----------------
2081 //-----------------
2082 // FORCE_WRITE
2083 //-----------------
2084 //-------------------------------------------------------------------------------------------------
2085 /// Set GOP force write mode for update register. When enable force write mode, all update gop registers action will directly
2086 /// take effect (do not wait next v-sync to update gop register!).
2087 /// @ingroup FORCE_WRITE
2088 /// @param bEnable \b IN: TRUE/FALSE
2089 /// @return GOP_API_SUCCESS - Success
2090 //-------------------------------------------------------------------------------------------------
2091 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetForceWrite(MS_BOOL bEnable);
2092 
2093 //-------------------------------------------------------------------------------------------------
2094 /// Set GOP bank force write mode for update register. When enable bank force write mode, update gop num registers action will directly
2095 /// take effect (do not wait next v-sync to update gop register!).
2096 /// @ingroup FORCE_WRITE
2097 /// @param bEnable \b IN: TRUE/FALSE
2098 /// @return GOP_API_SUCCESS - Success
2099 //-------------------------------------------------------------------------------------------------
2100 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetBnkForceWrite(MS_U8 u8GOP, MS_BOOL bEnable);
2101 //-------------------------------------------------------------------------------------------------
2102 /// MApi_GOP_GWIN_GetAlphaValue
2103 /// @ingroup GOP_ToBeRemove
2104 /// @return GOP_API_SUCCESS - Success
2105 //-------------------------------------------------------------------------------------------------
2106 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetAlphaValue(MS_U16 * Gwin01AlphaValue, MS_U16 * Gwin23AlphaValue);
2107 //-------------------------------------------------------------------------------------------------
2108 /// Get GWin position info
2109 /// @ingroup SET_GWIN_WINDOW
2110 /// @param winId  \b IN: gwin id
2111 /// @param dispX \b OUT: position-X
2112 /// @param dispY \b OUT: position-Y
2113 /// @return GOP_API_SUCCESS - Success
2114 /// @return GOP_API_FAIL - Failure
2115 //-------------------------------------------------------------------------------------------------
2116 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetWinPosition(MS_U8 winId, MS_U16 * dispX, MS_U16 *dispY);
2117 //-------------------------------------------------------------------------------------------------
2118 /// MApi_GOP_GWIN_GetWinProperty
2119 /// @ingroup GOP_ToBeRemove
2120 /// @return GOP_API_SUCCESS - Success
2121 //-------------------------------------------------------------------------------------------------
2122 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetWinProperty(GOP_GwinDispProperty *WinProperty);
2123 //-------------------------------------------------------------------------------------------------
2124 /// MApi_GOP_GWIN_GetWinAttr
2125 /// @ingroup GOP_ToBeRemove
2126 /// @return GOP_API_SUCCESS - Success
2127 //-------------------------------------------------------------------------------------------------
2128 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2129 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetWinAttr(MS_U8 gId, MS_U16 *x0, MS_U16 *y0, MS_U16 *width, MS_U16 *height,  MS_U16 *fbPitch, MS_U16 *fbFmt, MS_U32 *addr, MS_U32 *size);
2130 #else
2131 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetWinAttr(MS_U8 gId, MS_U16 *x0, MS_U16 *y0, MS_U16 *width, MS_U16 *height,  MS_U16 *fbPitch, MS_U16 *fbFmt, MS_PHY *addr, MS_U32 *size);
2132 #endif
2133 //-------------------------------------------------------------------------------------------------
2134 /// Open API function:
2135 ///     Read GWIN information from GOP registers
2136 /// @ingroup SET_GWIN_WINDOW
2137 /// @param u8win \b IN  GWINID
2138 /// @param pinfo \b OUT buffer to store GWIN information
2139 /// @return GOP_API_SUCCESS - Success
2140 /// @return GOP_API_FAIL - Failure
2141 //-------------------------------------------------------------------------------------------------
2142 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetWinInfo(MS_U8 u8win, GOP_GwinInfo* pinfo);
2143 //-------------------------------------------------------------------------------------------------
2144 /// MApi_GOP_GWIN_UpdateRegOnceEx
2145 /// @ingroup GOP_ToBeRemove
2146 /// @return GOP_API_SUCCESS - Success
2147 //-------------------------------------------------------------------------------------------------
2148 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_UpdateRegOnceEx(MS_BOOL bWriteRegOnce, MS_BOOL bSync);
2149 //-------------------------------------------------------------------------------------------------
2150 /// MApi_GOP_GWIN_UpdateRegOnceEx2
2151 /// @ingroup GOP_ToBeRemove
2152 /// @return GOP_API_SUCCESS - Success
2153 //-------------------------------------------------------------------------------------------------
2154 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_UpdateRegOnceEx2(MS_U8 u8GOP,MS_BOOL bWriteRegOnce, MS_BOOL bSync);
2155 
2156 //******************************************************************************
2157 /// Extend MApi_GOP_GWIN_UpdateRegOnceEx, update special gop.
2158 /// Set gop update register method by only once.
2159 /// Example: if you want to update GOP function A, B, C in the same V sync, please write down your code like below
2160 /// MApi_GOP_GWIN_UpdateRegOnceByMask(u16GopMask,TRUE, TRUE);
2161 /// GOP_FUN_A;
2162 /// GOP_FUN_B;
2163 /// GOP_FUN_C;
2164 /// MApi_GOP_GWIN_UpdateRegOnceByMask(u16GopMask,FALSE, TRUE);
2165 /// @param u16GopMask    \b IN:bit0-gop0, bit1-gop1...
2166 /// @param bWriteRegOnce    \b IN: TRUE/FALSE
2167 /// @param bSync            \b IN: TRUE/FALSE
2168 /// @return GOP_API_SUCCESS - Success
2169 //******************************************************************************
2170 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_UpdateRegOnceByMask(MS_U16 u16GopMask,MS_BOOL bWriteRegOnce, MS_BOOL bSync);
2171 //-------------------------------------------------------------------------------------------------
2172 /// MApi_GOP_TriggerRegWriteIn
2173 /// @ingroup GOP_ToBeRemove
2174 /// @return GOP_API_SUCCESS - Success
2175 //-------------------------------------------------------------------------------------------------
2176 DLL_PUBLIC E_GOP_API_Result MApi_GOP_TriggerRegWriteIn(MS_U8 u8win, MS_BOOL bForceWriteIn);
2177 //-----------------
2178 // UPDATE
2179 //-----------------
2180 //-------------------------------------------------------------------------------------------------
2181 /// API for Trigger reg writes in
2182 /// @ingroup UPDATE
2183 /// @param u8win \b IN: GWin ID
2184 /// @param bForceWriteIn \b IN:
2185 ///   - # TRUE , Register will take effect immediately
2186 ///   - # FALSE, Register will take effect after the next vsync
2187 /// @param bSync \b IN:
2188 ///   - # FALSE , Register will fire without waiting vsync (driver will not polling the vsync)
2189 ///   - # TRUE, Register will fire and waiting vsync
2190 /// @return GOP_API_SUCCESS - Success
2191 /// @return GOP_API_FAIL - Failure
2192 //-------------------------------------------------------------------------------------------------
2193 DLL_PUBLIC E_GOP_API_Result MApi_GOP_TriggerRegWriteIn_Ex(MS_U8 u8win, MS_BOOL bForceWriteIn, MS_BOOL bSync);
2194 //-----------------
2195 // FADING
2196 //-----------------
2197 //-------------------------------------------------------------------------------------------------
2198 /// Set gwin fade in/out
2199 /// @ingroup FADING
2200 /// @param gId  \b IN: gwin id
2201 /// @param Width \b IN: gwin display width
2202 /// @param X_Start \b IN: gwin display H display starting position
2203 /// @return GOP_API_SUCCESS - Success
2204 /// @return GOP_API_FAIL - Failure
2205 //-------------------------------------------------------------------------------------------------
2206 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetFadeInOut(MS_U8 gId, EN_GOP_FADE_TYPE eGwinFadeType, MS_BOOL bEnable, MS_U8 u8FadeRate);
2207 //-----------------
2208 // SHARE
2209 //-----------------
2210 //-------------------------------------------------------------------------------------------------
2211 /// Set GWin Attribute to Shared. If shared GWin, More than one process could
2212 /// access this GWin.
2213 /// @ingroup SHARE
2214 /// @param winId \b IN: GWIN ID for shared
2215 /// @param bIsShared \b IN: shared or not
2216 /// @return GOP_API_SUCCESS - Success
2217 //-------------------------------------------------------------------------------------------------
2218 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetGWinShared(MS_U8 winId, MS_BOOL bIsShared);
2219 //-------------------------------------------------------------------------------------------------
2220 /// Set Reference cnt of shared GWin.
2221 /// @ingroup SHARE
2222 /// @param winId \b IN: GWIN ID for shared
2223 /// @param u16SharedCnt \b IN: shared reference cnt.
2224 /// @return GOP_API_SUCCESS - Success
2225 //-------------------------------------------------------------------------------------------------
2226 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetGWinSharedCnt(MS_U8 winId, MS_U16 u16SharedCnt);
2227 //-----------------
2228 // TILE_MODE
2229 //-----------------
2230 //-------------------------------------------------------------------------------------------------
2231 /// API for DIP Tile mode for GWIN
2232 /// @ingroup TILE_MODE
2233 /// @param winId \b IN: GWIN id
2234 /// @param bEnable \b IN:
2235 ///   - # TRUE Enable Tile Mode for GWIN
2236 ///   - # FALSE Disable Tile Mode for GWIN
2237 /// @param tiletype \b IN: tile type
2238 /// @return GOP_API_SUCCESS - Success
2239 /// @return GOP_API_FAIL - Failure
2240 //-------------------------------------------------------------------------------------------------
2241 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_EnableTileMode(MS_U8 winId, MS_BOOL bEnable, EN_GOP_TILE_DATA_TYPE tiletype );
2242 //-----------------
2243 // PINPON
2244 //-----------------
2245 //-------------------------------------------------------------------------------------------------
2246 /// API for set gop pinpong
2247 /// @ingroup PINPON
2248 /// @param winId \b IN: GWIN id
2249 /// @param bEnable \b IN:
2250 ///   - # TRUE Enable Tile Mode for GWIN
2251 ///   - # FALSE Disable Tile Mode for GWIN
2252 /// @return GOP_API_SUCCESS - Success
2253 /// @return GOP_API_FAIL - Failure
2254 //-------------------------------------------------------------------------------------------------
2255 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetPINPON(MS_U8 winId, MS_BOOL bEn,GOP_PINPON_MODE PINPON_Mode);
2256 //-------------------------------------------------------------------------------------------------
2257 /// MApi_GOP_SetGOPYUV
2258 /// @ingroup GOP_ToBeRemove
2259 /// @return GOP_API_SUCCESS - Success
2260 //-------------------------------------------------------------------------------------------------
2261 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetGOPYUV(MS_U8 u8GOP);
2262 //-------------------------------------------------------------------------------------------------
2263 //Set which MUX select which GOP of mixer, when different gop do the alpha blending
2264 /// @ingroup GOP_MIXER
2265 /// @param u8GOP \b IN:  GOP number
2266 /// @param u8Mux \b IN:  Mux number
2267 /// @param bEn \b IN:
2268 ///   - # TRUE Enable u8GOP to mixer u8Mux
2269 ///   - # FALSE Disable u8GOP to mixer u8Mux
2270 //@return GOP_API_SUCCESS - Success
2271 //-------------------------------------------------------------------------------------------------
2272 DLL_PUBLIC E_GOP_API_Result MApi_GOP_MIXER_SetMux(MS_U8 u8GOP,MS_U8 u8Mux, MS_BOOL bEn);
2273 //-----------------
2274 // EXTRA
2275 //-----------------
2276 //-------------------------------------------------------------------------------------------------
2277 /// API for set GWIN New Alpha Mode
2278 /// @ingroup EXTRA
2279 /// @param gWinId \b IN: GWin ID
2280 /// @param bEnable \b IN:
2281 ///   - # TRUE enable new alpha mode
2282 ///   - # FALSE disable new alpha mode
2283 /// @return GOP_API_SUCCESS - Success
2284 /// @return GOP_API_FAIL - Failure
2285 //-------------------------------------------------------------------------------------------------
2286 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetNewAlphaMode(MS_U8 gWinId, MS_BOOL bEnable);
2287 
2288 //-------------------------------------------------------------------------------------------------
2289 /// API for set GWIN Pre Alpha Mode
2290 /// @ingroup EXTRA
2291 /// @param gWinId \b IN: GWin ID
2292 /// @param bEnable \b IN:
2293 ///   - # TRUE enable new alpha mode
2294 ///   - # FALSE disable new alpha mode
2295 /// @return GOP_API_SUCCESS - Success
2296 /// @return GOP_API_FAIL - Failure
2297 //-------------------------------------------------------------------------------------------------
2298 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetPreAlphaMode(MS_U8 u8GOP, MS_BOOL bEnble);
2299 //-----------------
2300 // GWIN
2301 //-----------------
2302 //-----------------
2303 // GWIN_CREATE
2304 //-----------------
2305 //-------------------------------------------------------------------------------------------------
2306 /// Create GWIN
2307 /// @ingroup GWIN_CREATE
2308 /// @param width \b IN: GWIN width
2309 /// @param height \b IN: GWIN height
2310 /// @param fbFmt \b IN: frame buffer pixel format
2311 ///   - #0xFFFF default FB format
2312 /// @return The id for the created GWIN, if return 0xff, it represents create gwin fail
2313 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateWin(MS_U16 width, MS_U16 height, MS_U16 fbFmt);
2314 //-------------------------------------------------------------------------------------------------
2315 /// MApi_GOP_GWIN_CreateWin2
2316 /// @ingroup GOP_ToBeRemove
2317 /// @return GOP_API_SUCCESS - Success
2318 //-------------------------------------------------------------------------------------------------
2319 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateWin2(MS_U16 width, MS_U16 height, MS_U16 fbFmt, EN_GOP_FRAMEBUFFER_STRING FBString);
2320 //-------------------------------------------------------------------------------------------------
2321 /// MApi_GOP_GWIN_CreateWin_Assign_FB
2322 /// @ingroup GOP_ToBeRemove
2323 /// @return GOP_API_SUCCESS - Success
2324 //-------------------------------------------------------------------------------------------------
2325 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateWin_Assign_FB(MS_U8 u8GOP, MS_U8 FBId, MS_U16 dispX, MS_U16 dispY);
2326 //-------------------------------------------------------------------------------------------------
2327 /// Create GWIN and assign frame buffer to this GWIN
2328 /// @ingroup GWIN_CREATE
2329 /// @param u8GOP \b IN: GOP number
2330 /// @param FBId \b IN: frame buffer ID
2331 /// @param dispX \b IN: frame buffer starting x position
2332 /// @param dispY \b IN: frame buffer starting y position
2333 /// @return The id for the created GWIN, if return 0xff, it represents create gwin fail
2334 //-------------------------------------------------------------------------------------------------
2335 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateWin_Assign_32FB(MS_U8 u8GOP, MS_U32 u32FBId, MS_U16 dispX, MS_U16 dispY);
2336 //-------------------------------------------------------------------------------------------------
2337 /// Create given GWIN id
2338 /// @ingroup GWIN_CREATE
2339 /// @param u8WinId \b IN: GWIN id
2340 /// @param width \b IN: GWIN width
2341 /// @param height \b IN: GWIN height
2342 /// @param fbFmt \b IN: GWIN color format
2343 /// @return The id for the created GWIN, if return 0xff, it represents create gwin fail
2344 //-------------------------------------------------------------------------------------------------
2345 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateStaticWin(MS_U8 u8WinId, MS_U16 width, MS_U16 height, MS_U16 fbFmt);
2346 //-------------------------------------------------------------------------------------------------
2347 /// MApi_GOP_GWIN_CreateStaticWin2
2348 /// @ingroup GOP_ToBeRemove
2349 /// @return GOP_API_SUCCESS - Success
2350 //-------------------------------------------------------------------------------------------------
2351 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateStaticWin2(MS_U8 u8WinId, MS_U16 width, MS_U16 height, MS_U16 fbFmt, EN_GOP_FRAMEBUFFER_STRING FBString);
2352 //-------------------------------------------------------------------------------------------------
2353 /// MApi_GOP_GWIN_CreateStaticWin_Assign_FB
2354 /// @ingroup GOP_ToBeRemove
2355 /// @return GOP_API_SUCCESS - Success
2356 //-------------------------------------------------------------------------------------------------
2357 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateStaticWin_Assign_FB(MS_U8 u8WinId, MS_U8 u8GOP, MS_U8 FBId, MS_U16 dispX, MS_U16 dispY);
2358 
2359 //-------------------------------------------------------------------------------------------------
2360 /// Create GWIN by given GWIN id and frame buffer id
2361 /// @ingroup GWIN_CREATE
2362 /// @param u8WinId \b IN: GWIN id
2363 /// @param u8GOP \b IN: GOP number
2364 /// @param FBId \b IN: frame buffer id
2365 /// @param dispX \b IN: gwin's frame buffer starting x
2366 /// @param dispY \b IN: gwin's frame buffer starting y
2367 /// @return The id for the created GWIN, if return 0xff, it represents create gwin fail
2368 //-------------------------------------------------------------------------------------------------
2369 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateStaticWin_Assign_32FB(MS_U8 u8WinId, MS_U8 u8GOP, MS_U32 u32FBId, MS_U16 dispX, MS_U16 dispY);
2370 
2371 //-----------------
2372 // GWIN_STATUS
2373 //-----------------
2374 //-------------------------------------------------------------------------------------------------
2375 /// Check if GWIN is created
2376 /// @ingroup GWIN_STATUS
2377 /// @param gId \b IN: GWINID
2378 /// @return TRUE or FALSE
2379 //-------------------------------------------------------------------------------------------------
2380 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_IsGwinExist(MS_U8 gId);
2381 
2382 //-------------------------------------------------------------------------------------------------
2383 /// Get the free GWIN id
2384 /// @ingroup GWIN_STATUS
2385 /// @return the GWIN id
2386 //-------------------------------------------------------------------------------------------------
2387 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetFreeWinID(void);
2388 //-------------------------------------------------------------------------------------------------
2389 /// MApi_GOP_GWIN_GetMAXWinID
2390 /// @ingroup GOP_ToBeRemove
2391 /// @return GOP_API_SUCCESS - Success
2392 //-------------------------------------------------------------------------------------------------
2393 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetMAXWinID(void);
2394 //-------------------------------------------------------------------------------------------------
2395 /// Get current active GWIN id
2396 /// @ingroup GWIN_STATUS
2397 /// @return current active GWIN id
2398 //-------------------------------------------------------------------------------------------------
2399 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetCurrentWinId(void);
2400 //-------------------------------------------------------------------------------------------------
2401 /// MApi_GOP_GWIN_GetMaxActiveGwin_v
2402 /// @ingroup GOP_ToBeRemove
2403 /// @return GOP_API_SUCCESS - Success
2404 //-------------------------------------------------------------------------------------------------
2405 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_GetMaxActiveGwin_v(void);
2406 //-------------------------------------------------------------------------------------------------
2407 /// MApi_GOP_GWIN_Get_HSTART
2408 /// @ingroup GOP_ToBeRemove
2409 /// @return GOP_API_SUCCESS - Success
2410 //-------------------------------------------------------------------------------------------------
2411 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_Get_HSTART(void);
2412 
2413 
2414 //-------------------------------------------------------------------------------------------------
2415 /// Get total active gwin number
2416 /// @ingroup GWIN_STATUS
2417 /// @return total active gwin number
2418 //-------------------------------------------------------------------------------------------------
2419 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_GetActiveGWIN(void);
2420 //-------------------------------------------------------------------------------------------------
2421 /// MApi_GOP_GWIN_GetMaxVEnd
2422 /// @ingroup GOP_ToBeRemove
2423 /// @return GOP_API_SUCCESS - Success
2424 //-------------------------------------------------------------------------------------------------
2425 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_GetMaxVEnd(MS_BOOL bActive);
2426 //-------------------------------------------------------------------------------------------------
2427 /// MApi_GOP_GWIN_IsAllGWINDisabled
2428 /// @ingroup GOP_ToBeRemove
2429 /// @return GOP_API_SUCCESS - Success
2430 //-------------------------------------------------------------------------------------------------
2431 DLL_PUBLIC MS_BOOL MApi_GOP_GWIN_IsAllGWINDisabled(void);
2432 
2433 //-------------------------------------------------------------------------------------------------
2434 /// Check if all some GWIN is currently enabled
2435 /// @ingroup ENABLE
2436 /// @param  winId \b IN: gwin id
2437 /// @return  - the according GWin is enabled or not
2438 //-------------------------------------------------------------------------------------------------
2439 DLL_PUBLIC MS_BOOL MApi_GOP_GWIN_IsGWINEnabled(MS_U8 winId);
2440 //-------------------------------------------------------------------------------------------------
2441 /// MApi_GOP_GWIN_IsEnabled
2442 /// @ingroup GOP_ToBeRemove
2443 /// @return GOP_API_SUCCESS - Success
2444 //-------------------------------------------------------------------------------------------------
2445 DLL_PUBLIC MS_BOOL MApi_GOP_GWIN_IsEnabled(void);
2446 //-------------------------------------------------------------------------------------------------
2447 /// MApi_GOP_GWIN_CheckOpmodeIsOn
2448 /// @ingroup GOP_ToBeRemove
2449 /// @return GOP_API_SUCCESS - Success
2450 //-------------------------------------------------------------------------------------------------
2451 DLL_PUBLIC MS_BOOL MApi_GOP_GWIN_CheckOpmodeIsOn(void);
2452 //-------------------------------------------------------------------------------------------------
2453 /// MApi_GOP_GWIN_CheckOpmodeIsOn_EX
2454 /// @ingroup GOP_ToBeRemove
2455 /// @return GOP_API_SUCCESS - Success
2456 //-------------------------------------------------------------------------------------------------
2457 DLL_PUBLIC SYMBOL_WEAK MS_BOOL MApi_GOP_GWIN_CheckOpmodeIsOn_EX(MS_U8 u8GOP);
2458 //-------------------------------------------------------------------------------------------------
2459 /// MApi_GOP_GWIN_SetResolution
2460 /// @ingroup GOP_ToBeRemove
2461 /// @return GOP_API_SUCCESS - Success
2462 //-------------------------------------------------------------------------------------------------
2463 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetResolution(MS_U8 u8GwinId, MS_U8 u8FbId, GOP_GwinInfo* pGwinInfo, GOP_StretchInfo* pStretchInfo, EN_GOP_STRETCH_DIRECTION direction, MS_U16 u16DstWidth, MS_U16 u16DstHeight);
2464 //-------------------------------------------------------------------------------------------------
2465 /// API for set GWIN resolution in one function
2466 /// @ingroup SET_STRETCH_WINDOW
2467 /// @param u8GwinId \b IN: GWin ID
2468 /// @param u8FbId \b IN: Frame Buffer ID
2469 /// @param pGwinInfo \b IN: pointer to GOP_GwinInfo structure
2470 /// @param pStretchInfo \b IN: pointer to GOP_StretchInfo
2471 /// @param direction \b IN: to decide which direction to stretch
2472 /// @param u16DstWidth \b IN: set scaled width if H direction is specified
2473 /// @param u16DstHeight \b IN: set scaled height if V direction is specified
2474 /// @return GOP_API_SUCCESS - Success
2475 //-------------------------------------------------------------------------------------------------
2476 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetResolution_32FB(MS_U8 u8GwinId, MS_U32 u32FbId, GOP_GwinInfo* pGwinInfo, GOP_StretchInfo* pStretchInfo, EN_GOP_STRETCH_DIRECTION direction, MS_U16 u16DstWidth, MS_U16 u16DstHeight);
2477 //-------------------------------------------------------------------------------------------------
2478 /// GOP Exit
2479 /// @ingroup INIT
2480 /// @param  void                \b IN: none
2481 //-------------------------------------------------------------------------------------------------
2482 DLL_PUBLIC void MApi_GOP_Exit(void);
2483 
2484 
2485 //======================================================================================
2486 //  GOP FB management
2487 //======================================================================================
2488 //-------------------------------------------------------------------------------------------------
2489 /// MApi_GOP_FB_SEL
2490 /// @ingroup GOP_ToBeRemove
2491 /// @return GOP_API_SUCCESS - Success
2492 //-------------------------------------------------------------------------------------------------
2493 DLL_PUBLIC E_GOP_API_Result MApi_GOP_FB_SEL(MS_U8 u8FB);
2494 //-------------------------------------------------------------------------------------------------
2495 /// MApi_GOP_GWIN_SetDoubleHeap
2496 /// @ingroup GOP_ToBeRemove
2497 /// @return GOP_API_SUCCESS - Success
2498 //-------------------------------------------------------------------------------------------------
2499 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetDoubleHeap(MS_U32 u32DblHeapAdr, MS_U32 u32DblHeapLen);
2500 //-------------------------------------------------------------------------------------------------
2501 /// MApi_GOP_GWIN_MapFB2Win
2502 /// @ingroup GOP_ToBeRemove
2503 /// @return GOP_API_SUCCESS - Success
2504 //-------------------------------------------------------------------------------------------------
2505 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_MapFB2Win(MS_U8 fbId, MS_U8 gwinId);
2506 //-----------------
2507 // FLIP
2508 //-----------------
2509 //-------------------------------------------------------------------------------------------------
2510 /// Change a GWIN's frame buffer, this enables an off screen buffer to be shown
2511 /// @ingroup FLIP
2512 /// @param fbId \b IN frame buffer id
2513 /// @param gwinId \b IN \copydoc GWINID
2514 /// @return GOP_API_SUCCESS - Success
2515 /// @return GOP_API_FAIL - Failure
2516 //-------------------------------------------------------------------------------------------------
2517 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Map32FB2Win(MS_U32 u32fbId, MS_U8 u8gwinId);
2518 //-------------------------------------------------------------------------------------------------
2519 /// MApi_GOP_GWIN_Switch2FB
2520 /// @ingroup GOP_ToBeRemove
2521 /// @return GOP_API_SUCCESS - Success
2522 //-------------------------------------------------------------------------------------------------
2523 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Switch2FB(MS_U8 fbId);
2524 //-------------------------------------------------------------------------------------------------
2525 /// MApi_GOP_GWIN_Switch2_32FB
2526 /// @ingroup GOP_ToBeRemove
2527 /// @return GOP_API_SUCCESS - Success
2528 //-------------------------------------------------------------------------------------------------
2529 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Switch2_32FB(MS_U32 u32fbId);
2530 //-------------------------------------------------------------------------------------------------
2531 /// MApi_GOP_Switch_GWIN_2_FB
2532 /// @ingroup GOP_ToBeRemove
2533 /// @return GOP_API_SUCCESS - Success
2534 //-------------------------------------------------------------------------------------------------
2535 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_GWIN_2_FB(MS_U8 gWinId, MS_U8 fbId, MS_U16 u16WaitTagID, MS_U16 *pU16QueueCnt);
2536 
2537 //-------------------------------------------------------------------------------------------------
2538 /// Set Flip GWIN frame buffer
2539 /// @ingroup FLIP
2540 /// @param gWinId \b IN: gwin id
2541 /// @param fbId \b IN: frame buffer id
2542 /// @param u16WaitTagID \b IN: WaitTagID
2543 /// @param pU16QueueCnt \b IN: Queue count
2544 /// @return TRUE or FALSE
2545 //-------------------------------------------------------------------------------------------------
2546 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_GWIN_2_32FB(MS_U8 gWinId, MS_U32 u32fbId, MS_U32 u32WaitTagID, MS_U32 *pU32QueueCnt);
2547 //-------------------------------------------------------------------------------------------------
2548 /// Set Flip GWIN frame buffer by addr
2549 /// @ingroup FLIP
2550 /// @param gWinId \b IN: gwin id
2551 /// @param u32FlipAddr \b IN: addr
2552 /// @param u16WaitTagID \b IN: WaitTagID
2553 /// @param pU16QueueCnt \b IN: Queue count
2554 /// @return TRUE or FALSE
2555 //-------------------------------------------------------------------------------------------------
2556 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2557 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_GWIN_2_FB_BY_ADDR(MS_U8 gWinId, MS_U32 u32FlipAddr, MS_U16 u16WaitTagID, MS_U16 *pU16QueueCnt);
2558 #else
2559 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_GWIN_2_FB_BY_ADDR(MS_U8 gWinId, MS_PHY phyFlipAddr, MS_U16 u16WaitTagID, MS_U16 *pU16QueueCnt);
2560 #endif
2561 //-------------------------------------------------------------------------------------------------
2562 /// Set 3D Flip GWIN frame buffer by addr
2563 /// @ingroup FLIP
2564 /// @param gWinId \b IN: gwin id
2565 /// @param u32MainFlipAddr \b IN: frame buffer id
2566 /// @param u32SubFlipAddr \b IN: frame buffer id
2567 /// @param u16WaitTagID \b IN: WaitTagID
2568 /// @param pU16QueueCnt \b IN: Queue count
2569 /// @return TRUE or FALSE
2570 //-------------------------------------------------------------------------------------------------
2571 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2572 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_3DGWIN_2_FB_BY_ADDR(MS_U8 gWinId, MS_U32 u32MainFlipAddr, MS_U32 u32SubFlipAddr, MS_U16 u16WaitTagID, MS_U16 *pU16QueueCnt);
2573 #else
2574 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_3DGWIN_2_FB_BY_ADDR(MS_U8 gWinId, MS_PHY phyMainFlipAddr, MS_PHY phySubFlipAddr, MS_U16 u16WaitTagID, MS_U16 *pU16QueueCnt);
2575 #endif
2576 //-------------------------------------------------------------------------------------------------
2577 /// Set Multi GOP Flip GWIN frame buffer by addr
2578 /// @ingroup FLIP
2579 /// @param gWinId \b IN: gwin id
2580 /// @param fbId \b IN: frame buffer id
2581 /// @param u16WaitTagID \b IN: WaitTagID
2582 /// @param pU16QueueCnt \b IN: Queue count
2583 /// @return TRUE or FALSE
2584 //-------------------------------------------------------------------------------------------------
2585 DLL_PUBLIC MS_BOOL MApi_GOP_Switch_Multi_GWIN_2_FB_BY_ADDR(GOP_MultiFlipInfo GopMultiFlipInfo);
2586 //-------------------------------------------------------------------------------------------------
2587 /// MApi_GOP_GWIN_DeleteFB
2588 /// @ingroup GOP_ToBeRemove
2589 /// @return GOP_API_SUCCESS - Success
2590 //-------------------------------------------------------------------------------------------------
2591 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_DeleteFB(MS_U8 fbId);
2592 
2593 //-----------------
2594 // FB_DELETE
2595 //-----------------
2596 //-------------------------------------------------------------------------------------------------
2597 /// Destroy a frame buffer
2598 /// @ingroup FB_DELETE
2599 /// @param fbId \b IN frame buffer id
2600 /// @return GOP_API_SUCCESS - Success
2601 //-------------------------------------------------------------------------------------------------
2602 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Delete32FB(MS_U32 u32fbId);
2603 //-------------------------------------------------------------------------------------------------
2604 /// MApi_GOP_GWIN_GetFBRegion
2605 /// @ingroup GOP_ToBeRemove
2606 /// @return GOP_API_SUCCESS - Success
2607 //-------------------------------------------------------------------------------------------------
2608 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetFBRegion(MS_U8 fbID, MS_U16 *pX,MS_U16 *pY, MS_U16 *pW, MS_U16 *pH);
2609 //-------------------------------------------------------------------------------------------------
2610 /// MApi_GOP_GWIN_Get32FBRegion
2611 /// @ingroup GOP_ToBeRemove
2612 /// @return GOP_API_SUCCESS - Success
2613 //-------------------------------------------------------------------------------------------------
2614 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Get32FBRegion(MS_U32 u32fbID, MS_U16 *pX, MS_U16 *pY, MS_U16 *pW, MS_U16 *pH);
2615 //-------------------------------------------------------------------------------------------------
2616 /// MApi_GOP_GWIN_GetFBPosition
2617 /// @ingroup GOP_ToBeRemove
2618 /// @return GOP_API_SUCCESS - Success
2619 //-------------------------------------------------------------------------------------------------
2620 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetFBPosition(MS_U8 fbID, MS_U16 *pX,MS_U16 *pY);
2621 //-------------------------------------------------------------------------------------------------
2622 /// MApi_GOP_GWIN_Get32FBPosition
2623 /// @ingroup GOP_ToBeRemove
2624 /// @return GOP_API_SUCCESS - Success
2625 //-------------------------------------------------------------------------------------------------
2626 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Get32FBPosition(MS_U32 u32fbID, MS_U16 *pX, MS_U16 *pY);
2627 //-------------------------------------------------------------------------------------------------
2628 /// MApi_GOP_GWIN_SetFBInfo
2629 /// @ingroup GOP_ToBeRemove
2630 /// @return GOP_API_SUCCESS - Success
2631 //-------------------------------------------------------------------------------------------------
2632 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetFBInfo(MS_U8 fbId, GOP_GwinFBAttr *fbAttr);
2633 //-----------------
2634 // SET
2635 //-----------------
2636 //-------------------------------------------------------------------------------------------------
2637 /// Set frame buffer info
2638 /// @ingroup SET
2639 /// @param fbId  \b IN: frame buffer id
2640 /// @param fbAttr \b IN: frame buffer attribute
2641 /// @return GOP_API_SUCCESS - Success
2642 /// @return GOP_API_FAIL - Failure
2643 //-------------------------------------------------------------------------------------------------
2644 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set32FBInfo(MS_U32 u32fbId, GOP_GwinFBAttr *fbAttr);
2645 
2646 //-------------------------------------------------------------------------------------------------
2647 /// Get frame buffer info
2648 /// @ingroup SET
2649 /// @param fbId  \b IN: frame buffer id
2650 /// @param fbAttr \b IN: frame buffer attribute
2651 /// @return GOP_API_SUCCESS - Success
2652 /// @return GOP_API_FAIL - Failure
2653 //-------------------------------------------------------------------------------------------------
2654 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetFBInfo(MS_U8 fbId, GOP_GwinFBAttr *fbAttr);
2655 //-------------------------------------------------------------------------------------------------
2656 /// MApi_GOP_GWIN_Get32FBInfo
2657 /// @ingroup GOP_ToBeRemove
2658 /// @return GOP_API_SUCCESS - Success
2659 //-------------------------------------------------------------------------------------------------
2660 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Get32FBInfo(MS_U32 u32fbId, GOP_GwinFBAttr *fbAttr);
2661 //-------------------------------------------------------------------------------------------------
2662 /// MApi_GOP_GWIN_GetFBAddr
2663 /// @ingroup GOP_ToBeRemove
2664 /// @return GOP_API_SUCCESS - Success
2665 //-------------------------------------------------------------------------------------------------
2666 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2667 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetFBAddr(MS_U8 fbID, MS_U32 *pAddr);
2668 #else
2669 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_GetFBAddr(MS_U8 fbID, MS_PHY *pAddr);
2670 #endif
2671 //-------------------------------------------------------------------------------------------------
2672 /// MApi_GOP_GWIN_Get32FBAddr
2673 /// @ingroup GOP_ToBeRemove
2674 /// @return GOP_API_SUCCESS - Success
2675 //-------------------------------------------------------------------------------------------------
2676 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2677 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Get32FBAddr(MS_U32 u32fbID, MS_U32 *pAddr);
2678 #else
2679 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Get32FBAddr(MS_U32 u32fbID, MS_PHY *pAddr);
2680 #endif
2681 //-------------------------------------------------------------------------------------------------
2682 /// API for Clear GOP GWIN FlipQueue
2683 /// @ingroup FLIP
2684 /// @param u8GwinId \b IN: GWin ID
2685 /// @return GOP_API_SUCCESS - Success
2686 //-------------------------------------------------------------------------------------------------
2687 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_ClearFlipQueue(MS_U8 gWinId);
2688 //-------------------------------------------------------------------------------------------------
2689 /// MApi_GOP_GWIN_GetMaxFBNum
2690 /// @ingroup GOP_ToBeRemove
2691 /// @return GOP_API_SUCCESS - Success
2692 //-------------------------------------------------------------------------------------------------
2693 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetMaxFBNum(void);
2694 //-------------------------------------------------------------------------------------------------
2695 /// Get maximum FB number by all gop
2696 /// @ingroup GOP_CAPS
2697 /// @param  void                \b IN: none
2698 /// @return maximum fb number by all gop
2699 //-------------------------------------------------------------------------------------------------
2700 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetMax32FBNum(void);
2701 //-------------------------------------------------------------------------------------------------
2702 /// MApi_GOP_FB_Get
2703 /// @ingroup GOP_ToBeRemove
2704 /// @return GOP_API_SUCCESS - Success
2705 //-------------------------------------------------------------------------------------------------
2706 DLL_PUBLIC MS_U8 MApi_GOP_FB_Get(void);
2707 //-------------------------------------------------------------------------------------------------
2708 /// MApi_GOP_GWIN_GetMAXFBID
2709 /// @ingroup GOP_ToBeRemove
2710 /// @return GOP_API_SUCCESS - Success
2711 //-------------------------------------------------------------------------------------------------
2712 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetMAXFBID(void);
2713 //-------------------------------------------------------------------------------------------------
2714 /// MApi_GOP_GWIN_GetMAX32FBID
2715 /// @ingroup GOP_ToBeRemove
2716 /// @return GOP_API_SUCCESS - Success
2717 //-------------------------------------------------------------------------------------------------
2718 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetMAX32FBID(void);
2719 //-------------------------------------------------------------------------------------------------
2720 /// MApi_GOP_GWIN_DestroyFB
2721 /// @ingroup GOP_ToBeRemove
2722 /// @return GOP_API_SUCCESS - Success
2723 //-------------------------------------------------------------------------------------------------
2724 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_DestroyFB(MS_U8 fbId);
2725 //-------------------------------------------------------------------------------------------------
2726 /// MApi_GOP_GWIN_Destroy32FB
2727 /// @ingroup GOP_ToBeRemove
2728 /// @return GOP_API_SUCCESS - Success
2729 //-------------------------------------------------------------------------------------------------
2730 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Destroy32FB(MS_U32 u32fbId);
2731 //-------------------------------------------------------------------------------------------------
2732 /// MApi_GOP_GWIN_CreateFBFrom3rdSurf
2733 /// @ingroup GOP_ToBeRemove
2734 /// @return GOP_API_SUCCESS - Success
2735 //-------------------------------------------------------------------------------------------------
2736 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2737 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBFrom3rdSurf(MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr, MS_U16 pitch, MS_U8* ret_FBId);
2738 #else
2739 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBFrom3rdSurf(MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr, MS_U16 pitch, MS_U8* ret_FBId);
2740 #endif
2741 //-------------------------------------------------------------------------------------------------
2742 /// Create frame buffer from given dram address
2743 /// @ingroup FB_CREATE
2744 /// @param width  \b IN: frame buffer width
2745 /// @param height \b IN: frame buffer height
2746 /// @param fbFmt \b IN: frame buffer color format
2747 /// @param u32FbAddr \b IN: frame buffer starting address
2748 /// @param pitch \b IN: frame buffer pitch
2749 /// @param ret_FBId \b OUT: frame buffer id
2750 /// @return GOP_API_SUCCESS - Success
2751 /// @return GOP_API_FAIL - Failure
2752 //-------------------------------------------------------------------------------------------------
2753 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2754 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBFrom3rdSurf(MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr, MS_U16 pitch, MS_U32* u32ret_FBId);
2755 #else
2756 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBFrom3rdSurf(MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr, MS_U16 pitch, MS_U32* u32ret_FBId);
2757 #endif
2758 //-------------------------------------------------------------------------------------------------
2759 /// MApi_GOP_GWIN_CreateFBbyStaticAddr
2760 /// @ingroup GOP_ToBeRemove
2761 /// @return GOP_API_SUCCESS - Success
2762 //-------------------------------------------------------------------------------------------------
2763 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2764 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBbyStaticAddr(MS_U8 fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr );
2765 #else
2766 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBbyStaticAddr(MS_U8 fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr );
2767 #endif
2768 //-------------------------------------------------------------------------------------------------
2769 /// Create frame buffer from given frame buffer id and dram address. User should call MApi_GOP_GWIN_GetFree32FBID()
2770 /// first and then use this frame buffer id as this function input parameter
2771 /// @ingroup FB_CREATE
2772 /// @param fbId  \b IN: frame buffer id
2773 /// @param dispX \b IN: frame buffer starting x
2774 /// @param dispY \b IN: frame buffer starting y
2775 /// @param width \b IN: frame buffer width
2776 /// @param height \b IN: frame buffer height
2777 /// @param fbFmt \b IN: frame buffer color format
2778 /// @param u32FbAddr \b IN: frame buffer starting address
2779 /// @return GOP_API_SUCCESS - Success
2780 /// @return GOP_API_FAIL - Failure
2781 //-------------------------------------------------------------------------------------------------
2782 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2783 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBbyStaticAddr(MS_U32 u32fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr);
2784 #else
2785 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBbyStaticAddr(MS_U32 u32fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr);
2786 #endif
2787 //-------------------------------------------------------------------------------------------------
2788 /// MApi_GOP_GWIN_CreateFBbyStaticAddr2
2789 /// @ingroup GOP_ToBeRemove
2790 /// @return GOP_API_SUCCESS - Success
2791 //-------------------------------------------------------------------------------------------------
2792 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2793 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBbyStaticAddr2(MS_U8 fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr, EN_GOP_FRAMEBUFFER_STRING FBString);
2794 #else
2795 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFBbyStaticAddr2(MS_U8 fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr, EN_GOP_FRAMEBUFFER_STRING FBString);
2796 #endif
2797 //-------------------------------------------------------------------------------------------------
2798 /// MApi_GOP_GWIN_Create32FBbyStaticAddr2
2799 /// @ingroup GOP_ToBeRemove
2800 /// @return GOP_API_SUCCESS - Success
2801 //-------------------------------------------------------------------------------------------------
2802 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
2803 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBbyStaticAddr2(MS_U32 u32fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_U32 u32FbAddr ,EN_GOP_FRAMEBUFFER_STRING FBString);
2804 #else
2805 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FBbyStaticAddr2(MS_U32 u32fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt, MS_PHY phyFbAddr ,EN_GOP_FRAMEBUFFER_STRING FBString);
2806 #endif
2807 //-------------------------------------------------------------------------------------------------
2808 /// MApi_GOP_GWIN_CreateFB2
2809 /// @ingroup GOP_ToBeRemove
2810 /// @return GOP_API_SUCCESS - Success
2811 //-------------------------------------------------------------------------------------------------
2812 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFB2(MS_U8 FBId,MS_U16 x, MS_U16 y, MS_U16 width, MS_U16 height, MS_U16 fbFmt);
2813 //-------------------------------------------------------------------------------------------------
2814 /// MApi_GOP_GWIN_Create32FB2
2815 /// @ingroup GOP_ToBeRemove
2816 /// @return GOP_API_SUCCESS - Success
2817 //-------------------------------------------------------------------------------------------------
2818 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FB2(MS_U32 u32FBId, MS_U16 x, MS_U16 y, MS_U16 width, MS_U16 height, MS_U16 fbFmt);
2819 //-------------------------------------------------------------------------------------------------
2820 /// MApi_GOP_GWIN_CreateFB2_EXT
2821 /// @ingroup GOP_ToBeRemove
2822 /// @return GOP_API_SUCCESS - Success
2823 //-------------------------------------------------------------------------------------------------
2824 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFB2_EXT(MS_U8 FBId, MS_U16 x, MS_U16 y, MS_U16 width, MS_U16 height, MS_U16 fbFmt, EN_GOP_FRAMEBUFFER_STRING FBString);
2825 //-------------------------------------------------------------------------------------------------
2826 /// MApi_GOP_GWIN_Create32FB2_EXT
2827 /// @ingroup GOP_ToBeRemove
2828 /// @return GOP_API_SUCCESS - Success
2829 //-------------------------------------------------------------------------------------------------
2830 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FB2_EXT(MS_U32 u32FBId, MS_U16 x, MS_U16 y, MS_U16 width, MS_U16 height, MS_U16 fbFmt, EN_GOP_FRAMEBUFFER_STRING FBString);
2831 //-------------------------------------------------------------------------------------------------
2832 /// MApi_GOP_GWIN_GetCurrentFBID
2833 /// @ingroup GOP_ToBeRemove
2834 /// @return GOP_API_SUCCESS - Success
2835 //-------------------------------------------------------------------------------------------------
2836 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetCurrentFBID(void);
2837 //-------------------------------------------------------------------------------------------------
2838 /// MApi_GOP_GWIN_GetCurrent32FBID
2839 /// @ingroup GOP_ToBeRemove
2840 /// @return GOP_API_SUCCESS - Success
2841 //-------------------------------------------------------------------------------------------------
2842 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetCurrent32FBID(void);
2843 //-------------------------------------------------------------------------------------------------
2844 /// MApi_GOP_GWIN_GetFBfromGWIN
2845 /// @ingroup GOP_ToBeRemove
2846 /// @return GOP_API_SUCCESS - Success
2847 //-------------------------------------------------------------------------------------------------
2848 DLL_PUBLIC MS_U8  MApi_GOP_GWIN_GetFBfromGWIN(MS_U8 gwinId) ;
2849 //-------------------------------------------------------------------------------------------------
2850 /// Get frame bufferid from the gwin id
2851 /// @ingroup FB_STATUS
2852 /// @param gwinId  \b IN gwin id
2853 /// @return return frame buffer id. If return 0xFF, it represents this function fail
2854 //-------------------------------------------------------------------------------------------------
2855 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_Get32FBfromGWIN(MS_U8 gwinId);
2856 //-------------------------------------------------------------------------------------------------
2857 /// MApi_GOP_GWIN_IsFBExist
2858 /// @ingroup GOP_ToBeRemove
2859 /// @return GOP_API_SUCCESS - Success
2860 //-------------------------------------------------------------------------------------------------
2861 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_IsFBExist(MS_U8 fbId);
2862 //-----------------
2863 // FB_STATUS
2864 //-----------------
2865 //-------------------------------------------------------------------------------------------------
2866 /// Check if a frame buffer is allocated
2867 /// @ingroup FB_STATUS
2868 /// @param fbId \b IN frame buffer id
2869 /// @return
2870 ///   - # TRUE fbId is allocated
2871 ///   - # FALSE fbId is invalid or not allocated
2872 //-------------------------------------------------------------------------------------------------
2873 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Is32FBExist(MS_U32 u32fbId);
2874 //-------------------------------------------------------------------------------------------------
2875 /// MApi_GOP_GWIN_GetFreeFBID
2876 /// @ingroup GOP_ToBeRemove
2877 /// @return GOP_API_SUCCESS - Success
2878 //-------------------------------------------------------------------------------------------------
2879 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_GetFreeFBID(void);
2880 //-------------------------------------------------------------------------------------------------
2881 /// Get free frame buffer id
2882 /// @ingroup FB_STATUS
2883 /// @return frame buffer id. If return oxFF, it represents no free frame buffer id for use.
2884 //-------------------------------------------------------------------------------------------------
2885 DLL_PUBLIC MS_U32 MApi_GOP_GWIN_GetFree32FBID(void);
2886 //-------------------------------------------------------------------------------------------------
2887 /// MApi_GOP_GWIN_CreateFB
2888 /// @ingroup GOP_ToBeRemove
2889 /// @return GOP_API_SUCCESS - Success
2890 //-------------------------------------------------------------------------------------------------
2891 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_CreateFB(MS_U8 fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height,  MS_U16 fbFmt);
2892 //-----------------
2893 // FB_CREATE
2894 //-----------------
2895 //-------------------------------------------------------------------------------------------------
2896 /// Create frame buffer from given frame buffer id . User should call MApi_GOP_GWIN_GetFree32FBID()
2897 /// first and then use this frame buffer id as this function input parameter
2898 /// @ingroup FB_CREATE
2899 /// @param fbId  \b IN frame buffer id
2900 /// @param dispX \b IN display x
2901 /// @param dispY \b IN display y
2902 /// @param width \b IN width
2903 /// @param height \b IN height
2904 /// @param fbFmt \b IN frame buffer format
2905 /// @return GOP_API_SUCCESS - Success
2906 /// @return GOP_API_CRT_GWIN_NOAVAIL - Failure
2907 DLL_PUBLIC MS_U8 MApi_GOP_GWIN_Create32FB(MS_U32 u32fbId, MS_U16 dispX, MS_U16 dispY, MS_U16 width, MS_U16 height, MS_U16 fbFmt);
2908 //-------------------------------------------------------------------------------------------------
2909 /// MApi_GOP_GWIN_GetFBFmt
2910 /// @ingroup GOP_ToBeRemove
2911 /// @return GOP_API_SUCCESS - Success
2912 //----------------------------------------------------------------------------------------------
2913 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_GetFBFmt(MS_U8 fbId);
2914 //-------------------------------------------------------------------------------------------------
2915 /// MApi_GOP_GWIN_Get32FBFmt
2916 /// @ingroup GOP_ToBeRemove
2917 /// @return GOP_API_SUCCESS - Success
2918 //-------------------------------------------------------------------------------------------------
2919 DLL_PUBLIC MS_U16 MApi_GOP_GWIN_Get32FBFmt(MS_U32 u32fbId);
2920 //-------------------------------------------------------------------------------------------------
2921 /// MApi_GOP_GWIN_SetPaletteOpt
2922 /// @ingroup GOP_ToBeRemove
2923 /// @return GOP_API_SUCCESS - Success
2924 //-------------------------------------------------------------------------------------------------
2925 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetPaletteOpt( GOP_PaletteEntry *pPalArray, MS_U16 u32PalStart, MS_U16 u32PalEnd, EN_GOP_PALETTE_TYPE ePalType);
2926 //-----------------
2927 // PALETTE
2928 //-----------------
2929 //-------------------------------------------------------------------------------------------------
2930 /// Write optional palette values to GOP0 registers
2931 /// Note that this GOP0 palette table only support 256 group palette data
2932 /// @ingroup PALETTE
2933 /// @param u8GOP \b IN : Number of GOP
2934 /// @param *pPalArray \b IN Pointer to pallete list gonna set into pallete table
2935 /// @param u32PalStart \b IN start of pallete table gonna be overwrite
2936 /// @param u32PalEnd \b IN end of pallete table gonna be overwrite
2937 /// @param ePalType \b IN Pallete format, true/false ARGB8888
2938 /// @return GOP_API_SUCCESS - Success
2939 //-------------------------------------------------------------------------------------------------
2940 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetPaletteOpt_EX(MS_U8 u8GOP,GOP_PaletteEntry *pPalArray, MS_U16 u32PalStart, MS_U16 u32PalEnd, EN_GOP_PALETTE_TYPE ePalType);
2941 //-------------------------------------------------------------------------------------------------
2942 /// MApi_GOP_GWIN_SetPaletteRead
2943 /// @ingroup GOP_ToBeRemove
2944 /// @return GOP_API_SUCCESS - Success
2945 //-------------------------------------------------------------------------------------------------
2946 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_SetPaletteRead(EN_GOP_PALETTE_READTYPE type);
2947 //-------------------------------------------------------------------------------------------------
2948 /// Set GOP0 palette table read out control
2949 /// @ingroup PALETTE
2950 /// @param u8GOP \b IN : Number of GOP
2951 /// @param type \b IN \copydoc EN_GOP_PALETTE_READTYPE
2952 /// @return GOP_API_SUCCESS - Success
2953 //-------------------------------------------------------------------------------------------------
2954 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetPaletteRead_EX(MS_U8 u8GOP,EN_GOP_PALETTE_READTYPE type);
2955 //-------------------------------------------------------------------------------------------------
2956 /// MApi_GOP_GWIN_ReadPalette
2957 /// @ingroup GOP_ToBeRemove
2958 /// @return GOP_API_SUCCESS - Success
2959 //-------------------------------------------------------------------------------------------------
2960 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_ReadPalette(MS_U8 idx, MS_U32* clr);
2961 //-------------------------------------------------------------------------------------------------
2962 /// Read GOP0 palette values From Pallete
2963 /// @ingroup PALETTE
2964 /// @param u8GOP \b IN : Number of GOP
2965 /// @param idx \b IN Index for pallete wanna retrieve
2966 /// @param clr \b OUT color of specific pallete index
2967 /// @return GOP_API_SUCCESS - Success
2968 //-------------------------------------------------------------------------------------------------
2969 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_ReadPalette_EX(MS_U8 u8GOP,MS_U8 idx, MS_U32* clr);
2970 //-------------------------------------------------------------------------------------------------
2971 /// MApi_GOP_GetInfo
2972 /// @ingroup GOP_ToBeRemove
2973 /// @return GOP_API_SUCCESS - Success
2974 //-------------------------------------------------------------------------------------------------
2975 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_2GSetPaletteOpt(GOP_PaletteEntry *pPalArray, MS_U16 u32PalStart, MS_U16 u32PalEnd);
2976 //-------------------------------------------------------------------------------------------------
2977 /// Write optional palette values to GOP1 registers
2978 /// Note that this GOP1 palette table only support 64 group palette data
2979 /// @ingroup PALETTE
2980 /// @param u8GOP \b IN : Number of GOP
2981 /// @param *pPalArray \b IN Pointer to pallete list gonna set into pallete table
2982 /// @param u32PalStart \b IN start of pallete table gonna be overwrite
2983 /// @param u32PalEnd \b IN end of pallete table gonna be overwrite
2984 /// @return GOP_API_SUCCESS - Success
2985 //-------------------------------------------------------------------------------------------------
2986 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_2GSetPaletteOpt_EX(MS_U8 u8GOP,GOP_PaletteEntry *pPalArray, MS_U16 u32PalStart, MS_U16 u32PalEnd);
2987 //-------------------------------------------------------------------------------------------------
2988 /// MApi_GOP_GWIN_2GSetPaletteRead
2989 /// @ingroup GOP_ToBeRemove
2990 /// @return GOP_API_SUCCESS - Success
2991 //-------------------------------------------------------------------------------------------------
2992 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_2GSetPaletteRead(EN_GOP_PALETTE_READTYPE type);
2993 //-------------------------------------------------------------------------------------------------
2994 /// Set GOP1 palette table read out control
2995 /// @ingroup PALETTE
2996 /// @param u8GOP \b IN : Number of GOP
2997 /// @param type \b IN \copydoc EN_GOP_PALETTE_READTYPE
2998 /// @return GOP_API_SUCCESS - Success
2999 //-------------------------------------------------------------------------------------------------
3000 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_2GSetPaletteRead_EX(MS_U8 u8GOP,EN_GOP_PALETTE_READTYPE type);
3001 //-------------------------------------------------------------------------------------------------
3002 /// MApi_GOP_GWIN_2GReadPalette
3003 /// @ingroup GOP_ToBeRemove
3004 /// @return GOP_API_SUCCESS - Success
3005 //-------------------------------------------------------------------------------------------------
3006 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_2GReadPalette(MS_U8 idx, MS_U32* clr);
3007 //-------------------------------------------------------------------------------------------------
3008 /// Read GOP2G(GOP1) palette values From Pallete
3009 /// @ingroup PALETTE
3010 /// @param u8GOP \b IN : Number of GOP
3011 /// @param idx \b IN Index for pallete wanna retrieve
3012 /// @param clr \b OUT color of specific pallete index
3013 /// @return GOP_API_SUCCESS - Success
3014 //-------------------------------------------------------------------------------------------------
3015 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_2GReadPalette_EX(MS_U8 u8GOP,MS_U8 idx, MS_U32* clr);
3016 
3017 
3018 //-----------------
3019 // DWIN
3020 //-----------------
3021 //-----------------
3022 // DWIN_CONFIG
3023 //-----------------
3024 //-------------------------------------------------------------------------------------------------
3025 /// API for initialize the GOP DWIN
3026 /// @ingroup DWIN_CONFIG
3027 /// @return GOP_API_SUCCESS - Success
3028 //-------------------------------------------------------------------------------------------------
3029 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_Init(void);
3030 
3031 //-------------------------------------------------------------------------------------------------
3032 /// Config Dwin source (OP or MVOP).
3033 /// @ingroup DWIN_CONFIG
3034 /// @param enScanMode \b IN: EN_GOP_DWIN_SCAN_MODE
3035 /// @return GOP_API_SUCCESS - Success
3036 ///            GOP_API_INVALID_PARAMETERS - don't support this dwin source
3037 //-------------------------------------------------------------------------------------------------
3038 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetSourceSel(EN_GOP_DWIN_SRC_SEL enSrcSel);
3039 //-------------------------------------------------------------------------------------------------
3040 /// Set gop dwin capture one frame
3041 /// @ingroup DWIN_CAPTURE
3042 /// @return GOP_API_SUCCESS - Success
3043 //-------------------------------------------------------------------------------------------------
3044 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_CaptureOneFrame2(void);
3045 //-----------------
3046 // DWIN_INTERRUPT
3047 //-----------------
3048 //-------------------------------------------------------------------------------------------------
3049 
3050 /// Set interrupt mask of GOP DWIN.
3051 /// @ingroup DWIN_INTERRUPT
3052 /// @param u8mask \b IN bitmask of interrupt type
3053 ///   - bit7 DWIN VSYNC interrupt mask
3054 ///   - bit6 Dump Window interlace Bottom Field ACK Interrupt Mask
3055 ///   - bit5 Dump Window interlace Top Field ACK Interrupt Mask
3056 ///   - bit4 Dump Window Progressive ACK Interrupt Mask
3057 ///   - bit3:1 Reserved
3058 ///   - bit0 GWIN VSYNC Interrupt Mask
3059 /// @param bEnable \b IN
3060 ///   - # TRUE enable interrupts specified by u8mask
3061 ///   - # FALSE disable interrupts specified by u8mask
3062 /// @return GOP_API_SUCCESS - Success
3063 //-------------------------------------------------------------------------------------------------
3064 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_EnableIntr(MS_U16 u8mask, MS_BOOL bEnable);
3065 
3066 //-------------------------------------------------------------------------------------------------
3067 /// Set gop dwin capture one frame
3068 /// @ingroup DWIN_CAPTURE
3069 /// @return GOP_API_SUCCESS - Success
3070 //-------------------------------------------------------------------------------------------------
3071 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_CaptureOneFrame(void);
3072 //-----------------
3073 // DWIN_CAPTURE
3074 //-----------------
3075 //-------------------------------------------------------------------------------------------------
3076 /// API for enable or disable DWIN
3077 /// @ingroup DWIN_CAPTURE
3078 /// @param bEnable \b IN DWIN enable or not
3079 /// @return GOP_API_SUCCESS - Success
3080 //-------------------------------------------------------------------------------------------------
3081 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_Enable(MS_BOOL bEnable);
3082 
3083 //-------------------------------------------------------------------------------------------------
3084 /// Get DWIN property
3085 /// @ingroup DWIN_INTERRUPT
3086 /// @param pproperty \b OUT buffer to store DWIN property
3087 /// @return GOP_API_SUCCESS - Success
3088 //-------------------------------------------------------------------------------------------------
3089 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_GetWinProperty(GOP_DwinProperty *pproperty);
3090 //-------------------------------------------------------------------------------------------------
3091 /// Set DWIN property
3092 /// @ingroup DWIN_INTERRUPT
3093 /// @param pproperty \b IN buffer to store DWIN property
3094 /// @return GOP_API_SUCCESS - Success
3095 //-------------------------------------------------------------------------------------------------
3096 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetWinProperty(GOP_DwinProperty *pproperty);
3097 //-------------------------------------------------------------------------------------------------
3098 /// Set DWIN data source scan type
3099 /// @ingroup DWIN_CONFIG
3100 /// @param enScanMode \b IN: EN_GOP_DWIN_SCAN_MODE
3101 /// @return GOP_API_SUCCESS - Success
3102 //-------------------------------------------------------------------------------------------------
3103 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SelectSourceScanType(EN_GOP_DWIN_SCAN_MODE enScanMode);
3104 //-------------------------------------------------------------------------------------------------
3105 /// Set DWIN Capture format
3106 /// @ingroup DWIN_CONFIG
3107 /// @param fmt \b IN: buffer format to store DWIN content
3108 /// @return GOP_API_SUCCESS - Success
3109 //-------------------------------------------------------------------------------------------------
3110 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetDataFmt(EN_GOP_DWIN_DATA_FMT fmt);
3111 //-------------------------------------------------------------------------------------------------
3112 /// Set DWIN Capture constant alpha value for format ARGB8888
3113 /// @ingroup DWIN_CONFIG
3114 /// @param u8AlphaVal \b IN: constant alpha value
3115 /// @return GOP_API_SUCCESS - Success
3116 //-------------------------------------------------------------------------------------------------
3117 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetAlphaValue(MS_U8 u8AlphaVal);
3118 //-----------------
3119 // DWIN_OPTION
3120 //-----------------
3121 //-------------------------------------------------------------------------------------------------
3122 /// Set DWIN Capture alpha source
3123 /// @ingroup DWIN_OPTION
3124 /// @param source \b IN: alpha source
3125 /// @return GOP_API_SUCCESS - Success
3126 //-------------------------------------------------------------------------------------------------
3127 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetAlphaSrc(EN_GOP_DWIN_ALPHA_SRC source);
3128 //-------------------------------------------------------------------------------------------------
3129 /// Set DWIN Capture alpha inverse
3130 /// @ingroup DWIN_OPTION
3131 /// @param source \b IN: enable alpha inverse
3132 /// @return GOP_API_SUCCESS - Success
3133 //-------------------------------------------------------------------------------------------------
3134 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetAlphaInverse(MS_BOOL bEnable);
3135 
3136 //-------------------------------------------------------------------------------------------------
3137 /// Set DWIN UVSample mode
3138 /// @ingroup DWIN_OPTION
3139 /// @param mode \b IN: UVSample mode
3140 /// @return GOP_API_SUCCESS - Success
3141 //-------------------------------------------------------------------------------------------------
3142 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetUVSample(EN_GOP_DWIN_UVSAMPLE_Mode mode);
3143 //-------------------------------------------------------------------------------------------------
3144 /// Set DWIN skipframe count
3145 /// @ingroup DWIN_OPTION
3146 /// @param mode \b IN: skipframe count
3147 /// @return GOP_API_SUCCESS - Success
3148 //-------------------------------------------------------------------------------------------------
3149 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetSkipFrame(MS_U32 framecount);
3150 //-------------------------------------------------------------------------------------------------
3151 /// clear DWIN interrupt
3152 /// @ingroup DWIN_INTERRUPT
3153 /// @param u8mask \b IN: interrup mask
3154 /// @return GOP_API_SUCCESS - Success
3155 //-------------------------------------------------------------------------------------------------
3156 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_ClearIntr(MS_U16 u8mask);
3157 
3158 //-------------------------------------------------------------------------------------------------
3159 /// Get DWIN interrupt Information.
3160 /// @ingroup DWIN_CAPTURE
3161 /// @param pDWinIntInfo \b OUT: dwin interrup flag
3162 /// @return GOP_API_SUCCESS - Success
3163 //-------------------------------------------------------------------------------------------------
3164 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_GetDWinIntInfo(GOP_DWinIntInfo *pDWinIntInfo);
3165 //-------------------------------------------------------------------------------------------------
3166 /// Get DWIN interrupt Information.
3167 /// @ingroup DWIN_CAPTURE
3168 /// @param pDWinIntInfo \b OUT: dwin interrup flag
3169 /// @return GOP_API_SUCCESS - Success
3170 //-------------------------------------------------------------------------------------------------
3171 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_GetDWinIntInfoTimeout(GOP_DWinIntInfo *pDWinIntInfo, MS_U32 u32Timeout);
3172 //-------------------------------------------------------------------------------------------------
3173 /// MApi_GOP_SetClkForCapture
3174 /// @ingroup GOP_ToBeRemove
3175 /// @return GOP_API_SUCCESS - Success
3176 //-------------------------------------------------------------------------------------------------
3177 DLL_PUBLIC E_GOP_API_Result MApi_GOP_SetClkForCapture(void);   //only for source is OP path clock
3178 //-------------------------------------------------------------------------------------------------
3179 /// Get GOP Dwin interrupt status
3180 /// @ingroup DWIN_INTERRUPT
3181 /// @return GOP Dwin interrupt status
3182 //-------------------------------------------------------------------------------------------------
3183 DLL_PUBLIC MS_U16 MApi_GOP_DWIN_GetIntrStatus(void);
3184 //-------------------------------------------------------------------------------------------------
3185 /// API for enable or disable DWIN
3186 /// @ingroup DWIN_OPTION
3187 /// @param bEnable \b IN DWIN enable or not
3188 /// @return GOP_API_SUCCESS - Success
3189 //-------------------------------------------------------------------------------------------------
3190 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_EnableR2YCSC(MS_BOOL bEnable);
3191 
3192 //-------------------------------------------------------------------------------------------------
3193 /// API for enable or disable DWIN UV SWAP
3194 /// @ingroup DWIN_OPTION
3195 /// @param bEnable \b IN DWIN enable or not
3196 /// @return GOP_API_SUCCESS - Success
3197 //-------------------------------------------------------------------------------------------------
3198 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetUVSwap(MS_BOOL bEnable);
3199 //-----------------
3200 // GOP_LOCK_BEGINE_END
3201 //-----------------
3202 //-------------------------------------------------------------------------------------------------
3203 /// Begine of lock GOP.
3204 /// @ingroup GOP_LOCK_BEGINE_END
3205 /// @param  void
3206 /// @return GOP_API_SUCCESS     - Success
3207 /// @return GOP_API_FAIL        - Failure
3208 //-------------------------------------------------------------------------------------------------
3209 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_BeginDraw(void);
3210 //-------------------------------------------------------------------------------------------------
3211 /// End of lock GOP.
3212 /// @ingroup GOP_LOCK_BEGINE_END
3213 /// @param  void
3214 /// @return GOP_API_SUCCESS     - Success
3215 /// @return GOP_API_FAIL        - Failure
3216 //-------------------------------------------------------------------------------------------------
3217 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_EndDraw(void);
3218 //-------------------------------------------------------------------------------------------------
3219 /// Lock Force Write
3220 /// @ingroup FORCE_WRITE
3221 /// @param  void
3222 /// @return GOP_API_SUCCESS     - Success
3223 /// @return GOP_API_FAIL        - Failure
3224 //-------------------------------------------------------------------------------------------------
3225 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_LockForForceWrite(MS_BOOL bLock);
3226 //-----------------
3227 // BG
3228 //-----------------
3229 //-------------------------------------------------------------------------------------------------
3230 /// Enable back ground window
3231 /// @ingroup BG
3232 /// @param bgwID \b IN:  GWIN number
3233 /// @param bEnable \b IN: ENABLE/DISABLE
3234 /// @return GOP_API_SUCCESS - Success
3235 /// @return GOP_API_FAIL - Failure
3236 //-------------------------------------------------------------------------------------------------
3237 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Enable_BGWIN(MS_U8 bgwID, MS_BOOL bEnable);
3238 
3239 //-------------------------------------------------------------------------------------------------
3240 /// Set back ground window
3241 /// @ingroup BG
3242 /// @param bgwID            \b IN:  GWIN number
3243 /// @param x0               \b IN:  left position
3244 /// @param y0               \b IN:  top position
3245 /// @param w                \b IN:  width
3246 /// @param h                \b IN:  height
3247 /// @param color            \b IN:  color
3248 /// @return GOP_API_SUCCESS - Success
3249 /// @return GOP_API_FAIL - Failure
3250 //-------------------------------------------------------------------------------------------------
3251 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_BGWIN(MS_U8 bgwID, MS_U16 x0, MS_U16 y0, MS_U16 w, MS_U16 h, MS_U16 color);
3252 //-------------------------------------------------------------------------------------------------
3253 /// Set back ground window
3254 /// @ingroup BG
3255 /// @param bgwID            \b IN:  GWIN number
3256 /// @param bEnable          \b IN:  ENABLE/DISABLE
3257 /// @param alpha            \b IN:  alpha
3258 /// @return GOP_API_SUCCESS - Success
3259 /// @return GOP_API_FAIL - Failure
3260 //-------------------------------------------------------------------------------------------------
3261 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_Set_BGWIN_Alpha(MS_U8 bgwID, MS_BOOL bEnable, MS_U8 alpha);
3262 
3263 //-------------------------------------------------------------------------------------------------
3264 /// API for set gop pinpong
3265 /// @ingroup DWIN_OPTION
3266 /// @param winId \b IN: GWIN id
3267 /// @param u32fbaddr0   \b IN:  pinpon addr0
3268 /// @param u32fbaddr1   \b IN:  pinpon addr1
3269 /// @return GOP_API_SUCCESS - Success
3270 /// @return GOP_API_FAIL - Failure
3271 //-------------------------------------------------------------------------------------------------
3272 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
3273 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetBufferPINPON(MS_U32 u32fbaddr0,MS_U32 u32fbaddr1);
3274 #else
3275 DLL_PUBLIC E_GOP_API_Result MApi_GOP_DWIN_SetBufferPINPON(MS_PHY phyfbaddr0,MS_PHY phyfbaddr1);
3276 #endif
3277 
3278 //-----------------
3279 // GOP_CB
3280 //-----------------
3281 //-------------------------------------------------------------------------------------------------
3282 /// GOP call back function: Set destination buffer pitch,addr,fmt to GE.
3283 /// @ingroup GOP_CB
3284 /// This function should be registered before MApi_GOP_Init!!
3285 /// @return GOP_API_SUCCESS - Success
3286 /// @return GOP_API_FAIL - Failure
3287 //-------------------------------------------------------------------------------------------------
3288 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
3289 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterFBFmtCB(MS_U32 (*fpGOP_CB)(MS_U16 pitch,MS_U32 addr , MS_U16 fmt )  );
3290 #else
3291 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterFBFmtCB(MS_U32 (*fpGOP_CB)(MS_U16 pitch,MS_PHY addr , MS_U16 fmt )  );
3292 #endif
3293 //-------------------------------------------------------------------------------------------------
3294 /// GOP call back function: Get vedio status (is interlace mode?) from scaler.
3295 /// @ingroup GOP_CB
3296 /// This function should be registered before MApi_GOP_Init!!
3297 /// @return GOP_API_SUCCESS - Success
3298 /// @return GOP_API_FAIL - Failure
3299 //-------------------------------------------------------------------------------------------------
3300 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterXCIsInterlaceCB(MS_BOOL (*fpGOP_CB)(void));
3301 //-------------------------------------------------------------------------------------------------
3302 /// GOP call back function: Get capture window h-start from scaler.
3303 /// @ingroup GOP_CB
3304 /// This function should be registered before MApi_GOP_Init!!
3305 /// @return GOP_API_SUCCESS - Success
3306 /// @return GOP_API_FAIL - Failure
3307 //-------------------------------------------------------------------------------------------------
3308 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterXCGetCapHStartCB(MS_U16 (*fpGOP_CB)(void));
3309 
3310 //-------------------------------------------------------------------------------------------------
3311 /// GOP call back function: Reduce scaler bandwidth when OSD on.
3312 /// @ingroup GOP_CB
3313 /// This function should be registered before MApi_GOP_Init!!
3314 /// @return GOP_API_SUCCESS - Success
3315 /// @return GOP_API_FAIL - Failure
3316 //-------------------------------------------------------------------------------------------------
3317 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterXCReduceBWForOSDCB(void (*fpGOP_CB)(MS_U8 PqWin, MS_BOOL enable));
3318 //-------------------------------------------------------------------------------------------------
3319 /// GOP call back function: Notify callback for the end of GOP events such as buffer rearrange.
3320 /// @ingroup GOP_CB
3321 /// This function should be registered before MApi_GOP_Init!!
3322 /// @return GOP_API_SUCCESS - Success
3323 /// @return GOP_API_FAIL - Failure
3324 //-------------------------------------------------------------------------------------------------
3325 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterEventNotify(void (*fpGOP_CB)(MS_U32 u32EventID, void* reserved0));
3326 
3327 //-------------------------------------------------------------------------------------------------
3328 /// GOP call back function: Register XC DIP call back
3329 /// @ingroup GOP_CB
3330 /// This function should be registered before MApi_GOP_Init!!
3331 /// @return GOP_API_SUCCESS - Success
3332 /// @return GOP_API_FAIL - Failure
3333 //-------------------------------------------------------------------------------------------------
3334 DLL_PUBLIC E_GOP_API_Result MApi_GOP_RegisterXCSetDwinInfo(MS_BOOL (*fpGOP_CB)(MS_U16 cmd,MS_U32 *arg,MS_U16 size));
3335 
3336 //-------------------------------------------------------------------------------------------------
3337 /// MApi_GOP_OC_SetOCFBinfo
3338 /// @ingroup GOP_ToBeRemove
3339 /// @return GOP_API_SUCCESS - Success
3340 //-------------------------------------------------------------------------------------------------
3341 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
3342 DLL_PUBLIC E_GOP_API_Result MApi_GOP_OC_SetOCFBinfo(MS_PHYADDR u32Addr, EN_GOP_OC_SEL_TYPE BankMode, MS_U32 enBufSize);
3343 #else
3344 DLL_PUBLIC E_GOP_API_Result MApi_GOP_OC_SetOCFBinfo(MS_PHY phyAddr, EN_GOP_OC_SEL_TYPE BankMode, MS_U32 enBufSize);
3345 #endif
3346 
3347 //-------------------------------------------------------------------------------------------------
3348 /// Set GPU Tile Mode
3349 /// @ingroup TILE_MODE
3350 /// @param u8win \b IN GWIN id
3351 /// @param TileMode \b IN
3352 ///   - # TRUE Gwin Tile Mode
3353 ///   - # FALSE Gwin Tile Mode
3354 /// @param tiletype \b IN: tile type
3355 /// @return GOP_API_SUCCESS - Success
3356 //-------------------------------------------------------------------------------------------------
3357 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetGPUTile(MS_U8 u8win, EN_GOP_GPU_TILE_MODE TileMode);
3358 
3359 //-------------------------------------------------------------------------------------------------
3360 /// MApi_GOP_TLB_Enable
3361 /// @ingroup GOP_ToBeRemove
3362 /// @return GOP_API_SUCCESS - Success
3363 #if (defined(UFO_PUBLIC_HEADER_212)||defined(UFO_PUBLIC_HEADER_300))
3364 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_TLB_Enable(MS_U8 u8GOP,MS_BOOL bEnable, MS_U32 tlbaddr);
3365 #else
3366 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_TLB_Enable(MS_U8 u8GOP,MS_BOOL bEnable, MS_PHY phytlbaddr);
3367 #endif
3368 
3369 //-------------------------------------------------------------------------------------------------
3370 /// MApi_GOP_GWIN_UpdateRegOnce
3371 /// @ingroup GOP_ToBeRemove
3372 /// @return GOP_API_SUCCESS - Success
3373 //-------------------------------------------------------------------------------------------------
3374 DLL_PUBLIC E_GOP_API_Result MApi_GOP_GWIN_UpdateRegOnce(MS_BOOL bWriteRegOnce);
3375 //-------------------------------------------------------------------------------------------------
3376 /// MApi_GOP_GWIN_SetMux
3377 /// @ingroup GOP_ToBeRemove
3378 /// @return GOP_API_SUCCESS - Success
3379 //-------------------------------------------------------------------------------------------------
3380 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_SetMux(GOP_MuxConfig * pGopMuxConfig, MS_U32 u32SizeOfMuxInfo);
3381 //-------------------------------------------------------------------------------------------------
3382 /// MApi_GOP_GWIN_OutputLayerSwitch
3383 /// @ingroup GOP_ToBeRemove
3384 /// @return GOP_API_SUCCESS - Success
3385 //-------------------------------------------------------------------------------------------------
3386 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_GWIN_OutputLayerSwitch(MS_U8 u8GOP);
3387 //-------------------------------------------------------------------------------------------------
3388 /// MApi_GOP_MultiWin_ColorKey
3389 /// @ingroup GOP MultiWindow ColorKey
3390 /// @param mwinId \b Window index selection
3391 /// @param eMultiWinType \b IN MultiWin ColorKey mode selection
3392 /// @param pGOP_WinColorKey \b IN MultiWin ColorKey Information
3393 /// @return GOP_API_SUCCESS - Success
3394 //-------------------------------------------------------------------------------------------------
3395 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_MultiWin_ColorKey(MS_U8 mwinId, EN_GOP_MULTIWIN_COLOR_MODE eMultiWinType, GOP_MULTIWIN_COLORKEY* pGOP_WinColorKey);
3396 //--------------------------------------------------------------------------------------------------
3397 /// MApi_GOP_MultiWin_FrameColor
3398 /// @ingroup GOP MultiWindow ColorKey
3399 /// @param eMultiWinType \b IN MultiWin ColorKey mode selection
3400 /// @param pGOP_WinFrameColor \b IN MultiWin FrameColor Information
3401 /// @return GOP_API_SUCCESS - Success
3402 //--------------------------------------------------------------------------------------------------
3403 DLL_PUBLIC SYMBOL_WEAK E_GOP_API_Result MApi_GOP_MultiWin_FrameColor(EN_GOP_MULTIWIN_COLOR_MODE eMultiWinType, GOP_MULTIWIN_FRAMECOLOR* pGOP_WinFrameColor);
3404 
3405 #ifdef __cplusplus
3406 }
3407 #endif
3408 
3409 #endif // _API_GOP_H_
3410 
3411