• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2011-2016, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  *     * Redistributions of source code must retain the above copyright
7  *       notice, this list of conditions and the following disclaimer.
8  *     * Redistributions in binary form must reproduce the above
9  *       copyright notice, this list of conditions and the following
10  *       disclaimer in the documentation and/or other materials provided
11  *       with the distribution.
12  *     * Neither the name of The Linux Foundation, nor the names of its
13  *       contributors may be used to endorse or promote products derived
14  *       from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 /** @file loc_api_v02_client.h
30 */
31 
32 #ifndef LOC_API_V02_CLIENT_H
33 #define LOC_API_V02_CLIENT_H
34 
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 
41 /*=============================================================================
42  *
43  *                             DATA DECLARATION
44  *
45  *============================================================================*/
46 #include <stdbool.h>
47 #include <stdint.h>
48 
49 #include "location_service_v02.h"  //QMI LOC Service data types definitions
50 
51 #include <stddef.h>
52 
53 /******************************************************************************
54  *  Constants and configuration
55  *****************************************************************************/
56 
57 /** @ingroup constants_macros
58   Specific value of #locClientHandleType, indicating an invalid handle. */
59 #define LOC_CLIENT_INVALID_HANDLE_VALUE (NULL)
60 
61 
62 /** @addtogroup data_types
63 @{ */
64 
65 /** Location client handle used to represent a specific client. Negative values
66     are invalid handles.
67 */
68 typedef void* locClientHandleType;
69 
70 /** Data type for events and event masks. */
71 typedef uint64_t locClientEventMaskType;
72 
73 /** Location client status values.
74 */
75 typedef enum
76 {
77   eLOC_CLIENT_SUCCESS                              = 0,
78   /**< Request was successful. */
79 
80   eLOC_CLIENT_FAILURE_GENERAL                      = 1,
81   /**< Failed because of a general failure. */
82 
83   eLOC_CLIENT_FAILURE_UNSUPPORTED                  = 2,
84   /**< Failed because the service does not support the command. */
85 
86   eLOC_CLIENT_FAILURE_INVALID_PARAMETER            = 3,
87   /**< Failed because the request contained invalid parameters. */
88 
89   eLOC_CLIENT_FAILURE_ENGINE_BUSY                  = 4,
90   /**< Failed because the engine is busy. */
91 
92   eLOC_CLIENT_FAILURE_PHONE_OFFLINE                = 5,
93   /**< Failed because the phone is offline. */
94 
95   eLOC_CLIENT_FAILURE_TIMEOUT                      = 6,
96   /**< Failed because of a timeout. */
97 
98   eLOC_CLIENT_FAILURE_SERVICE_NOT_PRESENT          = 7,
99   /**< Failed because the service is not present. */
100 
101   eLOC_CLIENT_FAILURE_SERVICE_VERSION_UNSUPPORTED  = 8,
102   /**< Failed because the service version is unsupported. */
103 
104   eLOC_CLIENT_FAILURE_CLIENT_VERSION_UNSUPPORTED  =  9,
105   /**< Failed because the service does not support client version. */
106 
107   eLOC_CLIENT_FAILURE_INVALID_HANDLE               = 10,
108   /**< Failed because an invalid handle was specified. */
109 
110   eLOC_CLIENT_FAILURE_INTERNAL                     = 11,
111   /**< Failed because of an internal error in the service. */
112 
113   eLOC_CLIENT_FAILURE_NOT_INITIALIZED              = 12,
114   /**< Failed because the service has not been initialized. */
115 
116   eLOC_CLIENT_FAILURE_NOT_ENOUGH_MEMORY             = 13
117   /**< Failed because there is not enough memory to do the operation. */
118 
119 }locClientStatusEnumType;
120 
121 /** Location client error values
122 */
123 typedef enum
124 {
125   eLOC_CLIENT_ERROR_SERVICE_UNAVAILABLE            = 1
126   /**< Service is no longer available. Upon getting this error, the client
127        must close the existing connection and reopen the connection. */
128 
129 }locClientErrorEnumType;
130 
131 
132 /** Request messages the client can send to the location engine.
133 
134   The following requests do not have any data associated, so they do not have a
135   payload structure defined:
136 
137   - GetServiceRevision
138   - GetFixCriteria
139   - GetPredictedOrbitsDataSource
140   - GetPredictedOrbitsDataValidity
141   - GetEngineLock
142   - GetSbasConfigReq
143   - GetRegisteredEvents
144   - GetNmeaTypes
145   - GetLowPowerMode
146   - GetXtraTSessionControl
147   - GetRegisteredEvents
148   - GetOperationMode
149   - GetCradleMountConfig
150   - GetExternalPowerConfig
151   - GetSensorControlConfig
152   - GetSensorPerformanceControlConfiguration
153   - WWANOutOfServiceNotification
154 */
155 typedef union
156 {
157    const qmiLocInformClientRevisionReqMsgT_v02* pInformClientRevisionReq;
158    /**< Notifies the service about the revision the client is using.
159 
160         The client does not receive any indications corresponding to this
161         request.
162 
163         To send this request, set the reqId field in locClientSendReq() to
164         QMI_LOC_INFORM_CLIENT_REVISION_REQ_V02. */
165 
166    const qmiLocRegEventsReqMsgT_v02* pRegEventsReq;
167    /**< Changes the events the client is interested in receiving.
168 
169         The client does not receive any indications corresponding to this
170         request.
171 
172         To send this request, set the reqId field in locClientSendReq() to
173         QMI_LOC_REG_EVENTS_REQ_V02. */
174 
175    const qmiLocStartReqMsgT_v02* pStartReq;
176    /**< Starts a positioning session.
177 
178         The client receives the following indications: position report,
179         satellite report, fix session report, and NMEA report (if applicable).
180 
181         To send this request, set the reqId field in locClientSendReq() to
182         QMI_LOC_START_REQ_V02. */
183 
184    const qmiLocStopReqMsgT_v02* pStopReq;
185    /**< Stops a positioning session. The client receives a fix session report
186         denoting that the fix session ended after this message was sent.
187 
188         To send this request, set the reqId field in locClientSendReq() to
189         QMI_LOC_STOP_REQ_V02. */
190 
191    const qmiLocNiUserRespReqMsgT_v02* pNiUserRespReq;
192    /**< Informs the service about the user response for a network-initiated call.
193 
194         If the request is accepted by the service, the client receives the
195         following indication containing a response:
196         QMI_LOC_NI_USER_RESPONSE_IND_V02.
197 
198         To send this request, set the reqId field in locClientSendReq() to
199         QMI_LOC_NI_USER_RESPONSE_REQ_V02. */
200 
201    const qmiLocInjectPredictedOrbitsDataReqMsgT_v02* pInjectPredictedOrbitsDataReq;
202    /**< Injects the predicted orbits data into the service.
203 
204         When all predicted orbits data parts have been injected, the client
205         receives the following indication containing a response:
206         QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_IND_V02.
207 
208         The client injects successive data parts without waiting for this
209         indication as long as locClientSendReq() returns successfully.
210 
211         To send this request, set the reqId field in locClientSendReq() to
212         QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02. */
213 
214    const qmiLocInjectUtcTimeReqMsgT_v02* pInjectUtcTimeReq;
215    /**< Injects UTC time into the service.
216 
217         If the request is accepted by the service, the client receives the
218         following indication containing a response:
219         QMI_LOC_INJECT_UTC_TIME_IND_V02.
220 
221         To send this request, set the reqId field in locClientSendReq() to
222         QMI_LOC_INJECT_UTC_TIME_REQ_V02. */
223 
224    const qmiLocInjectPositionReqMsgT_v02* pInjectPositionReq;
225    /**< Injects a position into the service.
226 
227         If the request is accepted by the service, the client receives the
228         following indication containing a response:
229         QMI_LOC_INJECT_POSITION_IND_V02.
230 
231         To send this request, set the reqId field in locClientSendReq() to
232         QMI_LOC_INJECT_POSITION_REQ_V02. */
233 
234    const qmiLocSetEngineLockReqMsgT_v02* pSetEngineLockReq;
235    /**< Sets the location engine lock.
236 
237         If the request is accepted by the service, the client receives the
238         following indication containing a response:
239         QMI_LOC_SET_ENGINE_LOCK_IND_V02.
240 
241         To send this request, set the reqId field in locClientSendReq() to
242         QMI_LOC_SET_ENGINE_LOCK_REQ_V02. */
243 
244    const qmiLocSetSbasConfigReqMsgT_v02* pSetSbasConfigReq;
245    /**< Sets the SBAS configuration.
246 
247         If the request is accepted by the service, the client receives the
248         following indication containing a response:
249         QMI_LOC_SET_SBAS_CONFIG_IND_V02.
250 
251         To send this request, set the reqId field in locClientSendReq() to
252         QMI_LOC_SET_SBAS_CONFIG_REQ_V02 . */
253 
254    const qmiLocSetNmeaTypesReqMsgT_v02* pSetNmeaTypesReq;
255    /**< Sets the NMEA types configuration.
256 
257         If the request is accepted by the service, the client receives the
258         following indication containing a response:
259         QMI_LOC_SET_NMEA_TYPES_IND_V02.
260 
261         To send this request, set the reqId field in locClientSendReq() to
262         QMI_LOC_SET_NMEA_TYPES_REQ_V02. */
263 
264    const qmiLocSetLowPowerModeReqMsgT_v02* pSetLowPowerModeReq;
265    /**< Sets the Low Power mode configuration.
266 
267         If the request is accepted by the service, the client receives the
268         following indication containing a response:
269         QMI_LOC_SET_LOW_POWER_MODE_IND_V02.
270 
271         To send this request, set the reqId field in locClientSendReq() to
272         QMI_LOC_SET_LOW_POWER_MODE_REQ_V02. */
273 
274    const qmiLocSetServerReqMsgT_v02* pSetServerReq;
275    /**< Sets the A-GPS server type and address.
276 
277         If the request is accepted by the service, the client receives the
278         following indication containing a response:
279         QMI_LOC_SET_SERVER_IND_V02.
280 
281         To send this request, set the reqId field in locClientSendReq() to
282         QMI_LOC_SET_SERVER_REQ_V02. */
283 
284    const qmiLocGetServerReqMsgT_v02* pGetServerReq;
285    /**< Gets the A-GPS server type and address.
286 
287         If the request is accepted by the service, the client receives the
288         following indication containing a response:
289         QMI_LOC_GET_SERVER_IND_V02.
290 
291         To send this request, set the reqId field in locClientSendReq() to
292         QMI_LOC_GET_SERVER_REQ_V02. */
293 
294    const qmiLocDeleteAssistDataReqMsgT_v02* pDeleteAssistDataReq;
295    /**< Deletes the aiding data from the engine.
296 
297         If the request is accepted by the service, the client receives the
298         following indication containing a response:
299         QMI_LOC_DELETE_ASSIST_DATA_IND_V02.
300 
301         To send this request, set the reqId field in locClientSendReq() to
302         QMI_LOC_DELETE_ASSIST_DATA_REQ_V02. */
303 
304    const qmiLocInjectApCacheDataReqMsgT_v02 *pInjectApCacheDataReq;
305    /**< Inject APcache data into the engine
306 
307         If the request is accepted by the service, the client receives the
308         following indication containing a response:
309         QMI_LOC_INJECT_APCACHE_DATA_IND_V02.
310 
311         To send this request, set the reqId field in locClientSendReq() to
312         QMI_LOC_INJECT_APCACHE_DATA_REQ_V02. */
313 
314    const qmiLocInjectApDoNotCacheDataReqMsgT_v02 *pInjectApDoNotCacheDataReq;
315    /**< Inject blacklist-Apcache data into the engine
316 
317         If the request is accepted by the service, the client receives the
318         following indication containing a response:
319         QMI_LOC_INJECT_DONOTAPCACHE_DATA_IND_V02.
320 
321         To send this request, set the reqId field in locClientSendReq() to
322         QMI_LOC_INJECT_DONOTAPCACHE_DATA_REQ_V02. */
323 
324 
325    const qmiLocSetXtraTSessionControlReqMsgT_v02* pSetXtraTSessionControlReq;
326    /**< Sets XTRA-T session control in the engine.
327 
328         If the request is accepted by the service, the client receives the
329         following indication containing a response:
330         QMI_LOC_SET_XTRA_T_SESSION_CONTROL_IND_V02.
331 
332         To send this request, set the reqId field in locClientSendReq() to
333         QMI_LOC_SET_XTRA_T_SESSION_CONTROL_REQ_V02. */
334 
335    const qmiLocInjectWifiPositionReqMsgT_v02* pInjectWifiPositionReq;
336    /**< Injects a WiFi position into the engine.
337 
338         If the request is accepted by the service, the client receives the
339         following indication containing a response:
340         QMI_LOC_INJECT_WIFI_POSITION_IND_V02.
341 
342         To send this request, set the reqId field in locClientSendReq() to
343         QMI_LOC_INJECT_WIFI_POSITION_REQ_V02. */
344 
345    const qmiLocNotifyWifiStatusReqMsgT_v02* pNotifyWifiStatusReq;
346    /**< Notifies the engine about the WiFi status.
347 
348         If the request is accepted by the service, the client receives the
349         following indication containing a response:
350         QMI_LOC_NOTIFY_WIFI_STATUS_IND_V02.
351 
352         To send this request, set the reqId field in locClientSendReq() to
353         QMI_LOC_NOTIFY_WIFI_STATUS_REQ_V02. */
354 
355    const qmiLocSetOperationModeReqMsgT_v02* pSetOperationModeReq;
356    /**< Sets the engine Operation mode.
357 
358         If the request is accepted by the service, the client receives the
359         following indication containing a response:
360         QMI_LOC_SET_OPERATION_MODE_IND_V02.
361 
362         To send this request, set the reqId field in locClientSendReq() to
363         QMI_LOC_SET_OPERATION_MODE_REQ_V02. */
364 
365    const qmiLocSetSpiStatusReqMsgT_v02* pSetSpiStatusReq;
366    /**< Sends the stationary position status to the engine.
367 
368         If the request is accepted by the service, the client receives the
369         following indication containing a response:
370         QMI_LOC_SET_SPI_STATUS_IND_V02.
371 
372         To send this request, set the reqId field in locClientSendReq() to
373         QMI_LOC_SET_SPI_STATUS_REQ_V02. */
374 
375    const qmiLocInjectSensorDataReqMsgT_v02* pInjectSensorDataReq;
376    /**< Injects sensor data into the engine.
377 
378         If the request is accepted by the service, the client receives the
379         following indication containing a response:
380         QMI_LOC_INJECT_SENSOR_DATA_IND_V02.
381 
382         To send this request, set the reqId field in locClientSendReq() to
383         QMI_LOC_INJECT_SENSOR_DATA_REQ_V02. */
384 
385    const qmiLocInjectTimeSyncDataReqMsgT_v02* pInjectTimeSyncReq;
386    /**< Injects time synchronization information into the engine.
387 
388         If the request is accepted by the service, the client receives the
389         following indication containing a response:
390         QMI_LOC_INJECT_TIME_SYNC_DATA_IND_V02.
391 
392         To send this request, set the reqId field in locClientSendReq() to
393         QMI_LOC_INJECT_TIME_SYNC_DATA_REQ_V02. */
394 
395    const qmiLocSetCradleMountConfigReqMsgT_v02* pSetCradleMountConfigReq;
396    /**< Sets the cradle mount state information in the engine.
397 
398         If the request is accepted by the service, the client receives the
399         following indication containing a response:
400         SET_CRADLE_MOUNT_CONFIG_REQ_V02.
401 
402         To send this request, set the reqId field in locClientSendReq() to
403         SET_CRADLE_MOUNT_CONFIG_IND_V02. */
404 
405    const qmiLocSetExternalPowerConfigReqMsgT_v02* pSetExternalPowerConfigReq;
406    /**< Sets external power configuration state in the engine.
407 
408         If the request is accepted by the service, the client receives the
409         following indication containing a response:
410         QMI_LOC_SET_EXTERNAL_POWER_CONFIG_IND_V02.
411 
412         To send this request, set the reqId field in locClientSendReq() to
413         QMI_LOC_SET_EXTERNAL_POWER_CONFIG_REQ_V02. */
414 
415    const qmiLocInformLocationServerConnStatusReqMsgT_v02*
416      pInformLocationServerConnStatusReq;
417    /**< Informs the engine about the connection status to the location server.
418 
419         This can be sent in response to a
420         QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND_V02 request. The
421         service sends back a QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_IND_V02
422         response indication for this request.
423 
424         To send this request, set the reqId field in locClientSendReq() to
425         QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02. */
426 
427    const qmiLocSetProtocolConfigParametersReqMsgT_v02*
428      pSetProtocolConfigParametersReq;
429    /**< Sets the protocol configuration parameters in the engine.
430 
431         If the request is accepted by the service, the client receives the
432         following indication containing a response:
433         QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_IND_V02.
434 
435         To send this request, set the reqId field in locClientSendReq() to
436         QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02. */
437 
438    const qmiLocGetProtocolConfigParametersReqMsgT_v02*
439      pGetProtocolConfigParametersReq;
440    /**< Retrieves protocol configuration parameters from the engine.
441 
442         If the request is accepted by the service, the client receives the
443         following indication containing a response:
444         QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_IND_V02.
445 
446         To send this request, set the reqId field in locClientSendReq() to
447         QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02. */
448 
449    const qmiLocSetSensorControlConfigReqMsgT_v02*
450      pSetSensorControlConfigReq;
451    /**< Sets the sensor control configuration parameters in the engine.
452 
453         If the request is accepted by the service, the client receives the
454         following indication containing a response:
455         QMI_LOC_SET_SENSOR_CONTROL_CONFIG_IND_V02.
456 
457         To send this request, set the reqId field in locClientSendReq() to
458         QMI_LOC_SET_SENSOR_CONTROL_CONFIG_REQ_V02. */
459 
460    const qmiLocSetSensorPerformanceControlConfigReqMsgT_v02*
461       pSetSensorPerformanceControlConfigReq;
462    /**< Sets the sensor performance configuration parameters in the engine.
463 
464         If the request is accepted by the service, the client receives the
465         following indication containing a response:
466         QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02.
467 
468         To send this request, set the reqId field in locClientSendReq() to
469         QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02. */
470 
471    const qmiLocGetSensorPropertiesReqMsgT_v02* pGetSensorPropertiesReq;
472    /**< Retrieves the sensor properties from the engine.
473 
474         If the request is accepted by the service, the client receives the
475         following indication containing a response:
476         QMI_LOC_GET_SENSOR_PROPERTIES_IND_V02.
477 
478         To send this request, set the reqId field in locClientSendReq() to
479         QMI_LOC_GET_SENSOR_PROPERTIES_REQ_V02. */
480 
481    const qmiLocSetSensorPropertiesReqMsgT_v02* pSetSensorPropertiesReq;
482    /**< Sets the sensor properties in the engine.
483 
484         If the request is accepted by the service, the client receives the
485         following indication containing a response:
486         QMI_LOC_SET_SENSOR_PROPERTIES_IND_V02.
487 
488         To send this request, set the reqId field in locClientSendReq() to
489         QMI_LOC_SET_SENSOR_PROPERTIES_REQ_V02. */
490 
491    const qmiLocInjectSuplCertificateReqMsgT_v02* pInjectSuplCertificateReq;
492    /**< Injects a SUPL certificate into the engine.
493 
494         If the request is accepted by the service, the client receives the
495         following indication containing a response:
496         QMI_LOC_INJECT_SUPL_CERTIFICATE_IND_V02.
497 
498         To send this request, set the reqId field in locClientSendReq() to
499         QMI_LOC_INJECT_SUPL_CERTIFICATE_REQ_V02. */
500 
501    const qmiLocDeleteSuplCertificateReqMsgT_v02* pDeleteSuplCertificateReq;
502    /**< Deletes a SUPL certificate from the engine.
503 
504         If the request is accepted by the service, the client receives the
505         following indication containing a response:
506         QMI_LOC_DELETE_SUPL_CERTIFICATE_IND_V02.
507 
508         To send this request, set the reqId field in locClientSendReq() to
509         QMI_LOC_DELETE_SUPL_CERTIFICATE_REQ_V02. */
510 
511    const qmiLocSetPositionEngineConfigParametersReqMsgT_v02*
512      pSetPositionEngineConfigParametersReq;
513    /**< Sets position engine configuration.
514 
515         If the request is accepted by the service, the client receives the
516         following indication containing a response:
517         QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_IND _V02.
518 
519         To send this request, set the reqId field in locClientSendReq() to
520         QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02. */
521 
522    const qmiLocGetPositionEngineConfigParametersReqMsgT_v02*
523      pGetPositionEngineConfigParametersReq;
524    /**< Gets position engine configuration.
525 
526          If the request is accepted by the service, the client receives the
527          following indication containing a response:
528          QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02.
529 
530          To send this request, set the reqId field in locClientSendReq() to
531          QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02. */
532 
533    const qmiLocAddCircularGeofenceReqMsgT_v02* pAddCircularGeofenceReq;
534    /**< Adds a circular geofence.
535 
536         If the request is accepted by the service, the client receives the
537         following indication containing a response:
538         QMI_LOC_ADD_CIRCULAR_GEOFENCE_IND_V02.
539 
540         To send this request, set the reqId field in locClientSendReq() to
541         QMI_LOC_ADD_CIRCULAR_GEOFENCE_REQ_V02 */
542 
543    const qmiLocDeleteGeofenceReqMsgT_v02* pDeleteGeofenceReq;
544    /**< Deletes a geofence.
545 
546         If the request is accepted by the service, the client receives the
547         following indication containing a response:
548         QMI_LOC_DELETE_GEOFENCE_IND_V02.
549 
550         To send this request, set the reqId field in locClientSendReq() to
551         QMI_LOC_DELETE_GEOFENCE_REQ_V02 */
552 
553    const qmiLocQueryGeofenceReqMsgT_v02* pQueryGeofenceReq;
554    /**< Queries a geofence.
555 
556         If the request is accepted by the service, the client receives the
557         following indication containing a response:
558         QMI_LOC_QUERY_GEOFENCE_IND_V02
559 
560         To send this request, set the reqId field in locClientSendReq() to
561         QMI_LOC_QUERY_GEOFENCE_REQ_V02. */
562 
563     const qmiLocEditGeofenceReqMsgT_v02* pEditGeofenceReq;
564     /**< Edits geofence parameters.
565 
566         If the request is accepted by the service, the client receives the
567         following indication containing a response:
568         QMI_LOC_EDIT_GEOFENCE_IND_V02
569 
570         To send this request, set the reqId field in locClientSendReq() to
571         QMI_LOC_EDIT_GEOFENCE_REQ_V02. */
572 
573     const qmiLocGetBestAvailablePositionReqMsgT_v02*
574       pGetBestAvailablePositionReq;
575     /**< Get the best available position from location engine
576 
577         If the request is accepted by the service, the client receives the
578         following indication containing a response:
579         QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02
580 
581         To send this request, set the reqId field in locClientSendReq() to
582         QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02. @newpagetable */
583 
584     const qmiLocSecureGetAvailablePositionReqMsgT_v02*
585          pSecureGetBestAvailablePositionReq;
586        /**< Get the best available position from location engine
587 
588            If the request is accepted by the service, the client receives the
589            following indication containing a response:
590            QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02
591 
592            To send this request, set the reqId field in locClientSendReq() to
593            QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02. @newpagetable */
594 
595     const qmiLocInjectMotionDataReqMsgT_v02* pInjectMotionDataReq;
596     /**< Inject motion data in the location engine
597 
598         If the request is accepted by the service, the client receives the
599         following indication containing a response:
600         QMI_LOC_INJECT_MOTION_DATA_IND_V02
601 
602         To send this request, set the reqId field in locClientSendReq() to
603         QMI_LOC_INJECT_MOTION_DATA_REQ_V02 */
604 
605     const qmiLocGetNiGeofenceIdListReqMsgT_v02* pGetNiGeofenceIdListReq;
606     /**< Get the list of Network Initiated Geofences from the location engine.
607 
608         If the request is accepted by the service, the client receives the
609         following indication containing a response:
610         QMI_LOC_GET_NI_GEOFENCE_ID_LIST_IND_V02
611 
612         To send this request, set the reqId field in locClientSendReq() to
613         QMI_LOC_GET_NI_GEOFENCE_ID_LIST_REQ_V02 */
614 
615     const qmiLocInjectGSMCellInfoReqMsgT_v02 *pInjectGSMCellInfoReq;
616     /**< Inject GSM Cell Information into the location engine.
617          If the request is accepted by the service, the client receives the
618          following indication containing a response:
619          QMI_LOC_INJECT_GSM_CELL_INFO_IND_V02
620 
621          To send this request, set the reqId field in locClientSendReq() to
622          QMI_LOC_INJECT_GSM_CELL_INFO_REQ_V02 */
623 
624     const qmiLocInjectNetworkInitiatedMessageReqMsgT_v02
625       *pInjectNetworkInitiatedMessageReq;
626     /**< Inject Network Initiated Message into the location engine.
627          If the request is accepted by the service, the client receives the
628          following indication containing a response:
629          QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_IND_V02
630 
631          To send this request, set the reqId field in locClientSendReq() to
632          QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_REQ_V02 */
633 
634     const void *pWWANOutOfServiceNotificationReq;
635 
636     const qmiLocPedometerReportReqMsgT_v02 *pPedometerReportReq;
637     /**< Send pedometer data to the location engine. If the request is
638          accepted by the service, the client receives the following
639          indication containing a response:
640          QMI_LOC_PEDOMETER_REPORT_IND_V02
641 
642          To send this request, set the reqId field in locClientSendReq() to
643          QMI_LOC_PEDOMETER_REPORT_REQ_V02 */
644 
645     const qmiLocInjectWCDMACellInfoReqMsgT_v02 *pInjectWCDMACellInfoReq;
646     const qmiLocInjectTDSCDMACellInfoReqMsgT_v02 *pInjectTDSCDMACellInfoReq;
647     const qmiLocInjectSubscriberIDReqMsgT_v02 *pInjectSubscriberIDReq;
648     const qmiLocInjectWifiApDataReqMsgT_v02 *pInjectWifiApDataReq;
649     const qmiLocNotifyWifiAttachmentStatusReqMsgT_v02 *pNotifyWifiAttachmentStatusReq;
650     const qmiLocNotifyWifiEnabledStatusReqMsgT_v02 *pNotifyWifiEnabledStatusReq;
651 
652     const qmiLocReadFromBatchReqMsgT_v02 *pReadFromBatchReq;
653     const qmiLocGetBatchSizeReqMsgT_v02 *pGetBatchSizeReq;
654     const qmiLocStartBatchingReqMsgT_v02 *pStartBatchingReq;
655     const qmiLocStopBatchingReqMsgT_v02 *pStopBatchingReq;
656     const qmiLocReleaseBatchReqMsgT_v02 *pReleaseBatchReq;
657 
658     const qmiLocInjectVehicleSensorDataReqMsgT_v02 *pInjectVehicleSensorDataReq;
659 
660     /**< Send vehicle sensor data to the location engine. If the request is
661          accepted by the service, the client receives the following
662          indication containing a response:
663          QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_IND_V02
664 
665          To send this request, set the reqId field in locClientSendReq() to
666          QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_REQ_V02 */
667 
668     const qmiLocSetPremiumServicesCfgReqMsgT_v02 *pSetPremiumServicesCfgReq;
669     /*QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_REQ_V02*/
670 
671     const qmiLocGetAvailWwanPositionReqMsgT_v02 *pGetAvailWwanPositionReq;
672     /*QMI_LOC_GET_AVAILABLE_WWAN_POSITION_REQ_V02*/
673 
674     const qmiLocSetXtraVersionCheckReqMsgT_v02 *pSetXtraVersionCheckReq;
675 
676     const qmiLocGdtUploadBeginStatusReqMsgT_v02* pGdtUploadBeginStatusReq;
677     /* QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_REQ_V02 */
678 
679     const qmiLocGdtUploadEndReqMsgT_v02* pGdtUploadEndReq;
680     /* QMI_LOC_GDT_UPLOAD_END_REQ_V02*/
681 
682     const qmiLocInjectGtpClientDownloadedDataReqMsgT_v02 *pInjectGtpClientDownloadedDataReq;
683     /* QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_REQ_V02 */
684 
685     const qmiLocSetGNSSConstRepConfigReqMsgT_v02 *pSetGNSSConstRepConfigReq;
686     /*QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02*/
687 
688     const qmiLocStartDbtReqMsgT_v02 *pStartDbtReq;
689     /*QMI_LOC_START_DBT_REQ_V02*/
690 
691     const qmiLocStopDbtReqMsgT_v02 *pStopDbtReq;
692     /*QMI_LOC_STOP_DBT_REQ_V02*/
693 
694     const qmiLocInjectTimeZoneInfoReqMsgT_v02 *pInjectTimeZoneInfoReq;
695     /*QMI_LOC_INJECT_TIME_ZONE_INFO*/
696 
697     const qmiLocQueryAonConfigReqMsgT_v02 *pQueryAonConfigReq;
698     /*QMI_LOC_QUERY_AON_CONFIG_REQ_V02*/
699 
700     const qmiLocGtpApStatusReqMsgT_v02* pGtpApStatusReq;
701     /* QMI_LOC_GTP_AP_STATUS_REQ_V02 */
702 
703     const qmiLocGdtDownloadBeginStatusReqMsgT_v02* pGdtDownloadBeginStatusReq;
704     /* QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_REQ_V02 */
705 
706     const qmiLocGdtDownloadReadyStatusReqMsgT_v02* pGdtDownloadReadyStatusReq;
707     /* QMI_LOC_GDT_DOWNLOAD_READY_STATUS_REQ_V02 */
708 
709     const qmiLocGdtReceiveDoneStatusReqMsgT_v02* pGdtReceiveDoneStatusReq;
710     /* QMI_LOC_GDT_RECEIVE_DONE_STATUS_REQ_V02 */
711 
712     const qmiLocGdtDownloadEndStatusReqMsgT_v02* pGdtDownloadEndStatusReq;
713     /* QMI_LOC_GDT_DOWNLOAD_END_STATUS_REQ_V02*/
714 
715     // XTRA Client 2.0
716     const qmiLocInjectXtraDataReqMsgT_v02 *pInjectXtraDataReq;
717     /*QMI_LOC_INJECT_XTRA_DATA_REQ_V02*/
718 
719     const qmiLocInjectXtraPcidReqMsgT_v02 *pInjectXtraPcidReq;
720     /*QMI_LOC_INJECT_XTRA_PCID_REQ_V02*/
721 }locClientReqUnionType;
722 
723 
724 /** Event indications that are sent by the service.
725 */
726 typedef union
727 {
728    const qmiLocEventPositionReportIndMsgT_v02* pPositionReportEvent;
729    /**< Contains the position information.
730 
731         This event is generated after QMI_LOC_START_REQ_V02 is sent. If
732         periodic fix criteria is specified, this event is generated multiple
733         times periodically at the specified rate until QMI_LOC_STOP_REQ_V02 is
734         sent.
735 
736         The eventIndId field in the event indication callback is set to
737         QMI_LOC_EVENT_POSITION_REPORT_IND_V02. */
738 
739    const qmiLocEventGnssSvInfoIndMsgT_v02* pGnssSvInfoReportEvent;
740    /**< Contains the GNSS satellite information.
741 
742         This event is generated after QMI_LOC_START_REQ_V02 is sent. This event
743         is generated at 1 Hz if the location engine is tracking satellites to
744         make a location fix.
745 
746         The eventIndId field in the event indication callback is set to
747         QMI_LOC_EVENT_GNSS_INFO_IND_V02. */
748 
749    const qmiLocEventNmeaIndMsgT_v02* pNmeaReportEvent;
750    /**< Contains an NMEA report sentence.
751 
752         The entire NMEA report consisting of multiple sentences is sent at a
753         1 Hz rate. This event is generated after QMI_LOC_START_REQ_V02 is sent.
754 
755         The eventIndId field in the event indication callback is set to
756         QMI_LOC_EVENT_NMEA_IND_V02. */
757 
758    const qmiLocEventNiNotifyVerifyReqIndMsgT_v02* pNiNotifyVerifyReqEvent;
759    /**< Notifies a location client when the network triggers a positioning
760         request to the mobile.
761 
762         Upon getting this event, the location client displays the
763         network-initiated fix request in a dialog and prompts the user to
764         accept or deny the request. The client responds to this request with
765         the message QMI_LOC_NI_USER_RESPONSE_REQ_V02.
766 
767         The eventIndId field in the event indication callback is set to
768         QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_IND_V02. */
769 
770    const qmiLocEventInjectTimeReqIndMsgT_v02* pInjectTimeReqEvent;
771    /**< Asks the client for time assistance.
772 
773         The client responds to this request with the message
774         QMI_LOC_INJECT_UTC_TIME_REQ_V02.
775 
776         The eventIndId field in the event indication callback is
777         set to QMI_LOC_EVENT_INJECT_TIME_REQ_IND_V02. */
778 
779    const qmiLocEventInjectPredictedOrbitsReqIndMsgT_v02*
780          pInjectPredictedOrbitsReqEvent;
781    /**< Asks the client for predicted orbits data assistance.
782 
783         The client responds to this request with the message
784         QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02.
785 
786         The eventIndId field in the event indication callback is set to
787         QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_IND_V02. */
788 
789    const qmiLocEventInjectPositionReqIndMsgT_v02* pInjectPositionReqEvent;
790    /**< Asks the client for position assistance.
791 
792         The client responds to this request with the message
793         QMI_LOC_INJECT_POSITION_REQ_V02.
794 
795         The eventIndId field in the event indication callback is set to
796         QMI_LOC_EVENT_INJECT_POSITION_REQ_IND_V02. */
797 
798    const qmiLocEventEngineStateIndMsgT_v02* pEngineState;
799    /**< Sent by the engine whenever it turns on or off.
800 
801         The eventIndId field in the event indication callback is set to
802         QMI_LOC_EVENT_ENGINE_STATE_IND_V02. */
803 
804    const qmiLocEventFixSessionStateIndMsgT_v02* pFixSessionState;
805    /**< Sent by the engine when a location session begins or ends.
806 
807         The eventIndId field in the event indication callback is set to
808         QMI_LOC_EVENT_FIX_SESSION_STATE_IND_V02. */
809 
810    const qmiLocEventWifiReqIndMsgT_v02* pWifiReqEvent;
811    /**< Sent by the engine when it needs WiFi support.
812 
813         The eventIndId field in the event indication callback is set to
814         QMI_LOC_EVENT_WIFI_REQ_IND_V02. */
815 
816    const qmiLocEventSensorStreamingReadyStatusIndMsgT_v02*
817           pSensorStreamingReadyStatusEvent;
818    /**< Notifies the client that the engine is ready to accept sensor data.
819 
820         The eventIndId field in the event indication callback is set to
821         QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_IND_V02. */
822 
823    const qmiLocEventTimeSyncReqIndMsgT_v02* pTimeSyncReqEvent;
824    /**< Sent by the engine when it needs to synchronize its time with the sensor
825         processor time.
826 
827         The eventIndId field in the event indication callback is set to
828         QMI_LOC_EVENT_TIME_SYNC_REQ_IND_V02. */
829 
830    const qmiLocEventSetSpiStreamingReportIndMsgT_v02*
831      pSetSpiStreamingReportEvent;
832    /**< Asks the client to start/stop sending a Stationary Position Indicator
833         (SPI) stream.
834 
835         The eventIndId field in the event indication callback is set to
836         QMI_LOC_SET_SPI_STREAMING_REPORT_IND_V02. */
837 
838    const qmiLocEventLocationServerConnectionReqIndMsgT_v02*
839       pLocationServerConnReqEvent;
840    /**< Sent by the engine to ask the client to open or close a connection to
841         a location server.
842 
843         The client responds to this request by sending the
844         QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02 message.
845 
846         The eventIndId field in the event indication callback is set to
847         QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND_V02. */
848 
849    const qmiLocEventNiGeofenceNotificationIndMsgT_v02*
850      pNiGeofenceNotificationEvent;
851    /**< Sent by the engine to notify the client about changes to a
852         network-initiated geofence.
853 
854         The eventIndId field in the event indication callback is set to
855         QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_IND_V02. */
856 
857    const qmiLocEventGeofenceGenAlertIndMsgT_v02* pGeofenceGenAlertEvent;
858    /**< Sent by the engine to notify the client about updates that may
859         affect a geofence operation.
860 
861         The eventIndId field in the event indication callback is set to
862         QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_IND_V02. */
863 
864    const qmiLocEventGeofenceBreachIndMsgT_v02* pGeofenceBreachEvent;
865    /**< Sent by the engine to notify the client about a geofence breach
866         event.
867 
868         The eventIndId field in the event indication callback is set to
869         QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_IND_V02. @newpagetable */
870 
871    const qmiLocEventGeofenceBatchedBreachIndMsgT_v02* pGeofenceBatchedBreachEvent;
872    /**< Sent by the engine to notify the client about a geofence breach
873         event.
874 
875         The eventIndId field in the event indication callback is set to
876         QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_IND_V02. @newpagetable */
877 
878    const qmiLocEventPedometerControlIndMsgT_v02* pPedometerControlEvent;
879    /**< Sent by the engine to recommend how pedometer data is sent to the
880         location engine.
881         The eventIndId field in the event indication callback is set to
882         QMI_LOC_EVENT_PEDOMETER_CONTROL_IND_V02. @newpagetable */
883 
884    const qmiLocEventMotionDataControlIndMsgT_v02* pMotionDataControlEvent;
885    /**< Sent by the engine to recommend how motion data is sent to the
886         location engine.
887         The eventIndId field in the event indication callback is set to
888         QMI_LOC_EVENT_MOTION_DATA_CONTROL_IND_V02. @newpagetable */
889 
890    const qmiLocEventInjectWifiApDataReqIndMsgT_v02* pWifiApDataReqEvent;
891    const qmiLocEventLiveBatchedPositionReportIndMsgT_v02* pBatchPositionReportEvent;
892    /**< Sent by the engine to notify the client that live batch location
893         is ready, and the location info.
894 
895         The eventIndId field in the event indication callback is set to
896         QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_IND_V02. */
897 
898    const qmiLocEventBatchFullIndMsgT_v02* pBatchCount;
899    /**< Sent by the engine to notify the client that batch location is
900         full, and how many location are available to read.
901 
902         The eventIndId field in the event indication callback is set to
903         QMI_LOC_EVENT_BATCH_FULL_IND_V02. */
904 
905    const qmiLocEventVehicleDataReadyIndMsgT_v02* pVehicleDataReadyEvent;
906    /**< Sent by the engine to recommend how vehicle sensor data is
907         sent to the location engine.
908         The eventIndId field in the event indication callback is set to
909         QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_IND_V02. @newpagetable */
910 
911    const qmiLocEventGeofenceProximityIndMsgT_v02* pGeofenceProximityEvent;
912    /**< Sent by the engine to notify the client about a geofence proximity
913         event.
914 
915         The eventIndId field in the event indication callback is set to
916         QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_IND_V02. @newpagetable */
917 
918    const qmiLocEventGdtUploadBeginStatusReqIndMsgT_v02* pGdtUploadBeginEvent;
919    /**< Sent by the engine to notify the client about a GDT upload
920         begine event.
921 
922        The eventIndId field in the event indication callback is set to
923        QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_IND_V02. @newpagetable */
924 
925    const qmiLocEventGdtUploadEndReqIndMsgT_v02* pGdtUploadEndEvent;
926    /**< Sent by the engine to notify the client about a GDT upload
927         end event.
928 
929        The eventIndId field in the event indication callback is set to
930        QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_IND_V02. @newpagetable */
931 
932    const qmiLocEventGnssSvMeasInfoIndMsgT_v02* pGnssSvRawInfoEvent;
933    /**< Sent by the engine to report GNSS measurement.
934         The eventIndId field in the event indication callback is set to
935         QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02. @newpagetable */
936 
937    const qmiLocEventDbtPositionReportIndMsgT_v02 *pDbtPositionReportEvent;
938    /**< Sent by the engine to notify the client of a distance based
939         tracking position report.
940         QMI_LOC_EVENT_DBT_POSITION_REPORT_IND_V02*/
941 
942    const qmiLocEventDbtSessionStatusIndMsgT_v02 *pDbtSessionStatusEvent;
943    /**< Sent by the engine to notify the client of the status of the
944       DBT session.
945       QMI_LOC_EVENT_DBT_SESSION_STATUS_IND_V02*/
946 
947    const qmiLocEventGeofenceBatchedDwellIndMsgT_v02 *pGeofenceBatchedDwellEvent;
948    /**< Sent by the engine to notify the client of the dwell time inside
949       or outside of a Geofence for a specified time.
950       QMI_LOC_EVENT_GEOFENCE_BATCHED_DWELL_NOTIFICATION_IND_V02*/
951 
952    const qmiLocEventGetTimeZoneReqIndMsgT_v02 *pGetTimeZoneReqEvent;
953    /**< Sent by the engine to request injection of time zone info
954       QMI_LOC_EVENT_GET_TIME_ZONE_INFO_IND_V02>*/
955 
956    const qmiLocEventBatchingStatusIndMsgT_v02* pBatchingStatusEvent;
957    /**< Sent by the engine to notify the control point of the batching status.
958         The eventIndId field in the event indication callback is set to
959         QMI_LOC_EVENT_BATCHING_STATUS_IND_V02. */
960 
961    const qmiLocEventGdtDownloadBeginReqIndMsgT_v02 *pGdtDownloadBeginReqEvent;
962    /**< Sent by the engine to notify the client about a GDT download
963         begin event.
964         QMI_LOC_EVENT_GDT_DOWNLOAD_BEGIN_REQ_IND_V02. */
965 
966    const qmiLocEventGdtReceiveDoneIndMsgT_v02 *pGdtReceiveDoneEvent;
967    /**< Sent by the engine to notify the client about a GDT download
968         receive done event.
969         QMI_LOC_EVENT_GDT_RECEIVE_DONE_IND_V02. */
970 
971    const qmiLocEventGdtDownloadEndReqIndMsgT_v02 *pGdtDownloadEndReqEvent;
972    /**< Sent by the engine to notify the client about a GDT download
973         end event.
974         QMI_LOC_EVENT_GDT_DOWNLOAD_END_REQ_IND_V02. */
975 
976 }locClientEventIndUnionType;
977 
978 
979 /** Response indications that are sent by the service.
980 */
981 typedef union
982 {
983    const qmiLocGetServiceRevisionIndMsgT_v02* pGetServiceRevisionInd;
984    /**< Response to the QMI_LOC_GET_SERVICE_REVISION_REQ_V02 request.
985 
986         The respIndId field in the response indication callback is set to
987         QMI_LOC_GET_SERVICE_REVISION_IND_V02. */
988 
989    const qmiLocGetFixCriteriaIndMsgT_v02* pGetFixCriteriaInd;
990    /**< Response to the QMI_LOC_GET_FIX_CRITERIA_REQ_V02 request.
991 
992         The respIndId field in the response indication callback is set to
993         QMI_LOC_GET_FIX_CRITERIA_IND_V02. */
994 
995    const qmiLocNiUserRespIndMsgT_v02* pNiUserRespInd;
996    /**< Response to the QMI_LOC_NI_USER_RESPONSE_REQ_V02 request.
997 
998         The respIndId field in the response indication callback is set to
999         QMI_LOC_NI_USER_RESPONSE_IND_V02. */
1000 
1001    const qmiLocInjectPredictedOrbitsDataIndMsgT_v02*
1002      pInjectPredictedOrbitsDataInd;
1003    /**< Sent after a predicted orbits data part has been successfully injected.
1004 
1005         The client waits for this indication before injecting the next part.
1006         This indication is sent in response to
1007         QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02.
1008 
1009         The respIndId field in the response indication callback is set to
1010         QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_IND_V02. */
1011 
1012    const qmiLocGetPredictedOrbitsDataSourceIndMsgT_v02*
1013       pGetPredictedOrbitsDataSourceInd;
1014    /**< Response to the QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_REQ_V02
1015         request.
1016 
1017         The respIndId field in the response indication callback is set to
1018         QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_IND_V02. */
1019 
1020    const qmiLocGetPredictedOrbitsDataValidityIndMsgT_v02*
1021      pGetPredictedOrbitsDataValidityInd;
1022    /**< Response to the QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_REQ_V02
1023         request.
1024 
1025         The respIndId field in the response indication callback is set to
1026         QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_IND_V02. */
1027 
1028    const qmiLocInjectUtcTimeIndMsgT_v02* pInjectUtcTimeInd;
1029    /**< Response to the QMI_LOC_INJECT_UTC_TIME_REQ_V02 request.
1030 
1031         The respIndId field in the response indication callback is set to
1032         QMI_LOC_INJECT_UTC_TIME_IND_V02. */
1033 
1034    const qmiLocInjectPositionIndMsgT_v02* pInjectPositionInd;
1035    /**< Response to the QMI_LOC_INJECT_POSITION_REQ_V02 request.
1036 
1037         The respIndId field in the response indication callback is set to
1038         QMI_LOC_INJECT_POSITION_IND_V02. */
1039 
1040    const qmiLocSetEngineLockIndMsgT_v02* pSetEngineLockInd;
1041    /**< Response to the QMI_LOC_SET_ENGINE_LOCK_REQ_V02 request.
1042 
1043         The respIndId field in the response indication callback is set to
1044         QMI_LOC_SET_ENGINE_LOCK_IND_V02. */
1045 
1046    const qmiLocGetEngineLockIndMsgT_v02* pGetEngineLockInd;
1047    /**< Response to the QMI_LOC_GET_ENGINE_LOCK_REQ_V02 request.
1048 
1049         The respIndId field in the response indication callback is set to
1050         QMI_LOC_GET_ENGINE_LOCK_IND_V02. */
1051 
1052    const qmiLocSetSbasConfigIndMsgT_v02* pSetSbasConfigInd;
1053    /**< Response to the QMI_LOC_SET_SBAS_CONFIG_REQ_V02 request.
1054 
1055         The respIndId field in the response indication callback is set to
1056         QMI_LOC_SET_SBAS_CONFIG_IND_V02. */
1057 
1058    const qmiLocGetSbasConfigIndMsgT_v02* pGetSbasConfigInd;
1059    /**< Response to the QMI_LOC_GET_SBAS_CONFIG_REQ_V02 request.
1060 
1061         The respIndId field in the response indication callback is set to
1062         QMI_LOC_GET_SBAS_CONFIG_IND_V02. */
1063 
1064    const qmiLocSetNmeaTypesIndMsgT_v02* pSetNmeaTypesInd;
1065    /**< Response to the QMI_LOC_SET_NMEA_TYPES_REQ_V02 request.
1066 
1067         The respIndId field in the response indication callback is set to
1068         QMI_LOC_SET_NMEA_TYPES_IND_V02. */
1069 
1070    const qmiLocGetNmeaTypesIndMsgT_v02* pGetNmeaTypesInd;
1071    /**< Response to the QMI_LOC_GET_NMEA_TYPES_REQ_V02 request.
1072 
1073         The respIndId field in the response indication callback is set to
1074         QMI_LOC_GET_NMEA_TYPES_IND_V02. */
1075 
1076    const qmiLocSetLowPowerModeIndMsgT_v02* pSetLowPowerModeInd;
1077    /**< Response to the QMI_LOC_SET_LOW_POWER_MODE_REQ_V02 request.
1078 
1079         The respIndId field in the response indication callback is set to
1080         QMI_LOC_SET_LOW_POWER_MODE_IND_V02. */
1081 
1082    const qmiLocGetLowPowerModeIndMsgT_v02* pGetLowPowerModeInd;
1083    /**< Response to the QMI_LOC_GET_LOW_POWER_MODE_REQ_V02 request.
1084 
1085         The respIndId field in the response indication callback is set to
1086         QMI_LOC_GET_LOW_POWER_MODE_IND_V02. */
1087 
1088    const qmiLocSetServerIndMsgT_v02* pSetServerInd;
1089    /**< Response to the QMI_LOC_SET_SERVER_REQ_V02 request.
1090 
1091         The respIndId field in the response indication callback is set to
1092         QMI_LOC_SET_SERVER_IND_V02. */
1093 
1094    const qmiLocGetServerIndMsgT_v02* pGetServerInd;
1095    /**< Response to the QMI_LOC_GET_SERVER_REQ_V02 request.
1096 
1097         The respIndId field in the response indication callback is set to
1098         QMI_LOC_GET_SERVER_IND_V02. */
1099 
1100    const qmiLocDeleteAssistDataIndMsgT_v02* pDeleteAssistDataInd;
1101    /**< Response to the QMI_LOC_DELETE_ASSIST_DATA_REQ_V02 request.
1102 
1103         The respIndId field in the response indication callback is set to
1104         QMI_LOC_DELETE_ASSIST_DATA_IND_V02. */
1105 
1106    const qmiLocInjectApCacheDataIndMsgT_v02 *pInjectApCacheDataInd;
1107    /**< Response to the QMI_LOC_INJECT_APCACHE_DATA_REQ_V02 request.
1108 
1109         The respIndId field in the response indication callback is set to
1110         QMI_LOC_INJECT_APCACHE_DATA_IND_V02. */
1111 
1112    const qmiLocInjectApDoNotCacheDataIndMsgT_v02 *pInjectApDoNotCacheDataInd;
1113    /**< Response to the QMI_LOC_INJECT_DONOTAPCACHE_DATA_REQ_V02 request.
1114 
1115         The respIndId field in the response indication callback is set to
1116         QMI_LOC_INJECT_DONOTAPCACHE_DATA_IND_V02. */
1117 
1118    const qmiLocSetXtraTSessionControlIndMsgT_v02* pSetXtraTSessionControlInd;
1119    /**< Response to the QMI_LOC_SET_XTRA_T_SESSION_CONTROL_REQ_V02 request.
1120 
1121         The respIndId field in the response indication callback is set to
1122         QMI_LOC_SET_XTRA_T_SESSION_CONTROL_IND_V02. */
1123 
1124    const qmiLocGetXtraTSessionControlIndMsgT_v02* pGetXtraTSessionControlInd;
1125    /**< Response to the QMI_LOC_GET_XTRA_T_SESSION_CONTROL_REQ_V02 request.
1126 
1127         The respIndId field in the response indication callback is set to
1128         QMI_LOC_GET_XTRA_T_SESSION_CONTROL_IND_V02. */
1129 
1130    const qmiLocInjectWifiPositionIndMsgT_v02* pInjectWifiPositionInd;
1131    /**< Response to the QMI_LOC_INJECT_WIFI_POSITION_REQ_V02 request.
1132 
1133         The respIndId field in the response indication callback is set to
1134         QMI_LOC_INJECT_WIFI_POSITION_IND_V02. */
1135 
1136    const qmiLocNotifyWifiStatusIndMsgT_v02* pNotifyWifiStatusInd;
1137    /**< Response to the QMI_LOC_NOTIFY_WIFI_STATUS_REQ_V02 request.
1138 
1139         The respIndId field in the response indication callback is set to
1140         QMI_LOC_NOTIFY_WIFI_STATUS_IND_V02. */
1141 
1142    const qmiLocGetRegisteredEventsIndMsgT_v02* pGetRegisteredEventsInd;
1143    /**< Response to the QMI_LOC_GET_REGISTERED_EVENTS_REQ_V02 request.
1144 
1145         The respIndId field in the response indication callback is set to
1146         QMI_LOC_GET_REGISTERED_EVENTS_IND_V02. */
1147 
1148    const qmiLocSetOperationModeIndMsgT_v02* pSetOperationModeInd;
1149    /**< Response to the QMI_LOC_SET_OPERATION_MODE_REQ_V02 request.
1150 
1151         The respIndId field in the response indication callback is set to
1152         QMI_LOC_SET_OPERATION_MODE_IND_V02. */
1153 
1154    const qmiLocGetOperationModeIndMsgT_v02* pGetOperationModeInd;
1155    /**< Response to the QMI_LOC_GET_OPERATION_MODE_REQ_V02 request.
1156 
1157         The respIndId field in the response indication callback is set to
1158         QMI_LOC_GET_OPERATION_MODE_IND_V02. */
1159 
1160    const qmiLocSetSpiStatusIndMsgT_v02* pSetSpiStatusInd;
1161    /**< Response to the QMI_LOC_SET_SPI_STATUS_REQ_V02 request.
1162 
1163         The respIndId field in the response indication callback is set to
1164         QMI_LOC_SET_SPI_STATUS_IND_V02. */
1165 
1166    const qmiLocInjectSensorDataIndMsgT_v02* pInjectSensorDataInd;
1167    /**< Response to the QMI_LOC_INJECT_SENSOR_DATA_REQ_V02 request.
1168 
1169         The respIndId field in the response indication callback is set to
1170         QMI_LOC_INJECT_SENSOR_DATA_IND_V02. */
1171 
1172    const qmiLocInjectTimeSyncDataIndMsgT_v02* pInjectTimeSyncDataInd;
1173    /**< Response to the QMI_LOC_INJECT_TIME_SYNC_DATA_REQ_V02 request.
1174 
1175         The respIndId field in the response indication callback is set to
1176         QMI_LOC_INJECT_TIME_SYNC_DATA_IND_V02. */
1177 
1178    const qmiLocSetCradleMountConfigIndMsgT_v02* pSetCradleMountConfigInd;
1179    /**< Response to the QMI_LOC_SET_CRADLE_MOUNT_CONFIG_IND_V02 request.
1180 
1181         The respIndId field in the response indication callback is set to
1182         QMI_LOC_SET_CRADLE_MOUNT_CONFIG_REQ_V02. */
1183 
1184    const qmiLocGetCradleMountConfigIndMsgT_v02* pGetCradleMountConfigInd;
1185    /**< Response to the QMI_LOC_GET_CRADLE_MOUNT_CONFIG_REQ_V02 request.
1186 
1187         The respIndId field in the response indication callback is set to
1188         QMI_LOC_GET_CRADLE_MOUNT_CONFIG_IND_V02. */
1189 
1190    const qmiLocSetExternalPowerConfigIndMsgT_v02* pSetExternalPowerConfigInd;
1191    /**< Response to the QMI_LOC_SET_EXTERNAL_POWER_CONFIG_REQ_V02 request.
1192 
1193         The respIndId field in the response indication callback is set to
1194         QMI_LOC_SET_EXTERNAL_POWER_CONFIG_IND_V02. */
1195 
1196    const qmiLocGetExternalPowerConfigIndMsgT_v02* pGetExternalPowerConfigInd;
1197    /**< Response to the QMI_LOC_GET_EXTERNAL_POWER_CONFIG_REQ_V02 request.
1198 
1199         The respIndId field in the response indication callback is set to
1200         QMI_LOC_GET_EXTERNAL_POWER_CONFIG_IND_V02. */
1201 
1202    const qmiLocInformLocationServerConnStatusIndMsgT_v02*
1203      pInformLocationServerConnStatusInd;
1204    /**< Response to the QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02
1205         request.
1206 
1207         The respIndId field in the response indication callback is set to
1208         QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_IND_V02.*/
1209 
1210    const qmiLocSetProtocolConfigParametersIndMsgT_v02*
1211      pSetProtocolConfigParametersInd;
1212    /**< Response to the QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 request.
1213 
1214         The respIndId field in the response indication callback is set to
1215         QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_IND_V02. */
1216 
1217    const qmiLocGetProtocolConfigParametersIndMsgT_v02*
1218      pGetProtocolConfigParametersInd;
1219    /**< Response to the QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 request.
1220 
1221         The respIndId field in the response indication callback is set to
1222         QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_IND_V02. */
1223 
1224    const qmiLocSetSensorControlConfigIndMsgT_v02* pSetSensorControlConfigInd;
1225    /**< Response to the QMI_LOC_SET_SENSOR_CONTROL_CONFIG_REQ_V02 request.
1226 
1227         The respIndId field in the response indication callback is set to
1228         QMI_LOC_SET_SENSOR_CONTROL_CONFIG_IND_V02.
1229          */
1230 
1231    const qmiLocGetSensorControlConfigIndMsgT_v02* pGetSensorControlConfigInd;
1232    /**< Response to the QMI_LOC_GET_SENSOR_CONTROL_CONFIG_REQ_V02 request.
1233 
1234         The respIndId field in the response indication callback is set to
1235         QMI_LOC_GET_SENSOR_CONTROL_CONFIG_IND_V02.
1236          */
1237 
1238    const qmiLocSetSensorPropertiesIndMsgT_v02* pSetSensorPropertiesInd;
1239    /**< Response to the QMI_LOC_SET_SENSOR_PROPERTIES_REQ_V02 request.
1240 
1241         The respIndId field in the response indication callback is set to
1242         QMI_LOC_SET_SENSOR_PROPERTIES_IND_V02.
1243          */
1244 
1245    const qmiLocGetSensorPropertiesIndMsgT_v02* pGetSensorPropertiesInd;
1246    /**< Response to the QMI_LOC_GET_SENSOR_PROPERTIES_REQ_V02 request.
1247 
1248         The respIndId field in the response indication callback is set to
1249         QMI_LOC_GET_SENSOR_PROPERTIES_IND_V02.
1250          */
1251 
1252    const qmiLocSetSensorPerformanceControlConfigIndMsgT_v02*
1253      pSetSensorPerformanceControlConfigInd;
1254    /**< Response to the
1255         QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 request.
1256 
1257         The respIndId field in the response indication callback is set to
1258         QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02. */
1259 
1260    const qmiLocGetSensorPerformanceControlConfigIndMsgT_v02*
1261      pGetSensorPerformanceControlConfigInd;
1262    /**< Response to the
1263         QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 request.
1264 
1265         The respIndId field in the response indication callback is set to
1266         QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02. */
1267 
1268    const qmiLocInjectSuplCertificateIndMsgT_v02* pInjectSuplCertificateInd;
1269    /**< Response to the QMI_LOC_INJECT_SUPL_CERTIFICATE_REQ_V02 request.
1270 
1271         The respIndId field in the response indication callback is set to
1272         QMI_LOC_INJECT_SUPL_CERTIFICATE_IND_V02. */
1273 
1274    const qmiLocDeleteSuplCertificateIndMsgT_v02* pDeleteSuplCertificateInd;
1275    /**< Response to the QMI_LOC_DELETE_SUPL_CERTIFICATE_REQ_V02 request.
1276 
1277         The respIndId field in the response indication callback is set to
1278         QMI_LOC_DELETE_SUPL_CERTIFICATE_IND_V02. */
1279 
1280    const qmiLocSetPositionEngineConfigParametersIndMsgT_v02*
1281      pSetPositionEngineConfigParametersInd;
1282    /**< Response to the QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02
1283         request.
1284 
1285         The respIndId field in the response indication callback is set to
1286         QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02. */
1287 
1288    const qmiLocGetPositionEngineConfigParametersIndMsgT_v02*
1289      pGetPositionEngineConfigParametersInd;
1290     /**< Response to the QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02
1291          request.
1292 
1293          The respIndId field in the response indication callback is set to
1294          QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02. */
1295 
1296    const qmiLocAddCircularGeofenceIndMsgT_v02* pAddCircularGeofenceInd;
1297    /**< Response to the QMI_LOC_ADD_CIRCULAR_GEOFENCE_REQ_V02 request.
1298 
1299         The respIndId field in the response indication callback is set to
1300         QMI_LOC_ADD_CIRCULAR_GEOFENCE_IND_V02. */
1301 
1302    const qmiLocDeleteGeofenceIndMsgT_v02* pDeleteGeofenceInd;
1303    /**< Response to the QMI_LOC_DELETE_GEOFENCE_REQ_V02 request.
1304 
1305         The respIndId field in the response indication callback is set to
1306         QMI_LOC_DELETE_GEOFENCE_IND_V02. */
1307 
1308    const qmiLocQueryGeofenceIndMsgT_v02* pQueryGeofenceInd;
1309     /**< Response to the QMI_LOC_QUERY_GEOFENCE_REQ_V02 request.
1310 
1311          The respIndId field in the response indication callback is set to
1312          QMI_LOC_QUERY_GEOFENCE_IND_V02. */
1313 
1314    const qmiLocEditGeofenceIndMsgT_v02* pEditGeofenceInd;
1315    /**< Response to the QMI_LOC_EDIT_GEOFENCE_REQ_V02 request.
1316 
1317         The respIndId field in the response indication callback is set to
1318         QMI_LOC_EDIT_GEOFENCE_IND_V02. */
1319 
1320    const qmiLocGetBestAvailablePositionIndMsgT_v02*
1321       pGetBestAvailablePositionInd;
1322    /**< Response to the QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02 request.
1323 
1324         The respIndId field in the response indication callback is set to
1325         QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02. */
1326 
1327    const qmiLocSecureGetAvailablePositionIndMsgT_v02*
1328       pSecureGetBestAvailablePositionInd;
1329    /**< Response to the QMI_LOC_SECURE_GET_AVAILABLE_POSITION_REQ_V02 request.
1330 
1331         The respIndId field in the response indication callback is set to
1332         QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_V02. */
1333 
1334    const qmiLocInjectMotionDataIndMsgT_v02* pInjectMotionDataInd;
1335    /**< Response to the QMI_LOC_INJECT_MOTION_DATA_REQ_V02 request.
1336 
1337         The respIndId field in the response indication callback is set to
1338         QMI_LOC_INJECT_MOTION_DATA_IND_V02. */
1339 
1340    const qmiLocGetNiGeofenceIdListIndMsgT_v02* pGetNiGeofenceIdListInd;
1341    /**< Response to the QMI_LOC_GET_NI_GEOFENCE_ID_LIST_REQ_V02 request.
1342 
1343         The respIndId field in the response indication callback is set to
1344         QMI_LOC_GET_NI_GEOFENCE_ID_LIST_IND_V02. */
1345 
1346    const qmiLocInjectGSMCellInfoIndMsgT_v02* pInjectGSMCellInfoInd;
1347     /**< Response to the QMI_LOC_INJECT_GSM_CELL_INFO_REQ_V02 request.
1348 
1349         The respIndId field in the response indication callback is set to
1350         QMI_LOC_INJECT_GSM_CELL_INFO_IND_V02. */
1351 
1352    const qmiLocInjectNetworkInitiatedMessageIndMsgT_v02*
1353      pInjectNetworkInitiatedMessageInd;
1354 
1355    /**< Response to the QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_REQ_V02
1356         request.
1357 
1358         The respIndId field in the response indication callback is set to
1359         QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_IND_V02. */
1360 
1361    const qmiLocWWANOutOfServiceNotificationIndMsgT_v02*
1362      pWWANOutOfServiceNotificationInd;
1363 
1364    /**< Response to the QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_REQ_V02
1365         request.
1366         The respIndId field in the response indication callback is set to
1367         QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_IND_V02. */
1368 
1369    const qmiLocPedometerReportIndMsgT_v02* pPedometerReportInd;
1370 
1371    /**< Response to the QMI_LOC_PEDOMETER_REPORT_REQ_V02 request.
1372         The respIndId field in the response indication callback is set to
1373         QMI_LOC_PEDOMETER_REPORT_IND_V02. */
1374 
1375     const qmiLocInjectWCDMACellInfoIndMsgT_v02 *pInjectWCDMACellInfoInd;
1376     const qmiLocInjectTDSCDMACellInfoIndMsgT_v02 *pInjectTDSCDMACellInfoInd;
1377     const qmiLocInjectSubscriberIDIndMsgT_v02 *pInjectSubscriberIDInd;
1378     const qmiLocInjectWifiApDataIndMsgT_v02 *pInjectWifiApDataInd;
1379     const qmiLocNotifyWifiAttachmentStatusIndMsgT_v02 *pNotifyWifiAttachmentStatusInd;
1380     const qmiLocNotifyWifiEnabledStatusIndMsgT_v02 *pNotifyWifiEnabledStatusInd;
1381 
1382     const qmiLocInjectVehicleSensorDataIndMsgT_v02 *pInjectVehicleSensorDataInd;
1383 
1384     /**< Response to the QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_REQ_V02 request.
1385         The respIndId field in the response indication callback is set to
1386         QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_IND_V02. */
1387 
1388     const qmiLocGetAvailWwanPositionIndMsgT_v02 *pGetAvailWwanPositionInd;
1389     /*QMI_LOC_GET_AVAILABLE_WWAN_POSITION_IND_V02*/
1390 
1391     const qmiLocSetXtraVersionCheckIndMsgT_v02 *pSetXtraVersionCheckInd;
1392     /*QMI_LOC_SET_XTRA_VERSION_CHECK_IND_V02*/
1393 
1394     const qmiLocSetGNSSConstRepConfigIndMsgT_v02 *pSetGNSSConstRepConfigInd;
1395     /*QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_IND_V02*/
1396 
1397     const qmiLocStartDbtIndMsgT_v02 *pStartDbtInd;
1398     /*QMI_LOC_START_DBT_IND_V02*/
1399 
1400     const qmiLocStopDbtIndMsgT_v02 *pStopDbtInd;
1401     /*QMI_LOC_STOP_DBT_IND_V02*/
1402 
1403     const qmiLocInjectTimeZoneInfoIndMsgT_v02 *pInjectTimeZoneInfoInd;
1404     /*QMI_LOC_INJECT_TIME_ZONE_INFO_IND_V02*/
1405 
1406     const qmiLocQueryAonConfigIndMsgT_v02 *pQueryAonConfigInd;
1407     /*QMI_LOC_QUERY_AON_CONFIG_IND_V02*/
1408 
1409     const qmiLocGtpApStatusIndMsgT_v02 *pGtpApStatusInd;
1410     /*QMI_LOC_GTP_AP_STATUS_IND_V02*/
1411 
1412     const qmiLocGdtDownloadBeginStatusIndMsgT_v02 *pGdtDownloadBeginStatusInd;
1413     /*QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_IND_V02*/
1414 
1415     const qmiLocGdtDownloadReadyStatusIndMsgT_v02 *pGdtDownloadReadyStatusInd;
1416     /*QMI_LOC_GDT_DOWNLOAD_READY_STATUS_IND_V02*/
1417 
1418     const qmiLocGdtReceiveDoneStatusIndMsgT_v02 *pGdtReceiveDoneStatusInd;
1419     /*QMI_LOC_GDT_RECEIVE_DONE_STATUS_IND_V02*/
1420 
1421     const qmiLocGdtDownloadEndStatusIndMsgT_v02 *pGdtDownloadEndStatusInd;
1422     /*QMI_LOC_GDT_DOWNLOAD_END_STATUS_IND_V02*/
1423 }locClientRespIndUnionType;
1424 
1425 /** @} */ /* end_addtogroup data_types */
1426 
1427 /** @addtogroup callback_functions
1428 @{ */
1429 /**
1430   Location event indication callback function type. The Location service can
1431   generate two types of indications:
1432 
1433   - Asynchronous events indications, such as time injection request and satellite
1434     reports. The client specifies the asynchronous events it is interested in
1435     receiving through the event mask (see locClientOpen()).
1436   - Response indications that are generated as a response to a request. For
1437     example, the QMI_LOC_GET_FIX_CRITERIA_REQ_V02 request generates the
1438     indication, QMI_LOC_GET_FIX_CRITERIA_IND_V02.
1439 
1440   This callback handles the asynchronous event indications.
1441 
1442   @datatypes
1443   #locClientHandleType \n
1444   #locClientEventIndUnionType
1445 
1446   @param handle            Location client for this event. Only the client who
1447                            registered for the corresponding event receives
1448                            this callback.
1449   @param eventIndId        ID of the event indication.
1450   @param eventIndPayload   Event indication payload.
1451   @param pClientCookie     Pointer to the cookie the client specified during
1452                            registration.
1453 
1454   @return
1455   None.
1456 
1457   @dependencies
1458   None. @newpage
1459 */
1460 typedef void (*locClientEventIndCbType)(
1461       locClientHandleType handle,
1462       uint32_t eventIndId,
1463       const locClientEventIndUnionType eventIndPayload,
1464       void *pClientCookie
1465 );
1466 
1467 /**
1468   Location response indication callback function type. The Location service can
1469   generate two types of indications:
1470 
1471   - Asynchronous events indications, such as time injection request and satellite
1472     reports. The client specifies the asynchronous events it is interested in
1473     receiving through the event mask (see locClientOpen()).
1474   - Response indications that are generated as a response to a request. For
1475     example, the QMI_LOC_GET_FIX_CRITERIA_REQ_V02 request generates the
1476     indication, QMI_LOC_GET_FIX_CRITERIA_IND_V02.
1477 
1478   This callback handles the response indications.
1479 
1480   @datatypes
1481   #locClientHandleType \n
1482   #locClientRespIndUnionType
1483 
1484   @param handle           Location client who sent the request for which this
1485                           response indication is generated.
1486   @param respIndId        ID of the response. It is the same value as the ID
1487                           of request sent to the engine.
1488   @param respIndPayload   Payload of the response indication.
1489   @param pClientCookie    Pointer to the cookie the client specified during
1490                           registration.
1491 
1492   @return
1493   None.
1494 
1495   @dependencies
1496   None. @newpage
1497 */
1498 typedef void  (*locClientRespIndCbType)(
1499       locClientHandleType handle,
1500       uint32_t respIndId,
1501       const locClientRespIndUnionType respIndPayload,
1502       uint32_t respIndPayloadSize,
1503       void *pClientCookie
1504 );
1505 
1506 /**
1507   Location error callback function type. This function is called to inform
1508   the client that the service is no longer available. When the client
1509   receives this callback, it must close the existing connection and reopen
1510   the client connection.
1511 
1512   @datatypes
1513   #locClientHandleType \n
1514   #locClientErrorEnumType
1515 
1516   @param handle           Location client who sent the request for which this
1517                           error indication is generated.
1518   @param errorId          Error ID.
1519   @param pClientCookie    Payload associated with the error indication.
1520 
1521   @return
1522   None.
1523 
1524   @dependencies
1525   None.
1526 */
1527 typedef void  (*locClientErrorCbType)(
1528       locClientHandleType handle,
1529       locClientErrorEnumType errorId,
1530       void* pClientCookie
1531  );
1532 /** @} */ /* end_addtogroup callback_functions */
1533 
1534 
1535 /** @ingroup data_types
1536   Callback functions to be registered during locClientOpen().
1537 */
1538 typedef struct
1539 {
1540     uint32_t size;                       /**< Size of the structure. */
1541     locClientEventIndCbType eventIndCb;  /**< Event indication callback. */
1542     locClientRespIndCbType respIndCb;    /**< Response indication callback. */
1543     locClientErrorCbType errorCb;        /**< Error indication callback.
1544                                               @newpagetable */
1545 }locClientCallbacksType;
1546 
1547 /**
1548   Response for getting qmi service list
1549 */
1550 typedef struct
1551 {
1552     qmi_get_supported_msgs_resp_v01 resp; /**< Response */
1553 }qmiLocGetSupportMsgT_v02;
1554 
1555 /*===========================================================================
1556  *
1557  *                          FUNCTION DECLARATION
1558  *
1559  *==========================================================================*/
1560 /** @addtogroup operation_functions
1561 @{ */
1562 /*==========================================================================
1563     locClientOpen */
1564 /** @xreflabel{hdr:locClientOpenFunction}
1565   Connects a location client to the location engine. If the connection is
1566   successful, this function returns a handle that the location client uses for
1567   future location operations.
1568 
1569   @datatypes
1570   #locClientStatusEnumType \n
1571   #locClientEventMaskType \n
1572   #locClientCallbacksType \n
1573   #locClientHandleType
1574 
1575   @param[in]  eventRegMask          Mask of asynchronous events the client is
1576                                     interested in receiving.
1577   @param[in]  pLocClientCallbacks   Pointer to structure containing the
1578                                     callbacks.
1579   @param[out] pLocClientHandle      Pointer to the handle to be used by the
1580                                     client for any subsequent requests.
1581   @param[in]  pLocClientCookie      Pointer to a cookie to be returned to the
1582                                     client along with the callbacks.
1583 
1584   @return
1585   One of the following error codes:
1586   - eLOC_CLIENT_SUCCESS -- If the connection is opened.
1587   - Non-zero error code (see #locClientStatusEnumType) -- On failure.
1588 
1589   @dependencies
1590   None. @newpage
1591 */
1592 extern locClientStatusEnumType locClientOpen (
1593       locClientEventMaskType            eventRegMask,
1594       const locClientCallbacksType*     pLocClientCallbacks,
1595       locClientHandleType*              pLocClientHandle,
1596       const void*                       pLocClientCookie
1597 );
1598 
1599 
1600 /*==========================================================================
1601     locClientClose */
1602 /** @xreflabel{hdr:locClientCloseFunction}
1603   Disconnects a client from the location engine and sets the handle to
1604   LOC_CLIENT_INVALID_HANDLE_VALUE.
1605 
1606   @datatypes
1607   #locClientStatusEnumType \n
1608   #locClientHandleType
1609 
1610   @param[in] pLocClientHandle  Pointer to the handle returned by the
1611                                locClientOpen() function.
1612 
1613   @return
1614   One of the following error codes:
1615   - 0 (eLOC_CLIENT_SUCCESS) -- On success.
1616   - Non-zero error code (see \ref locClientStatusEnumType) -- On failure.
1617 
1618   @dependencies
1619   None. @newpage
1620 */
1621 extern locClientStatusEnumType locClientClose (
1622       locClientHandleType* pLocClientHandle
1623 );
1624 
1625 /*=============================================================================
1626     locClientSendReq */
1627 /** @xreflabel{hdr:locClientSendReqFunction}
1628   Sends a message to the location engine. If this function is successful, the
1629   client expects an indication (except start, stop, event registration, and
1630   sensor injection messages) through the registered callback in the
1631   locClientOpen() function.
1632 
1633   The indication contains the status of the request. If the status is a success,
1634   the indication also contains the payload associated with response.
1635 
1636   @datatypes
1637   #locClientStatusEnumType \n
1638   #locClientHandleType \n
1639   #locClientReqUnionType
1640 
1641   @param[in] handle        Handle returned by the locClientOpen() function.
1642   @param[in] reqId         QMI_LOC service message ID of the request.
1643   @param[in] reqPayload    Payload of the request. This can be NULL if the
1644                            request has no payload.
1645 
1646   @return
1647   One of the following error codes:
1648   - 0 (eLOC_CLIENT_SUCCESS) -- On success.
1649   - Non-zero error code (see \ref locClientStatusEnumType) -- On failure.
1650 
1651   @dependencies
1652   None. @newpage
1653 */
1654 extern locClientStatusEnumType locClientSendReq(
1655      locClientHandleType       handle,
1656      uint32_t                  reqId,
1657      locClientReqUnionType     reqPayload
1658 );
1659 
1660 /*=============================================================================
1661     locClientSupportMsgCheck */
1662 /**
1663   @brief Sends a QMI_LOC_GET_SUPPORTED_MSGS_REQ_V02 message to the
1664          location engine, and then receives a list of all services supported
1665          by the engine. This function will check if the input service(s) form
1666          the client is in the list or not. If the locClientSupportMsgCheck()
1667          function is successful, the client should expect an result of
1668          the service is supported or not recorded in supportedMsg.
1669   @param [in] handle Handle returned by the locClientOpen()
1670               function.
1671   @param [in] supportedMsg   a integer used to record which
1672                              message is supported
1673 
1674   @return
1675   One of the following error codes:
1676   - 0 (eLOC_CLIENT_SUCCESS) -- On success.
1677   - Non-zero error code (see \ref locClientStatusEnumType) -- On failure.
1678 
1679   @dependencies
1680   None. @newpage
1681 */
1682 extern locClientStatusEnumType locClientSupportMsgCheck(
1683      locClientHandleType      handle,
1684      const uint32_t*          msgArray,
1685      uint32_t                 msgArrayLength,
1686      uint64_t*                supportedMsg
1687 );
1688 
1689 /*=============================================================================
1690     locClientGetSizeByEventIndId */
1691 /** Gets the size of the event indication structure from a specified ID.
1692 
1693   @param[in]  eventIndId      Event indicator ID.
1694   @param[out] pEventIndSize   Pointer to the size of the structure.
1695 
1696   @return
1697   TRUE -- The event ID was found. \n
1698   FALSE -- Otherwise.
1699 
1700   @dependencies
1701   None. @newpage
1702 */
1703 extern bool locClientGetSizeByEventIndId(
1704   uint32_t eventIndId,
1705   size_t *pEventIndSize);
1706 
1707 
1708 /*=============================================================================
1709     locClientGetSizeByRespIndId */
1710 /** Gets the size of the response indication structure from a specified ID.
1711 
1712   @param[in]  respIndId      Response indicator ID.
1713   @param[out] pRespIndSize   Pointer to the size of the structure.
1714 
1715   @return
1716   TRUE -- The response ID was found. \n
1717   FALSE -- Otherwise.
1718 
1719   @dependencies
1720   None.
1721 */
1722 extern bool locClientGetSizeByRespIndId(
1723   uint32_t respIndId,
1724   size_t *pRespIndSize);
1725 
1726 /** locClientRegisterEventMask
1727  *  @brief registers the event mask with loc service
1728  *  @param [in] clientHandle
1729  *  @param [in] eventRegMask
1730  *  @return true if indication was validated; else false */
1731 
1732 extern bool locClientRegisterEventMask(
1733     locClientHandleType clientHandle,
1734     locClientEventMaskType eventRegMask);
1735 
1736 /*=============================================================================*/
1737 /** @} */ /* end_addtogroup operation_functions */
1738 
1739 #ifdef __cplusplus
1740 }
1741 #endif
1742 
1743 #endif /* LOC_API_V02_CLIENT_H*/
1744