0
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /********************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * lcd_messages.c : contains functions used by Upper layer to send messages *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * to LCD mailbox, and by LCD to send events to Upper layer *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * Project : *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * Author : Davide Carpegna *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * Version number : 1.0 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * Date : 29 September 2000 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 * *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 *********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #include "r2d/lcd_messages.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #include "rvm/rvm_use_id_list.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 /* Global variables */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 typedef struct DRIVER_GBL_INFO
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 T_RVF_MB_ID prim_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 T_RVF_ADDR_ID addr_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 UINT8 rtc_mailbox;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 } T_DRIVER_GBL_INFO;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 T_DRIVER_GBL_INFO * DRIVER_GBL_INFO_PTR = NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 UINT8 DrvTaskReady = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /* Function Name: LCD_Reset */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 /* Purpose:called by Appli, sends lcd_reset message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 /* Input Parameters: None */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 T_RV_RET lcd_reset(void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 /* Function Name: lcd_clear */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 /* Purpose:called by Appli, sends lcd_clear message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /* Input Parameters: None */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 /* T_RV_RET. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 T_RV_RET lcd_clear(void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 T_LCD_CLEAR *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 msg_ptr->os_hdr.msg_id = LCD_CLEAR_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 rvf_send_trace("LCD_Clear function FAILED ",26, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 /* Function Name: LCD_Init */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 /* Purpose:called by Appli, sends lcd_init message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 /* Input Parameters: None */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 T_RV_RET lcd_init(void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 T_LCD_INIT *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 { LCD_Init_ll();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 { LCD_Init_ll();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_INIT ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 msg_ptr->os_hdr.msg_id = LCD_INIT_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 { rvf_send_trace("LCD_Init function FAILED ",25, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 /* Function Name: LCD_WriteString */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 /* Purpose:called by Appli, sends lcd_write_string message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 /* Input Parameters: row, column, string, mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 T_RV_RET lcd_write_string(UINT8 row, UINT8 column, char *string, T_VIDEO_MODE mode)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 UINT8 length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 T_LCD_WRITE_STRING *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 /* the string must fit into one row, so the maximum string length is 14 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 /* character starting from column 0 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 length = (UINT8) strlen (string);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 if((length*6+column)>DISP_PIXELWIDTH)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 rvf_send_trace("LCD_WriteString - too long string ",34, NULL_PARAM,RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 return (RV_INVALID_PARAMETER);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_WRITE_STRING ) + length, (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 msg_ptr->row = row;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 msg_ptr->column = column * 6;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 msg_ptr->mode = mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 /* the first byte indicates the string length ('\x00' excepted), while */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 /* the message is included beyond this parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 msg_ptr->string = length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 memcpy (&(msg_ptr->string) + 1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 string,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 length);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 msg_ptr->os_hdr.msg_id = LCD_WRITE_STRING_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 rvf_send_trace("LCD_WriteString function FAILED ",32, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 /* Function Name: LCD_WriteCenter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 /* Purpose:called by Appli, sends lcd_write_center message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 /* Input Parameters: string */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 T_RV_RET lcd_write_center( char *string)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 UINT8 length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 T_LCD_WRITE_CENTER *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 /* the string must fit into one row, so the maximum string length is 14 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 /* character starting from column 0 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 length = (UINT8) strlen (string);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 if((length*6+X_CENTER-(length/2)*DISP_PAGEHEIGHT)>DISP_PIXELWIDTH)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 rvf_send_trace("LCD_WriteCenter - too long string ",34, NULL_PARAM,RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 return (RV_INVALID_PARAMETER);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_WRITE_CENTER ) + length, (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 /* the first byte indicates the length ('\x00' excepted), while the */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 /* message is included beyond this parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 msg_ptr->string = length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 memcpy (&(msg_ptr->string) + 1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 string,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 length);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 msg_ptr->os_hdr.msg_id = LCD_WRITE_CENTER_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 rvf_send_trace("LCD_WriteCenter function FAILED ",32, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 /* Function Name: LCD_ClearString */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 /* Purpose:called by Appli, sends lcd_clear_strring message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 /* Input Parameters: row */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 /* T_RV_RET. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 T_RV_RET lcd_clear_string(UINT8 row)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 T_LCD_CLEAR_STRING *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR_STRING ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 msg_ptr->row = row;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 msg_ptr->os_hdr.msg_id = LCD_CLEAR_STRING_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 rvf_send_trace("LCD_ClearString function FAILED ",32, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 /* Function Name: LCD_ClearWord */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 /* Purpose:called by Appli, sends lcd_clear_word message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 /* Input Parameters: row, column, length */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 T_RV_RET lcd_clear_word(UINT8 row, UINT8 column, UINT16 length)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 T_LCD_CLEAR_WORD *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR_WORD ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 msg_ptr->row = row;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 msg_ptr->column = column * 6;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 msg_ptr->length = length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 msg_ptr->os_hdr.msg_id = LCD_CLEAR_WORD_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 rvf_send_trace("LCD_ClearWord function FAILED ",31, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 /* Function Name: LCD_PutPixel */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 /* Purpose:called by Appli, sends lcd_put_pixel message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 /* Input Parameters:x,y */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 T_RV_RET lcd_put_pixel(UINT8 x, UINT8 y)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 T_LCD_PUT_PIXEL *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_PUT_PIXEL ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 msg_ptr->x = x;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 msg_ptr->y = y;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 msg_ptr->os_hdr.msg_id = LCD_PUT_PIXEL_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 rvf_send_trace("LCD_PutPixel function FAILED ",29, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 /* Function Name: LCD_ClearPixel */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 /* Purpose:called by Appli, sends lcd_clear_pixel message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 /* Input Parameters:x,y */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 T_RV_RET lcd_clear_pixel(UINT8 x, UINT8 y)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 T_LCD_CLEAR_PIXEL *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR_PIXEL ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 msg_ptr->x = x;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459 msg_ptr->y = y;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 msg_ptr->os_hdr.msg_id = LCD_CLEAR_PIXEL_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 rvf_send_trace("LCD_ClearPixel function FAILED ",31, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476 /* Function Name: LCD_DrawLine */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478 /* Purpose:called by Appli, sends lcd_draw_line message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 /* Input Parameters:x1,y1, x2,y2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 T_RV_RET lcd_draw_line(UINT8 x1, UINT8 y1, UINT8 x2, UINT8 y2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491 T_LCD_DRAW_LINE *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_DRAW_LINE ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504 msg_ptr->x1 = x1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 msg_ptr->y1 = y1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 msg_ptr->x2 = x2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507 msg_ptr->y2 = y2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 msg_ptr->os_hdr.msg_id = LCD_DRAW_LINE_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 rvf_send_trace("LCD_DrawLine function FAILED ",29, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523 /* Function Name: LCD_ClearLine */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525 /* Purpose:called by Appli, sends lcd_clear_line message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528 /* Input Parameters:x1,y1, x2,y2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534 T_RV_RET lcd_clear_line(UINT8 x1, UINT8 y1, UINT8 x2, UINT8 y2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538 T_LCD_CLEAR_LINE *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR_LINE ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 msg_ptr->x1 = x1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552 msg_ptr->y1 = y1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553 msg_ptr->x2 = x2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 msg_ptr->y2 = y2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556 msg_ptr->os_hdr.msg_id = LCD_CLEAR_LINE_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 rvf_send_trace("LCD_ClearLine function FAILED ",30, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 /* Function Name: LCD_DrawRectangle */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 /* Purpose:called by Appli, sends lcd_draw_rectangle message into lcd mailbox*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 /* Input Parameters:x1,y1, x2,y2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 T_RV_RET lcd_draw_rectangle(UINT8 x1, UINT8 y1, UINT8 x2, UINT8 y2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586 T_LCD_DRAW_RECTANGLE *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_DRAW_RECTANGLE ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599 msg_ptr->x1 = x1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 msg_ptr->y1 = y1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601 msg_ptr->x2 = x2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602 msg_ptr->y2 = y2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604 msg_ptr->os_hdr.msg_id = LCD_DRAW_RECTANGLE_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 rvf_send_trace("LCD_DrawRectangle function FAILED ",34, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 /* Function Name: LCD_ClearRectangle */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620 /* Purpose:called by Appli, sends lcd_clear_rectangle message into lcd mailbox*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
622 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
623 /* Input Parameters:x1,y1, x2,y2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
624 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
625 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
626 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
627
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
628
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
629 T_RV_RET lcd_clear_rectangle(UINT8 x1, UINT8 y1, UINT8 x2, UINT8 y2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
630 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
631
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
632 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
633 T_LCD_CLEAR_RECTANGLE *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
634
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
635 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
636 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
637 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
638
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
639 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
640 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
641
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
642 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_CLEAR_RECTANGLE ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
643
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
644 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
645 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
646 msg_ptr->x1 = x1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
647 msg_ptr->y1 = y1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
648 msg_ptr->x2 = x2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
649 msg_ptr->y2 = y2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
650
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
651 msg_ptr->os_hdr.msg_id = LCD_CLEAR_RECTANGLE_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
652
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
653 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
654
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
655 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
656 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
657 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
658 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
659 rvf_send_trace("LCD_ClearRectangle function FAILED ",35, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
660 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
661 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
662 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
663 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
664
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
665 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
666 /* Function Name: LCD_DrawIcon */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
667 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
668 /* Purpose:called by Appli, sends lcd_display_icon message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
669 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
670 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
671 /* Input Parameters:x, y, icon_id */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
672 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
673 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
674 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
675
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
676
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
677 T_RV_RET lcd_draw_icon(UINT8 x,UINT8 y,UINT8 icon_id)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
678 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
679
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
680 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
681 T_LCD_DRAW_ICON *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
682
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
683 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
684 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
685
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
686 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
687 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
688 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
689 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
690 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
691
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
692 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_DRAW_ICON ), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
693
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
694 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
695 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
696 msg_ptr->icon_id = icon_id;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
697 msg_ptr->x = x;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
698 msg_ptr->y = y;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
699
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
700 msg_ptr->os_hdr.msg_id = LCD_DRAW_ICON_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
701
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
702 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
703
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
704 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
705 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
706 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
707 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
708 rvf_send_trace("LCD_DrawIcon function FAILED ",29, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
709 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
710 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
711 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
712 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
713
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
714 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
715 /* Function Name: LCD_RefreshBloc */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
716 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
717 /* Purpose:called by Appli, sends lcd_draw_bloc message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
718 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
719 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
720 /* Input Parameters:table,x_dim,y_dim,x_pos,y_pos */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
721 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
722 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
723 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
724
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
725
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
726 T_RV_RET lcd_refresh_bloc(char *table,UINT8 x_dim,UINT8 y_dim,UINT8 x_pos,UINT8 y_pos)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
727 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
728
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
729 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
730 T_LCD_REFRESH_BLOC *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
731
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
732
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
733 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
734 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
735 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
736
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
737 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
738 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
739
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
740 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_REFRESH_BLOC), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
741
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
742
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
743 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
744 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
745 msg_ptr->table = table;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
746 msg_ptr->x_dim = x_dim;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
747 msg_ptr->y_dim = y_dim;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
748 msg_ptr->x_pos = x_pos;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
749 msg_ptr->y_pos = y_pos;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
750
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
751 msg_ptr->os_hdr.msg_id = LCD_REFRESH_BLOC_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
752
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
753 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
754
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
755 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
756 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
757 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
758 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
759 rvf_send_trace("LCD_RefreshBloc function FAILED ",32, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
760 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
761 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
762 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
763 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
764
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
765 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
766 /* Function Name: LCD_PixBlt */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
767 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
768 /* Purpose:called by Appli, sends lcd_refresh_bloc message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
769 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
770 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
771 /* Input Parameters:table,x_dim,y_dim,x_pos,y_pos,table */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
772 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
773 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
774 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
775
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
776
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
777 T_RV_RET lcd_pix_blt(int x_pos,int y_pos,int x_dim,int y_dim,char *table)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
778 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
779 T_RVF_MB_STATUS mb_status1,mb_status2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
780 T_LCD_DRAW_BLOC *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
781 int i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
782 char *table_to_send; //pointer to the table created to copy the transmitted data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
783
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
784
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
785 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
786 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
787 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
788
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
789 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
790 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
791
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
792 if((x_pos>83)||(y_pos>48))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
793 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
794 rvf_send_trace("LCD - image outside lcd",23, NULL_PARAM,RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
795 return(RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
796 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
797
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
798 mb_status1 = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_DRAW_BLOC), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
799
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
800 if((mb_status1==RVF_RED))//memory allocation failed
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
801 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
802 rvf_send_trace("LCD_PixBlt function FAILED ",27, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
803 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
804 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
805 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
806
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
807 //dynamic allocation of the copy table
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
808 mb_status2 = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, (x_dim*y_dim)/8, (void **) &table_to_send);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
809
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
810 if((mb_status2==RVF_RED))//memory allocation failed
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
811 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
812 rvf_free_buf(msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
813 rvf_send_trace("LCD_PixBlt function FAILED ",27, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
814 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
815 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
816 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
817
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
818 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
819 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
820 for(i=0;i<((x_dim*y_dim/8)-1);i++)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
821 table_to_send[i]=table[i];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
822
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
823 msg_ptr->table = table_to_send;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
824 msg_ptr->x_dim = x_dim;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
825 msg_ptr->y_dim = y_dim;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
826 msg_ptr->x_pos = x_pos;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
827 msg_ptr->y_pos = y_pos;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
828
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
829 msg_ptr->os_hdr.msg_id = LCD_DRAW_BLOC_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
830
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
831 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
832
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
833 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
834 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
835 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
836
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
837 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
838 /* Function Name: LCD_Enable */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
839 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
840 /* Purpose:called by Appli, sends lcd_enable message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
841 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
842 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
843 /* Input Parameters: x */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
844 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
845 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
846 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
847
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
848
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
849 T_RV_RET lcd_enable(UINT8 x)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
850 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
851
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
852 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
853 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
854 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
855
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
856 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
857 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
858
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
859 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
860 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
861
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
862 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
863 /* Function Name: LCD_SetPower */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
864 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
865 /* Purpose:called by Appli, sends lcd_set_power message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
866 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
867 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
868 /* Input Parameters: None */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
869 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
870 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
871 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
872
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
873
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
874 T_RV_RET lcd_set_power()
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
875 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
876
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
877 T_RVF_MB_STATUS mb_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
878 T_LCD_SET_POWER *msg_ptr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
879
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
880 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
881 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
882 { LCD_Init_ll();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
883 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
884 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
885 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
886 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
887 LCD_Init_ll();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
888 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
889 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
890
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
891
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
892 mb_status = rvf_get_buf (DRIVER_GBL_INFO_PTR->prim_id, sizeof (T_LCD_SET_POWER), (void **) &msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
893
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
894 if ((mb_status == RVF_GREEN) || (mb_status == RVF_YELLOW)) /* Memory allocation success */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
895 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
896
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
897 msg_ptr->os_hdr.msg_id = LCD_SET_POWER_EVT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
898
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
899 rvf_send_msg (DRIVER_GBL_INFO_PTR->addr_id, msg_ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
900
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
901 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
902 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
903 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
904 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
905 rvf_send_trace("LCD_SetPower function FAILED ",29, NULL_PARAM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
906 RV_TRACE_LEVEL_WARNING, R2D_USE_ID );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
907 return(RV_MEMORY_ERR);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
908 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
909 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
910
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
911 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
912 /* Function Name: LCD_Cursor */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
913 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
914 /* Purpose:called by Appli, sends lcd_cursor message into lcd mailbox */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
915 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
916 /* */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
917 /* Input Parameters:x,y */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
918 /* Output Parameters: */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
919 /* T_RV_RET */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
920 /********************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
921
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
922
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
923 T_RV_RET lcd_cursor(UINT8 y,UINT8 x)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
924 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
925
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
926 /* check if the driver has been started */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
927 if ( DRIVER_GBL_INFO_PTR == NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
928 return (RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
929
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
930 if (DrvTaskReady == 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
931 return(RV_NOT_READY);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
932
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
933 return (RV_OK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
934 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
935
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
936
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
937
|