1/* Copyright (c) 2009,2011 Code Aurora Forum. 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 Code Aurora Forum, Inc. 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
30#define LOG_NDDEBUG 0
31#define LOG_TAG "LocSvc_eng"
32
33#include <loc_eng.h>
34#include <loc_eng_msg.h>
35#include "log_util.h"
36
37
38/*===========================================================================
39FUNCTION    loc_eng_xtra_init
40
41DESCRIPTION
42   Initialize XTRA module.
43
44DEPENDENCIES
45   N/A
46
47RETURN VALUE
48   0: success
49
50SIDE EFFECTS
51   N/A
52
53===========================================================================*/
54int loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data,
55                       GpsXtraCallbacks* callbacks)
56{
57   loc_eng_xtra_data_s_type *xtra_module_data_ptr;
58
59   xtra_module_data_ptr = &loc_eng_data.xtra_module_data;
60   xtra_module_data_ptr->download_request_cb = callbacks->download_request_cb;
61
62   return 0;
63}
64
65/*===========================================================================
66FUNCTION    loc_eng_xtra_inject_data
67
68DESCRIPTION
69   Injects XTRA file into the engine but buffers the data if engine is busy.
70
71DEPENDENCIES
72   N/A
73
74RETURN VALUE
75   0: success
76   >0: failure
77
78SIDE EFFECTS
79   N/A
80
81===========================================================================*/
82int loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data,
83                             char* data, int length)
84{
85    loc_eng_msg_inject_xtra_data *msg(new loc_eng_msg_inject_xtra_data(&loc_eng_data,
86                                                                       data, length));
87    loc_eng_msg_sender(&loc_eng_data, msg);
88
89    return 0;
90}
91