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