1 /******************************************************************************
2 ** File Name: sci_service.h *
3 ** Author: Fancier.Fan *
5 ** Copyright: 2006 Spreatrum, Incoporated. All Rights Reserved. *
6 ** Description: This file includes some common message type defines for *
7 ** client/server operation *
8 ******************************************************************************
10 ******************************************************************************
12 ** ------------------------------------------------------------------------- *
13 ** DATE NAME DESCRIPTION *
14 ** 03/16/2006 Fancier.Fan Create. *
15 ******************************************************************************/
16 #ifndef _SCI_SERVICE_H
17 #define _SCI_SERVICE_H
19 #include "sci_types.h"
21 /**---------------------------------------------------------------------------*
23 **---------------------------------------------------------------------------*/
29 /*****************************************************************************/
30 // Description: The type is used to identify different server
31 // Global resource dependence:
32 // Author: Richard.Yang
33 // Note: if external user needs to use it, please define the id
35 /*****************************************************************************/
38 FILE_SERVICE = 1, // File service, Reserved
39 AUDIO_SERVICE, // Audio service
40 KEYPAD_SERVICE, // Keypad service
41 USB_SERVICE, // Udisk service
42 UPM_SERVICE=USB_SERVICE,
43 CHR_SERVICE, // Charge service
44 TIME_SERVICE, // RTC service
46 INTERNAL_USER_SERVICE = 7, // For MN and such service
47 INTERNAL_USER_SERVICE8,
48 INTERNAL_USER_SERVICE9,
50 INTERNAL_USER_SERVICE10,
51 INTERNAL_USER_SERVICE11,
52 INTERNAL_USER_SERVICE12,
53 INTERNAL_USER_SERVICE13,
54 INTERNAL_USER_SERVICE14,
55 INTERNAL_USER_SERVICE15,
56 INTERNAL_USER_SERVICE16,
57 INTERNAL_USER_SERVICE17,
58 INTERNAL_USER_SERVICE18,
59 INTERNAL_USER_SERVICE19,
61 INTERNAL_USER_SERVICE20,
62 INTERNAL_USER_SERVICE21,
63 INTERNAL_USER_SERVICE22,
64 INTERNAL_USER_SERVICE23,
65 INTERNAL_USER_SERVICE24,
66 INTERNAL_USER_SERVICE25,
67 INTERNAL_USER_SERVICE26,
68 INTERNAL_USER_SERVICE27,
69 INTERNAL_USER_SERVICE28,
70 INTERNAL_USER_SERVICE29,
72 INTERNAL_USER_SERVICE30,
73 INTERNAL_USER_SERVICE31,
74 INTERNAL_USER_SERVICE32,
75 INTERNAL_USER_SERVICE33,
76 INTERNAL_USER_SERVICE34,
77 INTERNAL_USER_SERVICE35,
78 INTERNAL_USER_SERVICE36,
79 INTERNAL_USER_SERVICE37,
80 INTERNAL_USER_SERVICE38,
81 INTERNAL_USER_SERVICE39,
83 INTERNAL_USER_SERVICE40,
84 INTERNAL_USER_SERVICE41,
85 INTERNAL_USER_SERVICE42,
86 INTERNAL_USER_SERVICE43,
87 INTERNAL_USER_SERVICE44,
88 INTERNAL_USER_SERVICE45,
89 INTERNAL_USER_SERVICE46,
90 INTERNAL_USER_SERVICE47,
91 INTERNAL_USER_SERVICE48,
92 INTERNAL_USER_SERVICE49,
94 INTERNAL_USER_SERVICE50,
95 INTERNAL_USER_SERVICE51,
96 INTERNAL_USER_SERVICE52,
97 INTERNAL_USER_SERVICE53,
98 INTERNAL_USER_SERVICE54,
99 INTERNAL_USER_SERVICE55,
100 INTERNAL_USER_SERVICE56,
101 INTERNAL_USER_SERVICE57,
102 INTERNAL_USER_SERVICE58,
103 INTERNAL_USER_SERVICE59,
105 INTERNAL_USER_SERVICE60,
106 INTERNAL_USER_SERVICE61,
107 INTERNAL_USER_SERVICE62,
108 INTERNAL_USER_SERVICE63,
110 SYSTEM_SERVICE = 64, // 64~127 for system
150 TP_SERVICE = 100, // For Touchpanel service
152 EXTERNAL_USER_SERVICE = 128, // 128~255 for external user
153 EXTERNAL_USER_SERVICE129,
155 EXTERNAL_USER_SERVICE130,
156 EXTERNAL_USER_SERVICE131,
157 EXTERNAL_USER_SERVICE132,
158 EXTERNAL_USER_SERVICE133,
159 EXTERNAL_USER_SERVICE134,
160 EXTERNAL_USER_SERVICE135,
161 EXTERNAL_USER_SERVICE136,
162 EXTERNAL_USER_SERVICE137,
163 EXTERNAL_USER_SERVICE138,
164 EXTERNAL_USER_SERVICE139,
166 EXTERNAL_USER_SERVICE140,
167 EXTERNAL_USER_SERVICE141,
168 EXTERNAL_USER_SERVICE142,
169 EXTERNAL_USER_SERVICE143,
170 EXTERNAL_USER_SERVICE144,
171 EXTERNAL_USER_SERVICE145,
172 EXTERNAL_USER_SERVICE146,
173 EXTERNAL_USER_SERVICE147,
174 EXTERNAL_USER_SERVICE148,
175 EXTERNAL_USER_SERVICE149,
178 EXTERNAL_USER_SERVICE150,
179 EXTERNAL_USER_SERVICE151,
180 EXTERNAL_USER_SERVICE152,
181 EXTERNAL_USER_SERVICE153,
182 EXTERNAL_USER_SERVICE154,
183 EXTERNAL_USER_SERVICE155,
184 EXTERNAL_USER_SERVICE156,
185 EXTERNAL_USER_SERVICE157,
186 EXTERNAL_USER_SERVICE158,
187 EXTERNAL_USER_SERVICE159,
189 EXTERNAL_USER_SERVICE160,
190 EXTERNAL_USER_SERVICE161,
191 EXTERNAL_USER_SERVICE162,
192 EXTERNAL_USER_SERVICE163,
193 EXTERNAL_USER_SERVICE164,
194 EXTERNAL_USER_SERVICE165,
195 EXTERNAL_USER_SERVICE166,
196 EXTERNAL_USER_SERVICE167,
197 EXTERNAL_USER_SERVICE168,
198 EXTERNAL_USER_SERVICE169,
200 EXTERNAL_USER_SERVICE170,
201 EXTERNAL_USER_SERVICE171,
202 EXTERNAL_USER_SERVICE172,
203 EXTERNAL_USER_SERVICE173,
204 EXTERNAL_USER_SERVICE174,
205 EXTERNAL_USER_SERVICE175,
206 EXTERNAL_USER_SERVICE176,
207 EXTERNAL_USER_SERVICE177,
208 EXTERNAL_USER_SERVICE178,
209 EXTERNAL_USER_SERVICE179,
211 EXTERNAL_USER_SERVICE180,
212 EXTERNAL_USER_SERVICE181,
213 EXTERNAL_USER_SERVICE182,
214 EXTERNAL_USER_SERVICE183,
215 EXTERNAL_USER_SERVICE184,
216 EXTERNAL_USER_SERVICE185,
217 EXTERNAL_USER_SERVICE186,
218 EXTERNAL_USER_SERVICE187,
219 EXTERNAL_USER_SERVICE188,
220 EXTERNAL_USER_SERVICE189,
222 EXTERNAL_USER_SERVICE190,
223 EXTERNAL_USER_SERVICE191,
224 EXTERNAL_USER_SERVICE192,
225 EXTERNAL_USER_SERVICE193,
226 EXTERNAL_USER_SERVICE194,
227 EXTERNAL_USER_SERVICE195,
228 EXTERNAL_USER_SERVICE196,
229 EXTERNAL_USER_SERVICE197,
230 EXTERNAL_USER_SERVICE198,
231 EXTERNAL_USER_SERVICE199,
233 EXTERNAL_USER_SERVICE200,
234 EXTERNAL_USER_SERVICE201,
235 EXTERNAL_USER_SERVICE202,
236 EXTERNAL_USER_SERVICE203,
237 EXTERNAL_USER_SERVICE204,
238 EXTERNAL_USER_SERVICE205,
239 EXTERNAL_USER_SERVICE206,
240 EXTERNAL_USER_SERVICE207,
241 EXTERNAL_USER_SERVICE208,
242 EXTERNAL_USER_SERVICE209,
245 EXTERNAL_USER_SERVICE210,
246 EXTERNAL_USER_SERVICE211,
247 EXTERNAL_USER_SERVICE212,
248 EXTERNAL_USER_SERVICE213,
249 EXTERNAL_USER_SERVICE214,
250 EXTERNAL_USER_SERVICE215,
251 EXTERNAL_USER_SERVICE216,
252 EXTERNAL_USER_SERVICE217,
253 EXTERNAL_USER_SERVICE218,
254 EXTERNAL_USER_SERVICE219,
256 EXTERNAL_USER_SERVICE220,
257 EXTERNAL_USER_SERVICE221,
258 EXTERNAL_USER_SERVICE222,
259 EXTERNAL_USER_SERVICE223,
260 EXTERNAL_USER_SERVICE224,
261 EXTERNAL_USER_SERVICE225,
262 EXTERNAL_USER_SERVICE226,
263 EXTERNAL_USER_SERVICE227,
264 EXTERNAL_USER_SERVICE228,
265 EXTERNAL_USER_SERVICE229,
267 EXTERNAL_USER_SERVICE230,
268 EXTERNAL_USER_SERVICE231,
269 EXTERNAL_USER_SERVICE232,
270 EXTERNAL_USER_SERVICE233,
271 EXTERNAL_USER_SERVICE234,
272 EXTERNAL_USER_SERVICE235,
273 EXTERNAL_USER_SERVICE236,
274 EXTERNAL_USER_SERVICE237,
275 EXTERNAL_USER_SERVICE238,
276 EXTERNAL_USER_SERVICE239,
278 EXTERNAL_USER_SERVICE240,
279 EXTERNAL_USER_SERVICE241,
280 EXTERNAL_USER_SERVICE242,
281 EXTERNAL_USER_SERVICE243,
282 EXTERNAL_USER_SERVICE244,
283 EXTERNAL_USER_SERVICE245,
284 EXTERNAL_USER_SERVICE246,
285 EXTERNAL_USER_SERVICE247,
286 EXTERNAL_USER_SERVICE248,
287 EXTERNAL_USER_SERVICE249,
289 EXTERNAL_USER_SERVICE250,
290 EXTERNAL_USER_SERVICE251,
291 EXTERNAL_USER_SERVICE252,
292 EXTERNAL_USER_SERVICE253,
293 EXTERNAL_USER_SERVICE254,
294 EXTERNAL_USER_SERVICE255,
299 #define UDISK_SERVICE USB_SERVICE // UPM manager service.It has the same SERVICE ID with Udisk.
300 // UDISK_SERVICE is used in D platform.
301 // UPM_SERVICE is used in M platform.
302 // BUT this is forbidden and External User will defined its own service seperately
303 #define MN_APP_PHONE_SERVICE (INTERNAL_USER_SERVICE)
304 #define MN_APP_CALL_SERVICE (INTERNAL_USER_SERVICE+1)
305 #define MN_APP_GPRS_SERVICE (INTERNAL_USER_SERVICE+2)
306 #define MN_APP_SMS_SERVICE (INTERNAL_USER_SERVICE+3)
307 #define MN_APP_SMSCB_SERVICE (INTERNAL_USER_SERVICE+4)
308 #define MN_APP_SS_SERVICE (INTERNAL_USER_SERVICE+5)
309 #define MN_APP_SIMAT_SERVICE (INTERNAL_USER_SERVICE+6)
310 #define MN_APP_SIM_SERVICE (INTERNAL_USER_SERVICE+7)
312 #define DRM_SERVICE (INTERNAL_USER_SERVICE+8) // DRM Service
314 #define DTL_SERVICE (INTERNAL_USER_SERVICE+9) //MTV DTL
315 #define CSM_SERVICE (INTERNAL_USER_SERVICE+10) //MTV channel status monitor service id
317 #define STREAMING_SERVICE (INTERNAL_USER_SERVICE + 11) //streaming
319 #define MSENSOR_SERVICE (INTERNAL_USER_SERVICE+12) // M-sensor Service
322 /*****************************************************************************/
323 // Description: Below is the interface for server/client
324 // Global resource dependence:
325 // Author: Richard.Yang
327 /*****************************************************************************/
329 #define SCI_ID_USED 0xff
330 #define SCI_INVALID_ID 0x0100
332 /*****************************************************************************/
333 // Description: The function is used to be called when client need
334 // indication from server
335 // Global resource dependence:
336 // Author: Richard.Yang
337 // Note: id: Task id of the client which register the event
338 // The specific funtion of argc and argv, please see each
339 // server's definition, according to function
340 // PUBLIC void SCI_SendEventToClient(
341 // uint32 server_ID, // Server ID, EXAMPLE: KEYPAD_SERVICE
342 // uint32 ui_event_type, // Message ID of the registered event
343 // void * signal_ptr // Signal Sent to Client
345 // Where argc equals ui_event_type, argv equals to signal_ptr
346 /*****************************************************************************/
347 typedef void (* REG_CALLBACK) (uint32 id, uint32 argc, void *argv);
349 /*****************************************************************************/
350 // Description: The function is create a server list
351 // Global resource dependence:
352 // Author: Richard.Yang
354 /*****************************************************************************/
355 PUBLIC uint32 SCI_CreateClientList( // Return SCI_ID_USED if current ID is used by user
356 // Return SCI_SUCCESS if OK.
357 uint32 server_ID, // Server ID, must be SRV_ID_E type
358 uint8 total_event_num, // Total number of the event.
359 REG_CALLBACK default_fun // Default callback function. Called if
360 // client has no callback function.
363 /*****************************************************************************/
364 // Description: The function is delete a server list
365 // Global resource dependence:
366 // Author: Richard.Yang
368 /*****************************************************************************/
369 PUBLIC uint32 SCI_DeleteClientList( // Return SCI_ID_USED if current ID is used by user
370 // Return SCI_SUCCESS if OK.
371 uint32 server_ID // Server ID, must be SRV_ID_E type
374 /*****************************************************************************/
375 // Description: The function is used by server to send meesage to
376 // registered clients
377 // Global resource dependence:
378 // Author: Richard.Yang
380 /*****************************************************************************/
381 PUBLIC void SCI_SendEventToClient(
382 uint32 server_ID, // Server ID, EXAMPLE: KEYPAD_SERVICE
383 uint32 ui_event_type, // Message ID of the registered event
384 void * signal_ptr // Signal Sent to Client
387 /*****************************************************************************/
388 // Description: The function is used by client to register event to server
389 // The current task is treated as the client which register
391 // Global resource dependence:
392 // Author: Richard.Yang
394 /*****************************************************************************/
395 PUBLIC uint32 SCI_RegisterMsg( // Return SCI_INVALID_ID if no such sever
396 // else return SCI_SUCCESS
397 uint32 server_ID, // Server ID, must be SRV_ID_E type
398 uint8 start_event, // Start number of event
399 uint8 end_event, // End number of event
400 REG_CALLBACK fun // Callback function user defined
403 /*****************************************************************************/
404 // Description: The function is used by client to unregister event to server
405 // The current task is treated as the client which register
407 // Global resource dependence:
408 // Author: Richard.Yang
410 /*****************************************************************************/
411 PUBLIC uint32 SCI_UnregisterMsg( // Return SCI_INVALID_ID if no such sever
412 // else return SCI_SUCCESS
413 uint32 server_ID, // Server ID, must be SRV_ID_E type
414 uint8 start_event, // Start number of event
415 uint8 end_event, // End number of event
416 REG_CALLBACK fun // Callback function user defined
419 /*****************************************************************************/
420 // Description: The function is used by client to register event to server
421 // Global resource dependence:
422 // Author: Richard.Yang
424 /*****************************************************************************/
425 PUBLIC uint32 SCI_RegisterTaskMsg( // Return SCI_INVALID_ID if no such sever
426 // else return SCI_SUCCESS
427 uint32 server_ID, // Server ID, must be SRV_ID_E type
428 uint8 start_event, // Start number of event
429 uint8 end_event, // End number of event
430 uint32 task_ID, // ID of the task which register the event
431 REG_CALLBACK fun // Callback function user defined
434 /*****************************************************************************/
435 // Description: The function is used by client to unregister event to server
436 // Global resource dependence:
437 // Author: Richard.Yang
439 /*****************************************************************************/
440 PUBLIC uint32 SCI_UnregisterTaskMsg( // Return SCI_INVALID_ID if no such sever
441 // else return SCI_SUCCESS
442 uint32 server_ID, // Server ID, must be SRV_ID_E type
443 uint8 start_event, // Start number of event
444 uint8 end_event, // End number of event
445 uint32 task_ID, // ID of the task which unregister the event
446 REG_CALLBACK fun // Callback function user defined
449 /*****************************************************************************/
450 // Description: Check if the client has registe to the server.
451 // Global resource dependence:
454 /*****************************************************************************/
455 PUBLIC BOOLEAN SCI_IsClientRegisted( // Return FALSE if the server is not exist
456 // or the client did not register any event
457 // to the server, else return TRUE
458 uint32 server_ID, // Server ID, must be the same with task id
459 uint32 client_ID // ID of the task which register the event
463 /**---------------------------------------------------------------------------*
465 **---------------------------------------------------------------------------*/
470 #endif // End _SCI_SERVICE_H