xref: /utopia/UTPA2-700.0.x/modules/cpu/drv/cpu/mailbox.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) 2006-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 /// @file  mailbox.h
94*53ee8cc1Swenshuai.xi /// @brief CPU mailbox header File
95*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi #ifndef _MAILBOX_H_
100*53ee8cc1Swenshuai.xi #define _MAILBOX_H_
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #include "MsTypes.h"
103*53ee8cc1Swenshuai.xi 
104*53ee8cc1Swenshuai.xi #define INTERFACE extern
105*53ee8cc1Swenshuai.xi 
106*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
107*53ee8cc1Swenshuai.xi // Define
108*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi #define MB_CMDBIT_FIRE                          0x01
111*53ee8cc1Swenshuai.xi #define MB_CMDBIT_INSTANT_READ                  0x02
112*53ee8cc1Swenshuai.xi #define MB_CMDBIT_INSTANT_HANDLE                0x04
113*53ee8cc1Swenshuai.xi 
114*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
115*53ee8cc1Swenshuai.xi // Mail Box Structure
116*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi typedef struct _mail_box {
119*53ee8cc1Swenshuai.xi     MS_U8 u8CmdClass;
120*53ee8cc1Swenshuai.xi     MS_U8 u8CmdIdx;
121*53ee8cc1Swenshuai.xi     MS_U8 u8Param[10];
122*53ee8cc1Swenshuai.xi     MS_U8 ParamCnt         : 4;
123*53ee8cc1Swenshuai.xi     MS_U8 CMDType          : 3;
124*53ee8cc1Swenshuai.xi     MS_U8 Busy             : 1;
125*53ee8cc1Swenshuai.xi } MailBox, *PMailBox;
126*53ee8cc1Swenshuai.xi 
127*53ee8cc1Swenshuai.xi typedef struct _Mail_Box_Cmd_Queue {
128*53ee8cc1Swenshuai.xi     MS_U8 u8CmdIdx;
129*53ee8cc1Swenshuai.xi     MS_U8 u8ParamCnt;
130*53ee8cc1Swenshuai.xi     MS_U8 u8Param[10];
131*53ee8cc1Swenshuai.xi } MailBoxCmdQueue, *PMailBoxCmdQueue;
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi typedef struct _Cmd_Queue_Info
134*53ee8cc1Swenshuai.xi {
135*53ee8cc1Swenshuai.xi     MS_U8 ReadPtr;
136*53ee8cc1Swenshuai.xi     MS_U8 QLen;
137*53ee8cc1Swenshuai.xi } CmdQueueInfo, *pCmdQueueInfo;
138*53ee8cc1Swenshuai.xi /*
139*53ee8cc1Swenshuai.xi typedef struct _Cmd_Queue_Info
140*53ee8cc1Swenshuai.xi {
141*53ee8cc1Swenshuai.xi     MS_U8 ReadPtr   :4;
142*53ee8cc1Swenshuai.xi     MS_U8 QLen        :4;
143*53ee8cc1Swenshuai.xi } CmdQueueInfo, *pCmdQueueInfo;
144*53ee8cc1Swenshuai.xi */
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi typedef enum
147*53ee8cc1Swenshuai.xi {
148*53ee8cc1Swenshuai.xi     MB_CMD_TYPE_DEFAULT,
149*53ee8cc1Swenshuai.xi     MB_CMD_TYPE_INSTANT_READ,
150*53ee8cc1Swenshuai.xi     MB_CMD_TYPE_INSTANT_HANDLE,
151*53ee8cc1Swenshuai.xi } MB_CMD_TYPE;
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi //-------------------------------
154*53ee8cc1Swenshuai.xi // MB_CLASS
155*53ee8cc1Swenshuai.xi //-------------------------------
156*53ee8cc1Swenshuai.xi 
157*53ee8cc1Swenshuai.xi //-------------------------------
158*53ee8cc1Swenshuai.xi // MB_CLASS_JPEG
159*53ee8cc1Swenshuai.xi //-------------------------------
160*53ee8cc1Swenshuai.xi typedef enum
161*53ee8cc1Swenshuai.xi {
162*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_NONE                     = 0x00,
163*53ee8cc1Swenshuai.xi 
164*53ee8cc1Swenshuai.xi     // 51 --> Aeon
165*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_RESET                    = 0x11,
166*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_GET_STATUS               = 0x12,
167*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_FEED_DATA_SUCCESS        = 0x13,
168*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_DECODE_HEADER            = 0x15,
169*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_DECODE_LINE              = 0x16,
170*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_GET_PIC_INFO             = 0x17,
171*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_GET_PIC_ORIGINAL_SIZE    = 0x18,
172*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_SET_RATIO                = 0x19,
173*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_DECODE_INIT              = 0x20,
174*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_STOP_DECODE              = 0x21,
175*53ee8cc1Swenshuai.xi 
176*53ee8cc1Swenshuai.xi     // Aeon --> 51
177*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_ASK_4_DATA               = 0x80,
178*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_RETURN_STATUS            = 0x81,
179*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_RETURN_PIC_INFO          = 0x82,
180*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_RETURN_PIC_ORIGINAL_SIZE = 0x83,
181*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_RETURN_LOOP_OVER         = 0x84,
182*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_GET_RESOLUTION           = 0x85,
183*53ee8cc1Swenshuai.xi     MB_JPEG_CMD_STOP_DECODE_ACK          = 0x86,
184*53ee8cc1Swenshuai.xi } MB_JPEG_CMD;
185*53ee8cc1Swenshuai.xi 
186*53ee8cc1Swenshuai.xi typedef enum
187*53ee8cc1Swenshuai.xi {
188*53ee8cc1Swenshuai.xi     e_Idle          = 0x01,
189*53ee8cc1Swenshuai.xi     e_DecodeErr     = 0x02,
190*53ee8cc1Swenshuai.xi     e_DecodeHeader  = 0x03,
191*53ee8cc1Swenshuai.xi     e_DecodeLine    = 0x04,
192*53ee8cc1Swenshuai.xi     e_DecodeDone    = 0x05,
193*53ee8cc1Swenshuai.xi     e_Init          = 0x06,
194*53ee8cc1Swenshuai.xi } EN_DECODE_STATE;
195*53ee8cc1Swenshuai.xi 
196*53ee8cc1Swenshuai.xi //-------------------------------
197*53ee8cc1Swenshuai.xi // MB_CLASS_JPEG_EN
198*53ee8cc1Swenshuai.xi //-------------------------------
199*53ee8cc1Swenshuai.xi typedef enum
200*53ee8cc1Swenshuai.xi {
201*53ee8cc1Swenshuai.xi     MB_JPEG_EN_CMD_NONE                     = 0x00,
202*53ee8cc1Swenshuai.xi 
203*53ee8cc1Swenshuai.xi     // 51 --> Aeon
204*53ee8cc1Swenshuai.xi     MB_JPEG_EN_CMD_SET_READ_BUFF_INFO       = 0x11,
205*53ee8cc1Swenshuai.xi     MB_JPEG_EN_CMD_SET_INTERNAL_BUFF_INFO   = 0x12,
206*53ee8cc1Swenshuai.xi     MB_JPEG_EN_CMD_SET_WRITE_BUFF_INFO      = 0x13,
207*53ee8cc1Swenshuai.xi     MB_JPEG_EN_CMD_SET_RESOLUTION_INFO      = 0x14,
208*53ee8cc1Swenshuai.xi 
209*53ee8cc1Swenshuai.xi     // Aeon --> 51
210*53ee8cc1Swenshuai.xi     MB_JPEG_EN_RESULT                       = 0x80,
211*53ee8cc1Swenshuai.xi } MB_JPEG_EN_CMD;
212*53ee8cc1Swenshuai.xi 
213*53ee8cc1Swenshuai.xi typedef enum
214*53ee8cc1Swenshuai.xi {
215*53ee8cc1Swenshuai.xi     MB_CLASS_SYSTEM         = 0,
216*53ee8cc1Swenshuai.xi     MB_CLASS_INPUT          = 1,
217*53ee8cc1Swenshuai.xi     MB_CLASS_TSP            = 2,
218*53ee8cc1Swenshuai.xi     MB_CLASS_CHANNEL        = 3,
219*53ee8cc1Swenshuai.xi     MB_CLASS_MEMORY         = 4,
220*53ee8cc1Swenshuai.xi     MB_CLASS_MPEG           = 5,
221*53ee8cc1Swenshuai.xi     MB_CLASS_VIDEO          = 6,
222*53ee8cc1Swenshuai.xi     MB_CLASS_AUDIO          = 7,
223*53ee8cc1Swenshuai.xi     MB_CLASS_MHEG5_STATE    = 8,
224*53ee8cc1Swenshuai.xi     MB_CLASS_MVF            = 9,
225*53ee8cc1Swenshuai.xi     MB_CLASS_GE             = 10,
226*53ee8cc1Swenshuai.xi     MB_CLASS_CI             = 11, // rename unused "MB_CLASS_NUM" as "MB_CLASS_CI" for CIMHEG usage
227*53ee8cc1Swenshuai.xi     MB_CLASS_TEST           = 12,
228*53ee8cc1Swenshuai.xi     MB_CLASS_MAD            = 13,
229*53ee8cc1Swenshuai.xi     MB_CLASS_MPEG2_FS       = 14,
230*53ee8cc1Swenshuai.xi     MB_CLASS_MPEG2          = 15,
231*53ee8cc1Swenshuai.xi     MB_CLASS_BMP            = 16,
232*53ee8cc1Swenshuai.xi     MB_CLASS_PNG            = 17,
233*53ee8cc1Swenshuai.xi     MB_CLASS_JPEG           = 18,
234*53ee8cc1Swenshuai.xi     MB_CLASS_MJPEG          = 19,
235*53ee8cc1Swenshuai.xi     MB_CLASS_JPEG_ENCODER   = 20,
236*53ee8cc1Swenshuai.xi     MB_CLASS_VDPLAYER_FS    = 21,
237*53ee8cc1Swenshuai.xi     MB_CLASS_VDPLAYER       = 22,
238*53ee8cc1Swenshuai.xi     MB_CLASS_RMPLAYER_FS    = 23,
239*53ee8cc1Swenshuai.xi     MB_CLASS_RMPLAYER       = 24,
240*53ee8cc1Swenshuai.xi     MB_CLASS_TSPLAYER_FS    = 25,
241*53ee8cc1Swenshuai.xi     MB_CLASS_TSPLAYER       = 26,
242*53ee8cc1Swenshuai.xi     MB_CLASS_LZSS           = 27,
243*53ee8cc1Swenshuai.xi     MB_CLASS_CAPE           = 28,
244*53ee8cc1Swenshuai.xi     MB_CLASS_CC             = 29,
245*53ee8cc1Swenshuai.xi     MB_CLASS_DLNA           = 30,
246*53ee8cc1Swenshuai.xi     MB_CLASS_DUMMY_LOOP     = 31,
247*53ee8cc1Swenshuai.xi     MB_CLASS_CHAKRA_SUBSYS  = 32,
248*53ee8cc1Swenshuai.xi     MB_CLASS_FCNTL          = 33,
249*53ee8cc1Swenshuai.xi     MB_CLASS_IRKEY          = 34,
250*53ee8cc1Swenshuai.xi     MB_CLASS_BTPD           = 35,
251*53ee8cc1Swenshuai.xi     MB_CLASS_OBAMA_CMD      =36,
252*53ee8cc1Swenshuai.xi     MB_CLASS_OBAMA_APP      =37,
253*53ee8cc1Swenshuai.xi     MB_CLASS_KTV               = 38,
254*53ee8cc1Swenshuai.xi     MB_CLASS_CIPLUS         =39,
255*53ee8cc1Swenshuai.xi     MB_CLASS_PRINT_MESSAGE      =40,
256*53ee8cc1Swenshuai.xi     MB_CLASS_SHWFS         =41,
257*53ee8cc1Swenshuai.xi     // 42: reserved
258*53ee8cc1Swenshuai.xi     MB_CLASS_STILLIMAGE             = 43,
259*53ee8cc1Swenshuai.xi     MB_CLASS_MAILBOX_FILE_IO_FAST   = 44,
260*53ee8cc1Swenshuai.xi     MB_CLASS_MAILBOX_FILE_IO        = 45,
261*53ee8cc1Swenshuai.xi 
262*53ee8cc1Swenshuai.xi     MB_CLASS_NET_DEBUG = 46, //add by Ian //46
263*53ee8cc1Swenshuai.xi } MB_CLASS;
264*53ee8cc1Swenshuai.xi 
265*53ee8cc1Swenshuai.xi //-------------------------------
266*53ee8cc1Swenshuai.xi // MB_CLASS_SYSTEM
267*53ee8cc1Swenshuai.xi //-------------------------------
268*53ee8cc1Swenshuai.xi typedef enum
269*53ee8cc1Swenshuai.xi {
270*53ee8cc1Swenshuai.xi     MB_SYS_CMD_QUERY_STATUS,
271*53ee8cc1Swenshuai.xi     MB_SYS_CMD_SYS_TIMER,
272*53ee8cc1Swenshuai.xi     MB_SYS_CMD_PAUSE_AEON,
273*53ee8cc1Swenshuai.xi } MB_SYSTEM_CLASS;
274*53ee8cc1Swenshuai.xi 
275*53ee8cc1Swenshuai.xi //-----------------------------------------------
276*53ee8cc1Swenshuai.xi // Class :: MPEG
277*53ee8cc1Swenshuai.xi //-----------------------------------------------
278*53ee8cc1Swenshuai.xi typedef enum
279*53ee8cc1Swenshuai.xi {
280*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_DECODE            = 0x80,
281*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_ENABLE            = 0x81,
282*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_SET_POSITION      = 0x82,
283*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_SCALE             = 0x83,
284*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_SET_POSITION_CROP = 0x84,
285*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_SCALE_CROP        = 0x85,
286*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_SET_VIDOFFSET     = 0x86,
287*53ee8cc1Swenshuai.xi     MB_MPEG_IFRAME_BOXSIZE           = 0x87
288*53ee8cc1Swenshuai.xi } MB_MPEG;
289*53ee8cc1Swenshuai.xi 
290*53ee8cc1Swenshuai.xi //-------------------------------
291*53ee8cc1Swenshuai.xi // MB_CLASS_INPUT
292*53ee8cc1Swenshuai.xi //-------------------------------
293*53ee8cc1Swenshuai.xi typedef enum
294*53ee8cc1Swenshuai.xi {
295*53ee8cc1Swenshuai.xi     MB_INPUT_CMD_IR,
296*53ee8cc1Swenshuai.xi     MB_INPUT_CMD_KEYPAD,
297*53ee8cc1Swenshuai.xi     MB_INPUT_CMD_JOYSTICK,
298*53ee8cc1Swenshuai.xi     MB_INPUT_CMD_BIKE_IR
299*53ee8cc1Swenshuai.xi 
300*53ee8cc1Swenshuai.xi } MB_INPUT_CLASS;
301*53ee8cc1Swenshuai.xi 
302*53ee8cc1Swenshuai.xi //-------------------------------
303*53ee8cc1Swenshuai.xi // MB_CLASS_TSP
304*53ee8cc1Swenshuai.xi //-------------------------------
305*53ee8cc1Swenshuai.xi typedef enum
306*53ee8cc1Swenshuai.xi {
307*53ee8cc1Swenshuai.xi     MB_TSP_CMD_ADD_PID,
308*53ee8cc1Swenshuai.xi     MB_TSP_CMD_DEL_PID,
309*53ee8cc1Swenshuai.xi } MB_TSP_CLASS;
310*53ee8cc1Swenshuai.xi 
311*53ee8cc1Swenshuai.xi //-------------------------------
312*53ee8cc1Swenshuai.xi // MB_CLASS_MEMORY
313*53ee8cc1Swenshuai.xi //-------------------------------
314*53ee8cc1Swenshuai.xi typedef enum
315*53ee8cc1Swenshuai.xi {
316*53ee8cc1Swenshuai.xi     MB_MEM_CMD_MAPINFO,
317*53ee8cc1Swenshuai.xi } MB_INPUT_MEMORY;
318*53ee8cc1Swenshuai.xi 
319*53ee8cc1Swenshuai.xi //-------------------------------
320*53ee8cc1Swenshuai.xi // MB_CLASS_VIDEO
321*53ee8cc1Swenshuai.xi //-------------------------------
322*53ee8cc1Swenshuai.xi typedef enum
323*53ee8cc1Swenshuai.xi {
324*53ee8cc1Swenshuai.xi     MB_VID_CMD_CHANGESTREAM     = 0,
325*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETAFD           = 1,
326*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETARC_PART1     = 2,
327*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETARC_PART2     = 3,
328*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETVTG           = 4,
329*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETVTG2          = 5,
330*53ee8cc1Swenshuai.xi     MB_VID_CMD_SETVTG_SETTING   = 6,
331*53ee8cc1Swenshuai.xi } MB_VIDEO_CMD_INDEX;
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi //-------------------------------
334*53ee8cc1Swenshuai.xi // MB_CLASS_MHEG5_STATE
335*53ee8cc1Swenshuai.xi //-------------------------------
336*53ee8cc1Swenshuai.xi typedef enum
337*53ee8cc1Swenshuai.xi {
338*53ee8cc1Swenshuai.xi     //HK => CP
339*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_AUD_PID_PNL_RATIO    = 0x00,
340*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_OS_FB                = 0x01,
341*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_SETARC_PART1         = 0x02,
342*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_SETARC_PART2         = 0x03,
343*53ee8cc1Swenshuai.xi 
344*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_PNL_INFO             = 0x05,
345*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_SEMAPHORE            = 0x06,
346*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_OS_BAK_COLOR         = 0x07,
347*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_RT_FB                = 0x08,
348*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_DLA_FB               = 0x09,
349*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_IFRAME_CONTROL       = 0x0A,
350*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_SETARC_SETTING       = 0x0B,
351*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_MMAP                 = 0x0C,
352*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_HKMB_READY           = 0x0D,
353*53ee8cc1Swenshuai.xi 
354*53ee8cc1Swenshuai.xi     //CP => HK
355*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_EXIT                 = 0x80,
356*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_AUTOBOOT             = 0x81,
357*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_CHANNEL_CHANGE       = 0x82,
358*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_MHEG5_TO_MENU        = 0x83,
359*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_RESOURCE_CHANGE      = 0x84,
360*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_KEY_REGISTER         = 0x85,
361*53ee8cc1Swenshuai.xi 
362*53ee8cc1Swenshuai.xi 
363*53ee8cc1Swenshuai.xi 
364*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_MMAP_OK              = 0x8C,
365*53ee8cc1Swenshuai.xi     MB_MHEG5_STATE_CMD_CPMB_READY           = 0x8D,
366*53ee8cc1Swenshuai.xi } MB_MHEG5_STATE_CLASS;
367*53ee8cc1Swenshuai.xi 
368*53ee8cc1Swenshuai.xi //-------------------------------
369*53ee8cc1Swenshuai.xi // MB_CLASS_CAPE
370*53ee8cc1Swenshuai.xi //-------------------------------
371*53ee8cc1Swenshuai.xi typedef enum
372*53ee8cc1Swenshuai.xi {
373*53ee8cc1Swenshuai.xi     //HK51 => AEON
374*53ee8cc1Swenshuai.xi     MB_CAPE_INIT_RES                 = 0x00,
375*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_CREATE_RES          = 0x10,
376*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_ENABLE_RES          = 0x11,
377*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_MOVE_RES            = 0x12,
378*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_DESTROY_RES         = 0x13,
379*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_INIT_RES             = 0x14,
380*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_SETBLUESCREEN_RES    = 0x15,
381*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_MOVE_RES             = 0x16,
382*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_DESTROY_RES          = 0x17,
383*53ee8cc1Swenshuai.xi     MB_CAPE_I8_SET_RES               = 0x20,
384*53ee8cc1Swenshuai.xi     MB_CAPE_I8_GET_RES               = 0x21,
385*53ee8cc1Swenshuai.xi     MB_CAPE_FILE_LEN_RES             = 0x30,
386*53ee8cc1Swenshuai.xi     MB_CAPE_FILE_COPY_RES            = 0x31,
387*53ee8cc1Swenshuai.xi     #ifdef ENABLE_BIKEIR
388*53ee8cc1Swenshuai.xi     MB_CAPE_INIT_BIKEIR_RES          = 0x40,
389*53ee8cc1Swenshuai.xi     #endif
390*53ee8cc1Swenshuai.xi     #ifdef ENABLE_DMP
391*53ee8cc1Swenshuai.xi     MB_CAPE_AUDIO_INIT_RES           = 0x50,
392*53ee8cc1Swenshuai.xi     #endif
393*53ee8cc1Swenshuai.xi 
394*53ee8cc1Swenshuai.xi     //AEON => HK51
395*53ee8cc1Swenshuai.xi     MB_CAPE_INIT_REQ                 = 0x80,
396*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_CREATE_REQ          = 0x90,
397*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_ENABLE_REQ          = 0x91,
398*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_MOVE_REQ            = 0x92,
399*53ee8cc1Swenshuai.xi     MB_CAPE_GWIN_DESTROY_REQ         = 0x93,
400*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_INIT_REQ             = 0x94,
401*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_SETBLUESCREEN_REQ    = 0x95,
402*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_MOVE_REQ             = 0x96,
403*53ee8cc1Swenshuai.xi     MB_CAPE_VOP_DESTROY_REQ          = 0x97,
404*53ee8cc1Swenshuai.xi     MB_CAPE_AUDIO_INIT_REQ           = 0xA0,
405*53ee8cc1Swenshuai.xi     MB_CAPE_I8_SET_REQ               = 0xB0,
406*53ee8cc1Swenshuai.xi     MB_CAPE_I8_GET_REQ               = 0xB1,
407*53ee8cc1Swenshuai.xi     MB_CAPE_APP_FINALIZED_SIG        = 0xC0,
408*53ee8cc1Swenshuai.xi     MB_CAPE_APP_ALIVE_SIG            = 0xC1,
409*53ee8cc1Swenshuai.xi     MB_CAPE_APP_INITIALIZED_SIG      = 0xC2,
410*53ee8cc1Swenshuai.xi     MB_CAPE_FILE_LEN_REQ             = 0xD0,
411*53ee8cc1Swenshuai.xi     MB_CAPE_FILE_COPY_REQ            = 0xD1,
412*53ee8cc1Swenshuai.xi     #ifdef ENABLE_BIKEIR
413*53ee8cc1Swenshuai.xi     MB_CAPE_INIT_BIKEIR_REQ          = 0xD2,
414*53ee8cc1Swenshuai.xi     #endif
415*53ee8cc1Swenshuai.xi     MB_CAPE_NET_IP_INFO              = 0xE0,
416*53ee8cc1Swenshuai.xi     MB_CAPE_NET_MASK_INFO            = 0xE1,
417*53ee8cc1Swenshuai.xi     MB_CAPE_NET_GATEWAY_INFO         = 0xE2,
418*53ee8cc1Swenshuai.xi     MB_CAPE_NET_DNS_INFO             = 0xE3,
419*53ee8cc1Swenshuai.xi 
420*53ee8cc1Swenshuai.xi } MB_CAPE_CLASS;
421*53ee8cc1Swenshuai.xi 
422*53ee8cc1Swenshuai.xi //-------------------------------
423*53ee8cc1Swenshuai.xi // MB_CLASS_GE_STATE
424*53ee8cc1Swenshuai.xi //-------------------------------
425*53ee8cc1Swenshuai.xi typedef enum
426*53ee8cc1Swenshuai.xi {
427*53ee8cc1Swenshuai.xi     MB_GE_STATUS                       = 0,
428*53ee8cc1Swenshuai.xi     MB_Relase_GE_Mutex_BY_HK51         = 1,
429*53ee8cc1Swenshuai.xi     MB_Request_GE_Mutex_BY_HK51        = 2,
430*53ee8cc1Swenshuai.xi } MB_GE_STATE_CLASS;
431*53ee8cc1Swenshuai.xi 
432*53ee8cc1Swenshuai.xi //-------------------------------
433*53ee8cc1Swenshuai.xi // MB_CLASS_MVF
434*53ee8cc1Swenshuai.xi //-------------------------------
435*53ee8cc1Swenshuai.xi typedef enum
436*53ee8cc1Swenshuai.xi {
437*53ee8cc1Swenshuai.xi     //HK51 => AEON
438*53ee8cc1Swenshuai.xi     MB_MVF_CMD_LOAD_FACE           = 0,
439*53ee8cc1Swenshuai.xi     MB_MVF_CMD_GENERATE_BITMAP     = 1,
440*53ee8cc1Swenshuai.xi     MB_MVF_CMD_DONE_FACE           = 2,
441*53ee8cc1Swenshuai.xi 
442*53ee8cc1Swenshuai.xi     //AEON => HK51
443*53ee8cc1Swenshuai.xi     MB_MVF_CMD_LOAD_DONE           = 0x80,
444*53ee8cc1Swenshuai.xi     MB_MVF_CMD_GENERATE_DONE       = 0x81,
445*53ee8cc1Swenshuai.xi 
446*53ee8cc1Swenshuai.xi } MB_MVF_CLASS;
447*53ee8cc1Swenshuai.xi 
448*53ee8cc1Swenshuai.xi /// Mail box return state
449*53ee8cc1Swenshuai.xi typedef enum
450*53ee8cc1Swenshuai.xi {
451*53ee8cc1Swenshuai.xi     MB_RETURN_OK,                                               ///< Mail box return OK
452*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_EXIT,                                               ///< Mail box return EXIT
453*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_AUTOBOOT,                                               ///< Mail box return AUTOBOOT
454*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_CHANNELCHANGE,                                               ///< Mail box return Channelchange
455*53ee8cc1Swenshuai.xi     MB_RETURN_MVF_DONE,                                               ///< Mail box return MVF Done
456*53ee8cc1Swenshuai.xi     MB_RETURN_MVF_ERROR,                                               ///< Mail box return MVF Erroe
457*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_SEL,                                               ///< Mail box return quit by "select key"
458*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_0,                                               ///< Mail box return quit by selected state "0 key"
459*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_1,                                               ///< Mail box return quit by selected state "1 key"
460*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_2,                                               ///< Mail box return quit by selected state "2 key"
461*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_3,                                               ///< Mail box return quit by selected state "3 key"
462*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_4,                                               ///< Mail box return quit by selected state "4 key"
463*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_5,                                               ///< Mail box return quit by selected state "5 key"
464*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_6,                                               ///< Mail box return quit by selected state "6 key"
465*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_7,                                               ///< Mail box return quit by selected state "7 key"
466*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_8,                                               ///< Mail box return quit by selected state "8 key"
467*53ee8cc1Swenshuai.xi     MB_RETURN_MHEG5_SELECTED_QUIT_9,                                               ///< Mail box return quit by selected state "9 key"
468*53ee8cc1Swenshuai.xi     MB_RETURN_51_STATE_CHANNEL_CHANGE,                                               ///< Mail box return 51 state channel change
469*53ee8cc1Swenshuai.xi     MB_RETURN_51_STATE_MHEG5_TO_MENU,                                               ///< Mail box return 51 state MHEG5 to Menu
470*53ee8cc1Swenshuai.xi     MB_RETURN_LZSS_COMPRESS_DONE,
471*53ee8cc1Swenshuai.xi     MB_RETURN_LZSS_COMPRESS_FAILED,
472*53ee8cc1Swenshuai.xi } MB_RETURN_STATE;
473*53ee8cc1Swenshuai.xi 
474*53ee8cc1Swenshuai.xi //-------------------------------
475*53ee8cc1Swenshuai.xi // MB_CLASS_MPEG2_FS
476*53ee8cc1Swenshuai.xi //-------------------------------
477*53ee8cc1Swenshuai.xi //Issue Command Index
478*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PARSE                       0x01        //[0]~[3]: PS buffer start
479*53ee8cc1Swenshuai.xi                                                             //[4]~[7]: PS buffer end
480*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_INFO                        0x02        //[0]~[3]: File length
481*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_SET_POS                     0x03        //[0]~[3]: File position
482*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PRE_PARSE                   0x04        //[0]~[3]: PS buffer start
483*53ee8cc1Swenshuai.xi                                                             //[4]~[7]: PS buffer end
484*53ee8cc1Swenshuai.xi //Receive Command Index
485*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PARSE_COMPLETED             0x80        //[0]: 0: forward Seek. 1: backward Seek.
486*53ee8cc1Swenshuai.xi                                                             //[1]~[4]: Offset
487*53ee8cc1Swenshuai.xi                                                             //[5]~[8]: Request size
488*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PARSE_COMPLETED_DATA        0x83        //[0]: 0: forward Seek. 1: backward Seek.
489*53ee8cc1Swenshuai.xi  															//[1]~[4]: video demux num
490*53ee8cc1Swenshuai.xi                                                             //[5]~[8]: audio demux num
491*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PRE_PARSE_COMPLETED         0x81        //[0]: 0: Can't support decode, 1: Can support decode.
492*53ee8cc1Swenshuai.xi                                                             //[1]: MPEG file type.
493*53ee8cc1Swenshuai.xi                                                             //[2]: MPEG file audio count.
494*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PRE_PARSE_COMPLETED_DATA    0x84        //[0]: subpic count
495*53ee8cc1Swenshuai.xi                                                             //[1]~[3]: sub pic ID
496*53ee8cc1Swenshuai.xi 
497*53ee8cc1Swenshuai.xi 
498*53ee8cc1Swenshuai.xi #define MB_MPEG2_FS_PRE_PARSE_NEXT_BUFF         0x82        //
499*53ee8cc1Swenshuai.xi //-------------------------------
500*53ee8cc1Swenshuai.xi // MB_CLASS_MPEG2
501*53ee8cc1Swenshuai.xi //-------------------------------
502*53ee8cc1Swenshuai.xi //Issue Command Index
503*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_VID_PARS_TYPE              0x01        //[0]: Parse type.
504*53ee8cc1Swenshuai.xi                                                             //[1]~[4]: Output buffer start
505*53ee8cc1Swenshuai.xi                                                             //[5]~[8]: Output buffer end
506*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_VID_RD_PTR                 0x03        //[0]~[3]: TSP Read buffer pointer
507*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_AUD_PARS_TYPE              0x04        //[0]: Parse type.
508*53ee8cc1Swenshuai.xi                                                             //[1]~[4]: Output buffer start
509*53ee8cc1Swenshuai.xi                                                             //[5]~[8]: Output buffer end
510*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_AUD_RD_PTR                 0x06
511*53ee8cc1Swenshuai.xi #define MB_MPEG2_PARS_ENABLE                    0x08        //[0]: 0x1, enable video parsing. 0x2, enable audio parsing.
512*53ee8cc1Swenshuai.xi                                                             //[1]~[2]: Video PID (type is TS)
513*53ee8cc1Swenshuai.xi                                                             //[3]~[4]: Audio PID (type is TS)
514*53ee8cc1Swenshuai.xi #define MB_MPEG2_PARS_DISABLE                   0x09        //[0]: 0x1, disable video parsing. 0x2, disable audio parsing.
515*53ee8cc1Swenshuai.xi #define MB_MPEG2_PARS_CTL                       0x0a        //[0]: 0x0, Stop parsing process.
516*53ee8cc1Swenshuai.xi                                                             //     0x1, Normal parsing process.
517*53ee8cc1Swenshuai.xi                                                             //     0x2, Forward I frame parsing process.
518*53ee8cc1Swenshuai.xi                                                             //     0x3, Backward I frame parsing process.
519*53ee8cc1Swenshuai.xi #define MB_MPEG2_GET_PTS_POS                    0x0b        //[0]~[3]: PTS
520*53ee8cc1Swenshuai.xi 
521*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_AUD_INFO                   0x0c        //[0]: Audio Type
522*53ee8cc1Swenshuai.xi                                                             //[1]: Audio stream_id or sub_Stream_id
523*53ee8cc1Swenshuai.xi 
524*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_PCR_INFO                   0x0d        //[0]~[1]: PCR PID
525*53ee8cc1Swenshuai.xi 
526*53ee8cc1Swenshuai.xi #define MB_MPEG2_RESET_TSP_BUFF_PTR             0x0e        //[0]~[3]: TSP buffer pointer
527*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_PTS_SHARE_ADR             	0x0f        //[0]~[3]: PTS buffer pointer
528*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_SUBPIC_INFO                0x10        //[0]: subpic stream_id
529*53ee8cc1Swenshuai.xi 
530*53ee8cc1Swenshuai.xi 
531*53ee8cc1Swenshuai.xi 
532*53ee8cc1Swenshuai.xi //Receive Command Index
533*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_STC                        0x80        //[0]: STC bit 32, [1]: STC bit 31~24,
534*53ee8cc1Swenshuai.xi                                                             //[2]: STC bit 23~16, [3]: STC bit 15~8, [4]: STC bit 7~0,
535*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_TSP_PTR                    0x81        //[0]~[3]: TSP buffer write pointer
536*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_VID_ES_PTR                 0x82
537*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_AUD_ES_PTR                 0x83        //[0]~[3]: ES buffer write pointer
538*53ee8cc1Swenshuai.xi                                                             //[4]~[7]: PTS
539*53ee8cc1Swenshuai.xi 
540*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_TS_PGINFO                  0x84        //[0]: Program Index
541*53ee8cc1Swenshuai.xi                                                             //[1]~[2]: Program number
542*53ee8cc1Swenshuai.xi                                                             //[3]~[4]: PCR Pid
543*53ee8cc1Swenshuai.xi                                                             //[5]~[6]: Video Pid
544*53ee8cc1Swenshuai.xi                                                             //[7]~[8]: Audio Pid
545*53ee8cc1Swenshuai.xi                                                             //[9]: Audio type
546*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_TS_PGINFO2                 0x85        //[0]: Program Index
547*53ee8cc1Swenshuai.xi                                                             //[1]~[2]: Sub-pic Pid
548*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_TS_PGCOUNT                 0x86        //[0]~[3]: Program count
549*53ee8cc1Swenshuai.xi #define MB_MPEG2_SET_DMA_REQUEST                0x87        //[0]~[2]: Dst addr (256 bytes alignment)
550*53ee8cc1Swenshuai.xi                                                             //[3]~[5]: Src addr (256 bytes alignment)
551*53ee8cc1Swenshuai.xi                                                             //[6]~[9]: DMA size (byte unit)
552*53ee8cc1Swenshuai.xi #define MB_MPEG2_PARS_SPU                       0x88
553*53ee8cc1Swenshuai.xi 
554*53ee8cc1Swenshuai.xi //-------------------------------
555*53ee8cc1Swenshuai.xi // MB_CLASS_TSPLAYER
556*53ee8cc1Swenshuai.xi //-------------------------------
557*53ee8cc1Swenshuai.xi //MB_VDPLAYER_SETUP_DISPLAY  Params[0]
558*53ee8cc1Swenshuai.xi //#define MB_TS_SET_DISPLAY                       0x01
559*53ee8cc1Swenshuai.xi //#define MB_TS_SETUP_DISPLAY                     0x02
560*53ee8cc1Swenshuai.xi //#define MB_TS_SET_FREEZEIMG                     0x03
561*53ee8cc1Swenshuai.xi //#define MB_TS_VIDMONITOR                        0x04
562*53ee8cc1Swenshuai.xi //#define MB_TS_VID_SETH264OUTPUT                 0x05
563*53ee8cc1Swenshuai.xi //#define MB_TS_SET_STC                           0x06
564*53ee8cc1Swenshuai.xi 
565*53ee8cc1Swenshuai.xi //MB_VDPLAYER_SCALER_API CommandIndex
566*53ee8cc1Swenshuai.xi //Params[0]
567*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_SetBlueScreen               0x01//arg 2( ENABLE, FREE_RUN_COLOR_BLACK );
568*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_SetDisplayWindowStatus      0x02//arg 1 ( displayWindowStatue |= DISPLAYWINDOW_HDTV);
569*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_SetCustomerDisplayWindow    0x03//arg 5(TRUE, MOVIE_PREVIEW_X, MOVIE_PREVIEW_Y, MOVIE_PREVIEW_WIDTH, MOVIE_PREVIEW_HEIGHT);
570*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_SetTimingAndWindow          0x04//arg 3 ( SYS_INPUT_SOURCE_TYPE, &stVOPTiming, stSystemInfo.enAspectRatio);
571*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_GetDisplayWindowStatus      0x05//arg 0;
572*53ee8cc1Swenshuai.xi //#define msAPI_Scaler_SetFreezeImg                 0x06//arg 1;
573*53ee8cc1Swenshuai.xi //#define MB_msAPI_Scaler_GenerateBlackVideo          0x07//arg 1 (DISABLE);
574*53ee8cc1Swenshuai.xi 
575*53ee8cc1Swenshuai.xi //MB_VDPLAYER_AUD_API CommandIndex
576*53ee8cc1Swenshuai.xi //Params[0]
577*53ee8cc1Swenshuai.xi #define MB_msAPI_AUD_AdjustAudioFactor       0x01//msAPI_AUD_AdjustAudioFactor(E_ADJUST_SWITCH_AUDIOSTREAMMODE, tsSrvInfo.stAudInfo[m_u8SoundTrackIdx].wAudType, 0);
578*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_SPDIF_SetMode           0x02//msAPI_AUD_SPDIF_SetMode(MSAPI_AUD_SPDIF_NONPCM);
579*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_SetStreamID_Mod         0x03//msAPI_AUD_SetStreamID_Mod(TRUE);
580*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_DTV_HDMI_CFG            0x04//msAPI_AUD_DTV_HDMI_CFG(FALSE);  // DTV mod set False
581*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_SetDecCommand           0x05//msAPI_AUD_SetDecCommand(MSAPI_AUD_RESYNC);
582*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_SetPaser                0x06//msAPI_AUD_SetPaser(MSAPI_AUD_PASER_PLAY);
583*53ee8cc1Swenshuai.xi //#define MB_msAPI_AUD_SetFreeRun              0x07//msAPI_AUD_SetFreeRun(MSAPI_AUD_DVB_FreeRunMode_FreeRun);
584*53ee8cc1Swenshuai.xi 
585*53ee8cc1Swenshuai.xi //MB_VDPLAYER_VID_API CommandIndex
586*53ee8cc1Swenshuai.xi //Params[0]
587*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_MVDInit                 0x01//msAPI_VID_MVDInit();
588*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_VOPInit                 0x02//msAPI_VID_VOPInit();
589*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_VOPEnable               0x03//emsAPI_VID_VOPEnable( TRUE );
590*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_SetVOPClk               0x04//msAPI_VID_SetVOPClk( ENABLE );
591*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_Command                 0x05//msAPI_VID_Command(MSAPI_VID_STOP);
592*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_Init                    0x06//msAPI_VID_Init();
593*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_AVCH264EnableParserStop 0x07//msAPI_VID_AVCH264EnableParserStop(x) MDrv_AVCH264_EnableParserStop(x)
594*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_MVDResetBuffAddr        0x08//msAPI_VID_MVDResetBuffAddr();
595*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_MVDCommand              0x08//msAPI_VID_MVDCommand(MSAPI_VID_PLAY);//only mpeg2, need change as msAPI_VID_Command(MSAPI_VID_PLAY) if h264 add in;
596*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_GetPicCount             0x09//msAPI_VID_GetPicCount();
597*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_AVCH264GetDispRdy       0x0A//msAPI_VID_AVCH264GetDispRdy()
598*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_AVCH264GetSeqInfo       0x0B//(msAPI_VID_AVCH264GetSeqInfo(&stVidInfo))
599*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_GetDispRdy              0x0C//(msAPI_VID_GetDispRdy())
600*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_GetVidInfo              0x0D//(msAPI_VID_GetVidInfo(&stVidInfo))
601*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_SetH264Output           0x0E//( msAPI_VID_SetH264Output(&stVOPTiming, &stVidInfo ) == PASS )
602*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_VOPSetBlackBG           0x0F//msAPI_VID_VOPSetBlackBG();
603*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_AVCH264GetDispInfoDone  0x10//msAPI_VID_AVCH264GetDispInfoDone();
604*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_SetMVDOutput            0x11//( msAPI_VID_SetMVDOutput(&stVOPTiming, &stVidInfo) == PASS )
605*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_GetGOPCount             0x12//msAPI_VID_GetGOPCount();
606*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_SetTrickModeInfo        0x13//msAPI_VID_SetTrickModeInfo(1,1);
607*53ee8cc1Swenshuai.xi //#define MB_msAPI_VID_GetFirstFrame           0x14//msAPI_VID_GetFirstFrame()
608*53ee8cc1Swenshuai.xi 
609*53ee8cc1Swenshuai.xi //-------------------------------
610*53ee8cc1Swenshuai.xi // MB_CLASS_VDPLAYER_FS
611*53ee8cc1Swenshuai.xi //-------------------------------
612*53ee8cc1Swenshuai.xi //Receive Command Index
613*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FS_INIT                        0x01         //[0]~[3]: VDPlayer info buffer start
614*53ee8cc1Swenshuai.xi                                                                 //[4]~[7]: VDPlayer data buffer start
615*53ee8cc1Swenshuai.xi 
616*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FS_PAR_STREAM_INFO             0x02         //[0]: no. of stream
617*53ee8cc1Swenshuai.xi 
618*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FS_PAR_FRAME_INFO              0x03         //[0]~[3]: Frame info buffer address
619*53ee8cc1Swenshuai.xi 
620*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT_INDEX                     0x04
621*53ee8cc1Swenshuai.xi 
622*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT_AUDIO                     0x05
623*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT_AUDIO_2                   0x06
624*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT_AUDIO_3                   0x07
625*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT_AC3                       0x08
626*53ee8cc1Swenshuai.xi 
627*53ee8cc1Swenshuai.xi //Issue Command Index
628*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FS_INIT_DONE                   0x80         //[0]: 0: success. 1: fail.
629*53ee8cc1Swenshuai.xi 
630*53ee8cc1Swenshuai.xi 
631*53ee8cc1Swenshuai.xi //-------------------------------
632*53ee8cc1Swenshuai.xi // MB_CLASS_VDPLAYER
633*53ee8cc1Swenshuai.xi //-------------------------------
634*53ee8cc1Swenshuai.xi //51-->Aeon Command Index
635*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_INIT                    0x01
636*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MEM_INIT                0x02
637*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_STATE_INIT              0x03
638*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_RESET                   0x04
639*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_PREVIEW_MODE        0x05
640*53ee8cc1Swenshuai.xi 
641*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_PLAY                    0x10
642*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_STOP                    0x11
643*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_PAUSE                   0x12
644*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_RESUME                  0x13
645*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FF                      0x14
646*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_REW                     0x15
647*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_TRICK_MODE          0x16
648*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_TRICK_MODE          0x17
649*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_REPEAT_AB               0x18
650*53ee8cc1Swenshuai.xi 
651*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_SUBTITLE_TRACKID    0x21
652*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_SUBTITLE_STATE      0x22
653*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_VDPLAYER_INFO       0x23
654*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_BEFORE_CAPTURE_VIDEO    0x24
655*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_AFTER_CAPTURE_VIDEO     0x25
656*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_PLAYER_POSITION     0x26
657*53ee8cc1Swenshuai.xi 
658*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_ACK_51ToAEON            0x30
659*53ee8cc1Swenshuai.xi 
660*53ee8cc1Swenshuai.xi //DivX MM Function
661*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_AUDIO_TRACK_COUNT_TO_AEON       0x41
662*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_AUDIO_TRACK_ID_TO_AEON          0x42
663*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_AUDIO_TRACK_ID_TO_AEON          0x43
664*53ee8cc1Swenshuai.xi //Subtitle
665*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SPUQUEUE_GET_DRAM_ADDR_TO_AEON      0x44
666*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SPUQUEUE_PUSH                       0x45
667*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_MAIN                  0x46
668*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SET_SUBTITLE_SHOW              0x47
669*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_INIT_DEINIT           0x48//Init: 0 deinit:1
670*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_RESET                 0x49
671*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_SETHEADERINFO         0x4A
672*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_GETQUEUEINFO          0x4B
673*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_MPEG_SUBTITLE_FILEPROCESS           0x4C
674*53ee8cc1Swenshuai.xi // DRM
675*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_DRM_REG_CODE                    0x50
676*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_CHECK_DRM_AUTHORIZATION             0x51
677*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_QUERY_DRM_RENTAL_STATUS             0x52
678*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_DRM_REG_CODE_2                  0x53
679*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_DRM_DEACTIVATION_CODE           0x54
680*53ee8cc1Swenshuai.xi 
681*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_TS_SET_PROGRAM                      0x60
682*53ee8cc1Swenshuai.xi 
683*53ee8cc1Swenshuai.xi //Aeon->51 Command Index
684*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_READ               0x80
685*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_SEEK               0x81
686*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_OPEN               0x82
687*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_CLOSE              0x83
688*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_VIDEO_INIT              0x84
689*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_AUDIO_INIT              0x85
690*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SETUP_DISPLAY           0x86
691*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_CLOSE_DISPLAY           0x87
692*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_AUDIO_START             0x88
693*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_READ_NONBLOCKING   0X89
694*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_DUMP_RAW           0x8A
695*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_DISPLAY_INFO        0x8B
696*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_SET_DISPLAY_INFO        0x8C
697*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_SEEK_NONBLOCKING   0x8D
698*53ee8cc1Swenshuai.xi 
699*53ee8cc1Swenshuai.xi 
700*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_ACK_AEONTo51                    0xA0
701*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_STATE_RET                       0xA1
702*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_STATE_RET_WAIT                  0xA2
703*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_STATE_RET_EXIT                  0xA3
704*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_READ_NONBLOCKING_DONE      0XA4
705*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_FILE_SEEK_NONBLOCKING_DONE      0XA5
706*53ee8cc1Swenshuai.xi 
707*53ee8cc1Swenshuai.xi //TS MM Function
708*53ee8cc1Swenshuai.xi //#define MB_VDPLAYER_SET_INTERRUPT    0xA5
709*53ee8cc1Swenshuai.xi //#define MB_VDPLAYER_AUDIO_SETTING    0xA6
710*53ee8cc1Swenshuai.xi //#define MB_VDPLAYER_SCALER_API       0xA7
711*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_AUD_API                             0xA8
712*53ee8cc1Swenshuai.xi //#define MB_VDPLAYER_VID_API          0xA9
713*53ee8cc1Swenshuai.xi 
714*53ee8cc1Swenshuai.xi //DivX MM Function
715*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_AUDIO_TRACK_COUNT_FROM_AEON     0x90
716*53ee8cc1Swenshuai.xi #define MB_VDPLAYER_GET_AUDIO_TRACK_ID_FROM_AEON        0x91
717*53ee8cc1Swenshuai.xi 
718*53ee8cc1Swenshuai.xi #define MB_51_PARALLEL_QLENGTH              1
719*53ee8cc1Swenshuai.xi #define MB_51_PARALLEL_QSIZE                13
720*53ee8cc1Swenshuai.xi 
721*53ee8cc1Swenshuai.xi #define MB_51_STATE_QLENGTH                 10
722*53ee8cc1Swenshuai.xi #define MB_51_STATE_QSIZE                   13
723*53ee8cc1Swenshuai.xi #define MB_MHEG5_EXIT_SELECTED              2
724*53ee8cc1Swenshuai.xi 
725*53ee8cc1Swenshuai.xi #define MB_51_MPEG2_QLENGTH                 24
726*53ee8cc1Swenshuai.xi #define MB_51_MPEG2_QSIZE                   13
727*53ee8cc1Swenshuai.xi 
728*53ee8cc1Swenshuai.xi #define MB_51_MPEG2_FS_QLENGTH              6
729*53ee8cc1Swenshuai.xi #define MB_51_MPEG2_FS_QSIZE                13
730*53ee8cc1Swenshuai.xi 
731*53ee8cc1Swenshuai.xi #define MB_51_TSPLAYER_QLENGTH              MB_51_MPEG2_QLENGTH
732*53ee8cc1Swenshuai.xi #define MB_51_TSPLAYER_QSIZE                MB_51_MPEG2_QSIZE
733*53ee8cc1Swenshuai.xi 
734*53ee8cc1Swenshuai.xi #define MB_51_TSPLAYER_FS_QLENGTH           MB_51_MPEG2_FS_QLENGTH
735*53ee8cc1Swenshuai.xi #define MB_51_TSPLAYER_FS_QSIZE             MB_51_MPEG2_FS_QSIZE
736*53ee8cc1Swenshuai.xi #define MB_51_VDPLAYER_QLENGTH              MB_51_MPEG2_QLENGTH // 24
737*53ee8cc1Swenshuai.xi #define MB_51_VDPLAYER_QSIZE                MB_51_MPEG2_QSIZE // 13
738*53ee8cc1Swenshuai.xi 
739*53ee8cc1Swenshuai.xi #define MB_51_VDPLAYER_FS_QLENGTH           MB_51_MPEG2_FS_QLENGTH // 4
740*53ee8cc1Swenshuai.xi #define MB_51_VDPLAYER_FS_QSIZE             MB_51_MPEG2_FS_QSIZE // 13
741*53ee8cc1Swenshuai.xi 
742*53ee8cc1Swenshuai.xi #define MB_51_IR_QLENGTH                    13
743*53ee8cc1Swenshuai.xi #define MB_51_IR_QSIZE                      13
744*53ee8cc1Swenshuai.xi 
745*53ee8cc1Swenshuai.xi #define MB_OBAMA_QLENGTH                    13
746*53ee8cc1Swenshuai.xi #define MB_OBAMA_QSIZE                      13
747*53ee8cc1Swenshuai.xi 
748*53ee8cc1Swenshuai.xi #define MB_51_MBFS_QLENGTH                  10
749*53ee8cc1Swenshuai.xi #define MB_51_MBFS_QSIZE                    13
750*53ee8cc1Swenshuai.xi 
751*53ee8cc1Swenshuai.xi #define SHWFS_CMD_QLENGTH                  10
752*53ee8cc1Swenshuai.xi #define SHWFS_CMD_QSIZE                    13
753*53ee8cc1Swenshuai.xi 
754*53ee8cc1Swenshuai.xi //Add by Ian
755*53ee8cc1Swenshuai.xi #define NWDEBUG_CMD_QLENGTH                  3
756*53ee8cc1Swenshuai.xi #define NWDEBUG_CMD_QSIZE                    13
757*53ee8cc1Swenshuai.xi 
758*53ee8cc1Swenshuai.xi #define MB_PRINT_MESSAGE_QLENGTH                    13
759*53ee8cc1Swenshuai.xi #define MB_PRINT_MESSAGE_QSIZE                      13
760*53ee8cc1Swenshuai.xi 
761*53ee8cc1Swenshuai.xi #define MB_CIPLUS_QLENGTH                    13
762*53ee8cc1Swenshuai.xi #define MB_CIPLUS_QSIZE                      13
763*53ee8cc1Swenshuai.xi 
764*53ee8cc1Swenshuai.xi #define MB_DLNA_QLENGTH                    24
765*53ee8cc1Swenshuai.xi #define MB_DLNA_QSIZE                      13
766*53ee8cc1Swenshuai.xi 
767*53ee8cc1Swenshuai.xi #define MB_BTPD_QLENGTH                 10
768*53ee8cc1Swenshuai.xi #define MB_BTPD_QSIZE                   13
769*53ee8cc1Swenshuai.xi 
770*53ee8cc1Swenshuai.xi #define MB_KTV_QLENGTH                 10
771*53ee8cc1Swenshuai.xi #define MB_KTV_QSIZE                   13
772*53ee8cc1Swenshuai.xi 
773*53ee8cc1Swenshuai.xi #define MB_51_APENGINE_QLENGTH                 10
774*53ee8cc1Swenshuai.xi #define MB_51_APENGINE_QSIZE                   13
775*53ee8cc1Swenshuai.xi 
776*53ee8cc1Swenshuai.xi #define MB_51_MM_QLENGTH                 10
777*53ee8cc1Swenshuai.xi #define MB_51_MM_QSIZE                   13
778*53ee8cc1Swenshuai.xi 
779*53ee8cc1Swenshuai.xi #define MB_51_MHEG5_QLENGTH                 10
780*53ee8cc1Swenshuai.xi #define MB_51_MHEG5_QSIZE                   13
781*53ee8cc1Swenshuai.xi 
782*53ee8cc1Swenshuai.xi //-----------------------------------------------
783*53ee8cc1Swenshuai.xi // Class :: BMP
784*53ee8cc1Swenshuai.xi //-----------------------------------------------
785*53ee8cc1Swenshuai.xi //8051->Aeon
786*53ee8cc1Swenshuai.xi //set bmp decoding output parameters
787*53ee8cc1Swenshuai.xi //para 0~3: output buffer address (para0:LSB  ;  para3:MSB)
788*53ee8cc1Swenshuai.xi //para 4~5: output imgage max width (para4:LSB  ;  para5:MSB)
789*53ee8cc1Swenshuai.xi //para 6~7: output imgage max height (para6:LSB  ;  para7:MSB)
790*53ee8cc1Swenshuai.xi #define MB_BMP_SET_OUTPUT_INFO      0x01
791*53ee8cc1Swenshuai.xi 
792*53ee8cc1Swenshuai.xi 
793*53ee8cc1Swenshuai.xi //8051->Aeon
794*53ee8cc1Swenshuai.xi //set bmp file data buffer parameters
795*53ee8cc1Swenshuai.xi //para 0: buffer index (0 or 1, please use 0 at begining of file decoding)
796*53ee8cc1Swenshuai.xi //para 1~4: data buffer address (para1:LSB  ;  para4:MSB)
797*53ee8cc1Swenshuai.xi //para 5~6: data buffer length (para5:LSB  ;  para6:MSB ; max:2048)
798*53ee8cc1Swenshuai.xi #define MB_BMP_SET_DATA_BUF         0x02
799*53ee8cc1Swenshuai.xi 
800*53ee8cc1Swenshuai.xi 
801*53ee8cc1Swenshuai.xi //Aeon->8051
802*53ee8cc1Swenshuai.xi //Notify 8051 that data in buffer is consumed
803*53ee8cc1Swenshuai.xi //para 0: buffer index (0 or 1)
804*53ee8cc1Swenshuai.xi #define MB_BMP_NOTIFY_BUFFER_EMPTY  0x03
805*53ee8cc1Swenshuai.xi 
806*53ee8cc1Swenshuai.xi //Aeon->8051
807*53ee8cc1Swenshuai.xi //Report this bmp image size
808*53ee8cc1Swenshuai.xi //para 0~1: image width (para0:LSB  ;  para1:MSB)
809*53ee8cc1Swenshuai.xi //para 2~3: image height (para2:LSB  ;  para3:MSB)
810*53ee8cc1Swenshuai.xi #define MB_BMP_NOTIFY_IMG_INFO      0x04
811*53ee8cc1Swenshuai.xi #define MB_BMP_STOP_DECODE          0x05
812*53ee8cc1Swenshuai.xi #define MB_BMP_STOP_DECODE_ACK      0x06
813*53ee8cc1Swenshuai.xi 
814*53ee8cc1Swenshuai.xi //-----------------------------------------------
815*53ee8cc1Swenshuai.xi // Class :: PNG
816*53ee8cc1Swenshuai.xi //-----------------------------------------------
817*53ee8cc1Swenshuai.xi #define MB_PNG_SET_OUTPUT_INFO      0x01
818*53ee8cc1Swenshuai.xi #define MB_PNG_SET_DATA_BUF         0x02
819*53ee8cc1Swenshuai.xi #define MB_PNG_NOTIFY_BUFFER_EMPTY  0x03
820*53ee8cc1Swenshuai.xi #define MB_PNG_NOTIFY_IMG_INFO      0x04
821*53ee8cc1Swenshuai.xi #define MB_PNG_STOP_DECODE          0x05
822*53ee8cc1Swenshuai.xi #define MB_PNG_NOTIFY_DECODE_END    0x06
823*53ee8cc1Swenshuai.xi 
824*53ee8cc1Swenshuai.xi //----------------------------------
825*53ee8cc1Swenshuai.xi // Get MailBox Message Return Value
826*53ee8cc1Swenshuai.xi //----------------------------------
827*53ee8cc1Swenshuai.xi typedef enum
828*53ee8cc1Swenshuai.xi {
829*53ee8cc1Swenshuai.xi     MB_GET_MSG_OK,
830*53ee8cc1Swenshuai.xi     MB_QUEUE_EMPTY,
831*53ee8cc1Swenshuai.xi     MB_ERROR_CLASS,
832*53ee8cc1Swenshuai.xi } MB_GETMSG_RET;
833*53ee8cc1Swenshuai.xi 
834*53ee8cc1Swenshuai.xi //-----------------------------------------------
835*53ee8cc1Swenshuai.xi //INTERFACE
836*53ee8cc1Swenshuai.xi //-----------------------------------------------
837*53ee8cc1Swenshuai.xi 
838*53ee8cc1Swenshuai.xi INTERFACE MailBox MailBoxPara;
839*53ee8cc1Swenshuai.xi INTERFACE void MDrv_InitMailBoxQueue(void);
840*53ee8cc1Swenshuai.xi INTERFACE void MDrv_SendMailBoxMsg(void);
841*53ee8cc1Swenshuai.xi INTERFACE void MDrv_HandleMailBox(void);
842*53ee8cc1Swenshuai.xi INTERFACE MS_U8 MDrv_GetMailBoxMsg(MS_U8 u8QueueType, MS_U8 *Msg);
843*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MDrv_IsMailBoxMsgEmpty(MS_U8 u8QueueType);
844*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MDrv_CheckMailBoxIdle(void);
845*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MDrv_CheckMailBoxReady(void);
846*53ee8cc1Swenshuai.xi INTERFACE MS_U8 MDrv_GetMailBoxMsgCount(MS_U8 u8QueueType);
847*53ee8cc1Swenshuai.xi INTERFACE void MDrv_ClearMailBoxStatus(void);
848*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MDrv_WaitMailBoxReady(void);
849*53ee8cc1Swenshuai.xi 
850*53ee8cc1Swenshuai.xi #undef INTERFACE
851*53ee8cc1Swenshuai.xi #endif //_MAILBOX_H_
852*53ee8cc1Swenshuai.xi 
853