source: svn/newcon3bcm2_21bu/dst/dmw/src/include/GRP_Base.h @ 76

Last change on this file since 76 was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 14.9 KB
Line 
1/******************************************************************************
2
3Copyright (c) 2004 Digital STREAM Technology Inc. All Rights Reserved
4
5FILE NAME
6
7        GRP_Base.h
8
9VERSION
10
11        Version 0.4
12
13DESCRIPTION
14
15        This file is for 2'D draw module be to used in Application .
16
17AUTHOR
18
19        S/W 3 Team                      Jongki Jeong.
20
21HISTORY
22
23        NAME                    DATE                            REMARKS
24
25    Jongki jeong                03-09-2004              Created initial version 0.01
26        Jinsook Kim                     06-11-2004                      modify draw_3d_effect
27                                                                                        3d ±×¸±¶§ lt_line °ú rb_line ºñ±³Çؼ­
28                                                                                        °ËÁ¤»ö¿¡ °¡±î¿î»öÀ» °¡Áø ¶óÀÎÀÌ
29                                                                                        Èò»ö¿¡ °¡±î¿î»öÀ» °¡Áø ¶óÀÎÀ» °¨½Î°Ô
30                                                                                        ±×¸®µµ·Ï Ãß°¡
31        Jinsook Kim                     06-25-2004              Updated version : 0.01->0.1
32        Jinsook Kim                     08-18-2004              Updated version : 0.1->0.2
33        Jong-ki Jeong           03-14-2005              CANVAS MODE °ü·Ã ±¸Á¶Ã¼ ¹× ÇÔ¼öÃß°¡
34        Jinsook Kim                     03-30-2005              Updated version : 0.2->0.3
35        Jinsook Kim                     04-21-2005              Updated version : 0.3->0.4
36
37REMARK
38
39
40******************************************************************************/
41
42#ifndef GRP_BASE_H
43#define GRP_BASE_H
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49//#ifndef __GFX_OSD_H__
50//#include "..\..\drv\lgdt1111\gfx\gfx_osd.h"
51//#endif
52
53#if 0//SUPPORT_LGDT1111
54#ifndef __API_GFXOSD_H__
55#include "..\..\include\api_gfxosd.h"
56#endif
57#endif//SUPPORT_LGDT1111
58#if 0 // add sjpark, compile error, 090908
59#include"bgfx.h"
60#endif
61#include"GRP_DDI.h"
62typedef struct {
63       
64        GRP_RECT r;     
65        CANVAS  *cv;
66       
67}BAKUP_ROI;     
68
69typedef struct {
70        GRP_RECT        r ;
71        int                     h_scale;
72        int                     v_scale;
73}GRP_OSD_INFO;
74
75
76/***************************************************************************/
77/******************* GRP_Draw.cpp   ****************************************/
78/***************************************************************************/
79void    draw_box(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, SINT32 h, UINT32 pal_index) ;
80#define draw_boxR(cv, r,  col)   draw_box( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), (UINT32)col)
81
82void    draw_ellipse (CANVAS *cv, SINT32 xcenter,SINT32 ycenter, SINT32 radx, SINT32 rady, UINT32 pal_index) ;
83void    draw_line (CANVAS *cv , SINT32 x1, SINT32       y1, SINT32      x2, SINT32 y2 , UINT32 pal_index ) ;
84void    draw_h_line(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, UINT32 color) ;
85void    draw_rect(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, SINT32 h, UINT32 lt_color, UINT32 rb_color) ;
86void    draw_rect_ex(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, SINT32 h, 
87                                        UINT32 color, SINT32 line_num, SINT32 line_gap) ;
88void    draw_v_line(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 h, UINT32 color) ;
89void    get_rect(GRP_RECT *r, SINT32 x, SINT32 y, SINT32 w, SINT32 h) ;
90
91void    scroll_hide_ltrt( CANVAS *cv, GRP_RECT *roi, int move_w, GRP_DIRECTION direction, int ms_time) ;
92void    scroll_hide_updown( CANVAS *cv, GRP_RECT *roi, int move_h, GRP_DIRECTION direction, int ms_time) ;
93void    scroll_onestep_ltrt( CANVAS *cv, GRP_RECT *roi,  int move_w, GRP_DIRECTION direction, UINT32 fill_color ) ;
94void    scroll_onestep_updown( CANVAS *cv, GRP_RECT *roi,  int move_h, GRP_DIRECTION direction, UINT32 fill_color ) ;
95void    scroll_show_ltrt( CANVAS *cv,GRP_RECT *roi, int move_w, GRP_DIRECTION direction, int ms_time) ;
96void    scroll_show_updown( CANVAS *cv,GRP_RECT *roi, int move_h, GRP_DIRECTION direction, int ms_time) ;
97void    scroll_show_ltrt2(CANVAS *des_cv , CANVAS *src_cv, GRP_RECT *des_roi,GRP_RECT *src_roi, int move_w, GRP_DIRECTION direction, int ms_time) ;
98void    scroll_show_updown2(CANVAS *des_cv , CANVAS *src_cv, GRP_RECT *des_roi,GRP_RECT *src_roi,int move_h, GRP_DIRECTION direction, int ms_time) ;
99
100void    draw_shadow_effect(CANVAS *cv, GRP_RECT *r,  SINT32 shadow_thick ) ;
101void    draw_3d_effect(CANVAS *cv, GRP_RECT *r, int _3d_thick, int _3d_type, SINT32 shadow_thick, UINT32 thick_colors[6]) ;
102void    draw_oellipse(CANVAS *cv, SINT32 xcenter,SINT32 ycenter,
103                        SINT32 radx, SINT32     rady, UINT32 opal_index, UINT32 ipal_index) ;
104void    draw_fellipse(CANVAS *cv, SINT32 xcenter, SINT32 ycenter,
105                        SINT32 radx, SINT32     rady, UINT32 pal_index) ;
106
107/***************************************************************************/
108/******************* GRP_Bitmap.cpp ****************************************/
109/***************************************************************************/
110SINT32  copy_image(CANVAS *cv,  SINT32 x, SINT32 y ,SINT32 w , SINT32 h, GRP_BBLK *bblk) ;
111#define copy_imageR(cv, r, bblk)  copy_image( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), bblk)
112SINT32  draw_bitmap(CANVAS *cv,SINT32 x , SINT32 y, GRP_LOGO *bit_info ) ; 
113SINT32  draw_2color_bitmap(CANVAS *cv, SINT32 x , SINT32 y,  GRP_BBLK *bblk, UINT32 pal_index) ;
114SINT32  draw_compressed_image(CANVAS *cv, SINT32 x , SINT32 y,  GRP_BBLK *bblk) ;
115SINT32  draw_compressed_2color_image(CANVAS *cv, SINT32 x , SINT32 y,  GRP_BBLK *bblk,UINT32 pal_index) ;
116
117void    draw_edge_window( CANVAS *cv,  GRP_RECT *out,GRP_RECT *in, GRP_EDGE_FRAME *frame, UINT32 fill_color) ;
118void    draw_ltrt_window( CANVAS *cv,  GRP_RECT *out,GRP_RECT *in, GRP_LTRT_FRAME *frame, UINT32 fill_color) ;
119void    draw_rect_window( CANVAS *cv,  GRP_RECT *out,GRP_RECT *in, GRP_RECT_FRAME *frame, UINT32 fill_color) ;
120void    draw_topbot_window( CANVAS *cv,  GRP_RECT *out,GRP_RECT *in, GRP_TOPBOT_FRAME *frame, UINT32 fill_color) ;
121
122void    *get_image(CANVAS *cv, SINT32 x ,SINT32 y  , SINT32 w,SINT32  h) ;
123SINT32  put_image( CANVAS *cv, SINT32 x ,SINT32  y , void       *bit_block ) ;
124void    scroll( CANVAS *cv, GRP_RECT *des ,GRP_RECT  *src,GRP_DIRECTION direction,UINT32 fill_color  ) ;
125
126/***************************************************************************/
127/******************* GRP_Canvas.cpp ****************************************/
128/***************************************************************************/
129GRP_CANVAS_ACCESS get_canvas_mode(void) ;
130void canvas_initialize(UINT32 plane, GRP_PIXEL_FORMAT pixel_fmt) ;
131void set_canvas_mode(GRP_CANVAS_ACCESS access_mode ) ;
132
133void plane_open(GRP_RESOLUTION  osd_resolution) ;
134void palne_close(void) ;
135CANVAS  *canvas_search(UINT32 plain) ;
136CANVAS  *get_last_canvas(void) ;
137SINT32 get_plane_index(CANVAS *cv) ;
138void set_correct_ratio(GRP_RESOLUTION resolution, float coord_x, float coord_y) ;
139void recoordinate(GRP_RESOLUTION resolution, SINT32 *x , SINT32 *y ) ;
140void set_ref_coordinate( GRP_RESOLUTION resolution );
141void get_ref_coordinate( GRP_RESOLUTION *resolution );
142void plane_close(void) ;
143void canvas_terminate(void) ;
144
145/***************************************************************************/
146/******************* GRP_DDI.cpp *******************************************/
147/***************************************************************************/
148
149//#define gddi_get_pixel32(cv,x,y)              ReadTLPhysMemory( ((UINT32 *) cv->pixel_map->baseAddr)+((y)-cv->pixel_map->y)* cv->pixel_map->w+((x)-cv->pixel_map->x))
150#define INDEXTO32(lut)                                          ( (((0xFF*((UINT32)(lut)->blend))>>7) <<24UL)|((UINT32)(lut)->r <<16UL)|((UINT32)(lut)->g <<8UL)|((UINT32)(lut)->b) )
151//#define gddi_set_pixel32(cv,px,py,color)      WriteTLPhysMemory( ((UINT32 *)cv->pixel_map->baseAddr)+((py)-cv->pixel_map->y)* cv->pixel_map->w+((px)-cv->pixel_map->x), color)
152
153/* do not use multi-line comment.
154//not used : #define  gddi_get_pixel(cv,x,y)                    TLGDL_getPixelIndexed(cv->pixel_map  , x , y)   
155//#define gddi_get_pixel(cv,x,y)                        ReadTLPhysMemoryByte( ((UINT8 *) cv->pixel_map->baseAddr)+((y)-cv->pixel_map->y)* cv->pixel_map->w+((x)-cv->pixel_map->x))
156//not used : #define  gddi_set_pixel(cv,x,y,color)      TLGDL_setPixelIndexed(cv->pixel_map ,x, y, color)
157//#define gddi_set_pixel(cv,px,py,color)        WriteTLPhysMemoryByte( ((UINT8 *)cv->pixel_map->baseAddr)+((py)-cv->pixel_map->y)* cv->pixel_map->w+((px)-cv->pixel_map->x), color)
158                //ReadTLPhysMemoryByte( ((UINT8 *) cv->pixel_map->baseAddr)+((y)-cv->pixel_map->y)* cv->pixel_map->w+((x)-cv->pixel_map->x)); \
159                //WriteTLPhysMemoryByte( ((UINT8 *)cv->pixel_map->baseAddr)+((py)-cv->pixel_map->y)* cv->pixel_map->w+((px)-cv->pixel_map->x), color); \
160//((UINT8 *)(cv)->pixel_map->baseAddr)+((y)-cv->pixel_map->y)* (cv)->pixel_map->w+((x)-(cv)->pixel_map->x)
161*/
162#define gddi_get_pixel(cv,px,py)        DHL_GetXY(px, py)
163/*
164{                                                                       \
165        if((cv)->pixel_fmt==GRP_INDEX8)         \
166                dhl_get_xy(px, py)\
167                //bgfx_get_pixel(&cv->pixel_map->surf,px,py);\
168                //API_GFXOSD_GetPixel(cv->pixel_map->frame, px, py);\
169                //ReadTLPhysMemoryByte( ((UINT8 *)((cv)->pixel_map->baseAddr + (cv)->pixel_map->pitch * ((py)+(cv)->y) - (cv)->pixel_map->y))) + ((px)+(cv)->x) - (cv)->pixel_map->x) ); \
170        else if((cv)->pixel_fmt==GRP_INDEX4)    \
171                bgfx_get_pixel(&cv->pixel_map->surf,px,py);\
172        else if((cv)->pixel_fmt==GRP_RGB32 || (cv)->pixel_fmt==GRP_INDEX8TORGB32) \
173                bgfx_get_pixel(&cv->buf_map->surf,px,py);\
174                //API_GFXOSD_GetPixel(cv->pixel_map->frame, px, py);\
175                //ReadTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x) ); \
176}
177*/
178//#define gddi_set_pixel(cv,px,py,color)        API_GFXOSD_SetPixel(1/*cv->pixel_map->frame*/, px, py, (color))
179void gddi_set_pixel(CANVAS *cv, SINT32 px, SINT32 py, UINT32 color);
180/*
181\
182{                                                                               \
183        if((cv)->pixel_fmt==GRP_INDEX8)                 \
184                API_GFXOSD_SetPixel(cv->buf_map->frame, px, py, (color));\
185                //WriteTLPhysMemoryByte( ((UINT8 *)((cv)->pixel_map->baseAddr + (cv)->pixel_map->pitch * (((py)+(cv)->y) - (cv)->pixel_map->y))) + (((px)+(cv)->x) - (cv)->pixel_map->x), (UINT8)((color) & 0xFF) ); \
186        else if((cv)->pixel_fmt==GRP_RGB32) \
187                API_GFXOSD_SetPixel(cv->pixel_map->frame, px, py, (color));\
188                //WriteTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x), (color)); \
189        else if((cv)->pixel_fmt==GRP_INDEX8TORGB32) \
190                API_GFXOSD_SetPixel(cv->pixel_map->frame, px, py, (color));\
191                //WriteTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x), INDEXTO32(&((cv)->palette->rgbs[(UINT8)((color) & 0xFF)])) ); \
192}
193*/
194#define gddi_get_pixel8(cv,px,py)       DHL_GetXY(px, py)
195        //bgfx_get_pixel(&cv->pixel_map->surf,px,py)
196        //API_GFXOSD_GetPixel((int)(cv->pixel_map->frame), px, py)
197        //ReadTLPhysMemoryByte( ((UINT8 *)((cv)->pixel_map->baseAddr + (cv)->pixel_map->pitch * (((py)+(cv)->y) - (cv)->pixel_map->y))) + (((px)+(cv)->x) - (cv)->pixel_map->x) )
198
199#define gddi_set_pixel4(cv,px,py,color) DHL_SetXY(px, py, color)
200        //bgfx_set_pixel(&cv->pixel_map->surf,px,py,color&0x0F)
201       
202       
203#define gddi_set_pixel8(cv,px,py,color) DHL_GetXY(px, py)
204        //bgfx_set_pixel(&cv->pixel_map->surf,px,py,color&0xFF)
205        //API_GFXOSD_SetPixel(1/*cv->pixel_map->frame*/, px, py, color)
206        //WriteTLPhysMemoryByte( ((UINT8 *)((cv)->pixel_map->baseAddr + (cv)->pixel_map->pitch * (((py)+(cv)->y) - (cv)->pixel_map->y))) + (((px)+(cv)->x) - (cv)->pixel_map->x), (UINT8)((color) & 0xFF) )
207
208#define gddi_get_pixel32(cv,px,py)      DHL_GetXY(px, py)
209        //bgfx_get_pixel(&cv->pixel_map->surf,px,py)
210        //API_GFXOSD_GetPixel((int)(cv->pixel_map->frame), px, py)
211        //ReadTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x) )
212
213#define gddi_set_pixel32(cv,px,py,color)        DHL_SetXY(px, py, color)
214        //bgfx_set_pixel(&cv->pixel_map->surf,px,py,color)
215        //API_GFXOSD_SetPixel(1/*cv->pixel_map->frame*/, px, py, color)
216        //WriteTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x), (color))
217
218#define gddi_set_pixel8to32(cv,px,py,color)     DHL_SetXY(px, py, color)
219        //bgfx_set_pixel(&cv->pixel_map->surf,px,py,color)
220        //API_GFXOSD_SetPixel(1/*cv->pixel_map->frame*/, px, py, color)
221        //WriteTLPhysMemory( (cv)->pixel_map->baseAddr + (((py)+(cv)->y) - (cv)->pixel_map->y) * (cv)->pixel_map->pitch + (((px)+(cv)->x) - (cv)->pixel_map->x), INDEXTO32(&((cv)->palette->rgbs[(UINT8)((color) & 0xFF)])) )
222
223void    gddi_box( CANVAS *cv, int x, int y, int w, int h, UINT32 bak_color ) ;
224void    gddi_img_free(void **p) ;
225
226void    gddi_clear_plain(CANVAS *cv, int plane, int x, int y, int w, int h, UINT32 fill_color) ;
227void    gddi_copy_blt( CANVAS *src_cv, CANVAS *des_cv, GRP_RECT  *src_roi,GRP_RECT  *des_roi ) ;
228void    gddi_create_mouse( CANVAS *cv ) ;
229UINT32  gddi_curr_mstime(void) ;
230void    gddi_delete_topology(void) ;
231void    get_direction_key( UINT32  *up_key, UINT32 *down_key, UINT32 *sel_key, UINT32 *left_key ,UINT32 *right_key) ;
232void    gddi_free(void **p ) ;
233
234CANVAS  *gddi_get_temp_canvas(CANVAS *cv , int w, int h) ;
235void    gddi_free_temp_canvas( CANVAS **cv ) ;
236
237int     gddi_get_key(void) ;
238void    *gddi_get_image(CANVAS *cv, int x, int y, int  w, int h) ;
239#define  gddi_get_imageR(cv,r)  gddi_get_image(cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h))
240
241void    gddi_used_scale_topology(GRP_RESOLUTION resolution, int h_scale, int v_scale) ; 
242void    gddi_initialize_planes(CANVAS *statr_cv, int num_plane) ;
243void    *gddi_malloc(int size ) ;
244SINT32  gddi_put_image(CANVAS *cv, SINT32 x ,SINT32 y ,   void *bblk) ;
245void    gddi_refresh_plane(CANVAS *cv, GRP_RECT *r) ;
246void    gddi_recoordinate(GRP_RESOLUTION resolution,int *x , int *y) ;
247UINT32  gddi_RGBtoYCbCr(GRP_RGB  *rgb) ;
248
249void    gddi_update_blend_range (CANVAS *cv, UINT8 blend_value ,UINT32 from,UINT32 to ) ;
250void    gddi_update_palette_range (CANVAS *cv, GRP_RGB *palette ,UINT32 from,UINT32 to ) ;
251
252DHL_OS_SEMA_ID  gddi_create_mutex_sema(SINT8 *string) ;
253DHL_OS_SEMA_ID  gddi_create_mutex_sema(SINT8 *string) ;
254DHL_OS_MSGQ_ID gddi_create_message_queue(const char *name,int message_size) ;
255OS_TASK_ID               gddi_spawn_task(OS_TASKFUNCTION func, const char *name, UINT32 priority, UINT32 param) ;
256
257void    gddi_delete_sema(DHL_OS_SEMA_ID sema) ;
258int     gddi_take_sema(DHL_OS_SEMA_ID sema) ;
259int     gddi_give_sema(DHL_OS_SEMA_ID sema) ;
260int     gddi_take_sema_nowait(DHL_OS_SEMA_ID sema) ;
261int     gddi_take_sema_wait(DHL_OS_SEMA_ID sema, int milli_second ) ;
262int     gdi_get_tick_per_second(void) ;
263int     gdi_send_message(DHL_OS_MSGQ_ID event_id, UINT32 *message  ,int message_size) ;
264void    gddi_delay( int milli_second ) ;
265UINT32  gddi_get_tick_count(void) ;
266
267
268int     gddi_receive_messge(DHL_OS_MSGQ_ID message_id,  UINT32 *messge , int message_size , int msg_len ) ;
269void    gddi_comm_request(void) ;
270void    gddi_comm_response(void) ;
271void    gddi_free(void **p) ;
272void    gddi_update_blend_range_percentage(CANVAS *cv, UINT8 blend_percentage, UINT32 from, UINT32 to) ;
273
274/*********************  debug ¿ë **********************************************/
275void    print_rect(SINT8 *str, GRP_RECT *r) ;
276int     coord_err_check(SINT8 *func_name , CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h) ;
277int             pixelfmt_coord_err_check(SINT8 *func_name , CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h) ;
278int     bblk_err_check(SINT8 *func_name , void *bblk)  ;
279int             zero_size_check(SINT8 *func_name , int w , int h ) ;
280
281#ifdef __cplusplus
282} 
283#endif
284
285#endif
286//-----------------------------------------end of file
287
Note: See TracBrowser for help on using the repository browser.