Home | History | Annotate | Download | only in core
      1 /* Copyright (c) 2011-2013, 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 
     30 #define LOG_NDDEBUG 0
     31 #define LOG_TAG "LocSvc_core_log"
     32 
     33 #include <loc_log.h>
     34 #include <log_util.h>
     35 #include <loc_core_log.h>
     36 
     37 void LocPosMode::logv() const
     38 {
     39     LOC_LOGV ("Position mode: %s\n  Position recurrence: %s\n  "
     40               "min interval: %d\n  preferred accuracy: %d\n  "
     41               "preferred time: %d\n  credentials: %s  provider: %s",
     42               loc_get_position_mode_name(mode),
     43               loc_get_position_recurrence_name(recurrence),
     44               min_interval,
     45               preferred_accuracy,
     46               preferred_time,
     47               credentials,
     48               provider);
     49 }
     50 
     51 /* GPS status names */
     52 static loc_name_val_s_type gps_status_name[] =
     53 {
     54     NAME_VAL( GPS_STATUS_NONE ),
     55     NAME_VAL( GPS_STATUS_SESSION_BEGIN ),
     56     NAME_VAL( GPS_STATUS_SESSION_END ),
     57     NAME_VAL( GPS_STATUS_ENGINE_ON ),
     58     NAME_VAL( GPS_STATUS_ENGINE_OFF ),
     59 };
     60 static int gps_status_num = sizeof(gps_status_name) / sizeof(loc_name_val_s_type);
     61 
     62 /* Find Android GPS status name */
     63 const char* loc_get_gps_status_name(GpsStatusValue gps_status)
     64 {
     65    return loc_get_name_from_val(gps_status_name, gps_status_num,
     66          (long) gps_status);
     67 }
     68 
     69 
     70 
     71 static loc_name_val_s_type loc_eng_position_modes[] =
     72 {
     73     NAME_VAL( LOC_POSITION_MODE_STANDALONE ),
     74     NAME_VAL( LOC_POSITION_MODE_MS_BASED ),
     75     NAME_VAL( LOC_POSITION_MODE_MS_ASSISTED ),
     76     NAME_VAL( LOC_POSITION_MODE_RESERVED_1 ),
     77     NAME_VAL( LOC_POSITION_MODE_RESERVED_2 ),
     78     NAME_VAL( LOC_POSITION_MODE_RESERVED_3 ),
     79     NAME_VAL( LOC_POSITION_MODE_RESERVED_4 ),
     80     NAME_VAL( LOC_POSITION_MODE_RESERVED_5 )
     81 };
     82 static int loc_eng_position_mode_num = sizeof(loc_eng_position_modes) / sizeof(loc_name_val_s_type);
     83 
     84 const char* loc_get_position_mode_name(GpsPositionMode mode)
     85 {
     86     return loc_get_name_from_val(loc_eng_position_modes, loc_eng_position_mode_num, (long) mode);
     87 }
     88 
     89 
     90 
     91 static loc_name_val_s_type loc_eng_position_recurrences[] =
     92 {
     93     NAME_VAL( GPS_POSITION_RECURRENCE_PERIODIC ),
     94     NAME_VAL( GPS_POSITION_RECURRENCE_SINGLE )
     95 };
     96 static int loc_eng_position_recurrence_num = sizeof(loc_eng_position_recurrences) / sizeof(loc_name_val_s_type);
     97 
     98 const char* loc_get_position_recurrence_name(GpsPositionRecurrence recur)
     99 {
    100     return loc_get_name_from_val(loc_eng_position_recurrences, loc_eng_position_recurrence_num, (long) recur);
    101 }
    102 
    103 
    104 
    105 static loc_name_val_s_type loc_eng_aiding_data_bits[] =
    106 {
    107     NAME_VAL( GPS_DELETE_EPHEMERIS ),
    108     NAME_VAL( GPS_DELETE_ALMANAC ),
    109     NAME_VAL( GPS_DELETE_POSITION ),
    110     NAME_VAL( GPS_DELETE_TIME ),
    111     NAME_VAL( GPS_DELETE_IONO ),
    112     NAME_VAL( GPS_DELETE_UTC ),
    113     NAME_VAL( GPS_DELETE_HEALTH ),
    114     NAME_VAL( GPS_DELETE_SVDIR ),
    115     NAME_VAL( GPS_DELETE_SVSTEER ),
    116     NAME_VAL( GPS_DELETE_SADATA ),
    117     NAME_VAL( GPS_DELETE_RTI ),
    118     NAME_VAL( GPS_DELETE_CELLDB_INFO ),
    119     NAME_VAL( GPS_DELETE_ALMANAC_CORR ),
    120     NAME_VAL( GPS_DELETE_FREQ_BIAS_EST ),
    121     NAME_VAL( GPS_DELETE_EPHEMERIS_GLO ),
    122     NAME_VAL( GPS_DELETE_ALMANAC_GLO ),
    123     NAME_VAL( GPS_DELETE_SVDIR_GLO ),
    124     NAME_VAL( GPS_DELETE_SVSTEER_GLO ),
    125     NAME_VAL( GPS_DELETE_ALMANAC_CORR_GLO ),
    126     NAME_VAL( GPS_DELETE_TIME_GPS ),
    127     NAME_VAL( GPS_DELETE_TIME_GLO )
    128 };
    129 static int loc_eng_aiding_data_bit_num = sizeof(loc_eng_aiding_data_bits) / sizeof(loc_name_val_s_type);
    130 
    131 const char* loc_get_aiding_data_mask_names(GpsAidingData data)
    132 {
    133     return NULL;
    134 }
    135 
    136 
    137 static loc_name_val_s_type loc_eng_agps_types[] =
    138 {
    139     NAME_VAL( AGPS_TYPE_INVALID ),
    140     NAME_VAL( AGPS_TYPE_ANY ),
    141     NAME_VAL( AGPS_TYPE_SUPL ),
    142     NAME_VAL( AGPS_TYPE_C2K ),
    143     NAME_VAL( AGPS_TYPE_WWAN_ANY )
    144 };
    145 static int loc_eng_agps_type_num = sizeof(loc_eng_agps_types) / sizeof(loc_name_val_s_type);
    146 
    147 const char* loc_get_agps_type_name(AGpsType type)
    148 {
    149     return loc_get_name_from_val(loc_eng_agps_types, loc_eng_agps_type_num, (long) type);
    150 }
    151 
    152 
    153 static loc_name_val_s_type loc_eng_ni_types[] =
    154 {
    155     NAME_VAL( GPS_NI_TYPE_VOICE ),
    156     NAME_VAL( GPS_NI_TYPE_UMTS_SUPL ),
    157     NAME_VAL( GPS_NI_TYPE_UMTS_CTRL_PLANE )
    158 };
    159 static int loc_eng_ni_type_num = sizeof(loc_eng_ni_types) / sizeof(loc_name_val_s_type);
    160 
    161 const char* loc_get_ni_type_name(GpsNiType type)
    162 {
    163     return loc_get_name_from_val(loc_eng_ni_types, loc_eng_ni_type_num, (long) type);
    164 }
    165 
    166 
    167 static loc_name_val_s_type loc_eng_ni_responses[] =
    168 {
    169     NAME_VAL( GPS_NI_RESPONSE_ACCEPT ),
    170     NAME_VAL( GPS_NI_RESPONSE_DENY ),
    171     NAME_VAL( GPS_NI_RESPONSE_DENY )
    172 };
    173 static int loc_eng_ni_reponse_num = sizeof(loc_eng_ni_responses) / sizeof(loc_name_val_s_type);
    174 
    175 const char* loc_get_ni_response_name(GpsUserResponseType response)
    176 {
    177     return loc_get_name_from_val(loc_eng_ni_responses, loc_eng_ni_reponse_num, (long) response);
    178 }
    179 
    180 
    181 static loc_name_val_s_type loc_eng_ni_encodings[] =
    182 {
    183     NAME_VAL( GPS_ENC_NONE ),
    184     NAME_VAL( GPS_ENC_SUPL_GSM_DEFAULT ),
    185     NAME_VAL( GPS_ENC_SUPL_UTF8 ),
    186     NAME_VAL( GPS_ENC_SUPL_UCS2 ),
    187     NAME_VAL( GPS_ENC_UNKNOWN )
    188 };
    189 static int loc_eng_ni_encoding_num = sizeof(loc_eng_ni_encodings) / sizeof(loc_name_val_s_type);
    190 
    191 const char* loc_get_ni_encoding_name(GpsNiEncodingType encoding)
    192 {
    193     return loc_get_name_from_val(loc_eng_ni_encodings, loc_eng_ni_encoding_num, (long) encoding);
    194 }
    195 
    196 static loc_name_val_s_type loc_eng_agps_bears[] =
    197 {
    198     NAME_VAL( AGPS_APN_BEARER_INVALID ),
    199     NAME_VAL( AGPS_APN_BEARER_IPV4 ),
    200     NAME_VAL( AGPS_APN_BEARER_IPV4 ),
    201     NAME_VAL( AGPS_APN_BEARER_IPV4V6 )
    202 };
    203 static int loc_eng_agps_bears_num = sizeof(loc_eng_agps_bears) / sizeof(loc_name_val_s_type);
    204 
    205 const char* loc_get_agps_bear_name(AGpsBearerType bearer)
    206 {
    207     return loc_get_name_from_val(loc_eng_agps_bears, loc_eng_agps_bears_num, (long) bearer);
    208 }
    209 
    210 static loc_name_val_s_type loc_eng_server_types[] =
    211 {
    212     NAME_VAL( LOC_AGPS_CDMA_PDE_SERVER ),
    213     NAME_VAL( LOC_AGPS_CUSTOM_PDE_SERVER ),
    214     NAME_VAL( LOC_AGPS_MPC_SERVER ),
    215     NAME_VAL( LOC_AGPS_SUPL_SERVER )
    216 };
    217 static int loc_eng_server_types_num = sizeof(loc_eng_server_types) / sizeof(loc_name_val_s_type);
    218 
    219 const char* loc_get_server_type_name(LocServerType type)
    220 {
    221     return loc_get_name_from_val(loc_eng_server_types, loc_eng_server_types_num, (long) type);
    222 }
    223 
    224 static loc_name_val_s_type loc_eng_position_sess_status_types[] =
    225 {
    226     NAME_VAL( LOC_SESS_SUCCESS ),
    227     NAME_VAL( LOC_SESS_INTERMEDIATE ),
    228     NAME_VAL( LOC_SESS_FAILURE )
    229 };
    230 static int loc_eng_position_sess_status_num = sizeof(loc_eng_position_sess_status_types) / sizeof(loc_name_val_s_type);
    231 
    232 const char* loc_get_position_sess_status_name(enum loc_sess_status status)
    233 {
    234     return loc_get_name_from_val(loc_eng_position_sess_status_types, loc_eng_position_sess_status_num, (long) status);
    235 }
    236 
    237 static loc_name_val_s_type loc_eng_agps_status_names[] =
    238 {
    239     NAME_VAL( GPS_REQUEST_AGPS_DATA_CONN ),
    240     NAME_VAL( GPS_RELEASE_AGPS_DATA_CONN ),
    241     NAME_VAL( GPS_AGPS_DATA_CONNECTED ),
    242     NAME_VAL( GPS_AGPS_DATA_CONN_DONE ),
    243     NAME_VAL( GPS_AGPS_DATA_CONN_FAILED )
    244 };
    245 static int loc_eng_agps_status_num = sizeof(loc_eng_agps_status_names) / sizeof(loc_name_val_s_type);
    246 
    247 const char* loc_get_agps_status_name(AGpsStatusValue status)
    248 {
    249     return loc_get_name_from_val(loc_eng_agps_status_names, loc_eng_agps_status_num, (long) status);
    250 }
    251