libmm-glib,nmea: new method to get list of traces
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/120
This commit is contained in:
@@ -528,6 +528,7 @@ mm_location_3gpp_get_type
|
||||
MMLocationGpsNmea
|
||||
<SUBSECTION Getters>
|
||||
mm_location_gps_nmea_get_trace
|
||||
mm_location_gps_nmea_get_traces
|
||||
mm_location_gps_nmea_build_full
|
||||
<SUBSECTION Private>
|
||||
mm_location_gps_nmea_new
|
||||
|
@@ -152,6 +152,42 @@ mm_location_gps_nmea_get_trace (MMLocationGpsNmea *self,
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
build_all_foreach (const gchar *trace_type,
|
||||
const gchar *trace,
|
||||
GPtrArray **built)
|
||||
{
|
||||
if (*built == NULL)
|
||||
*built = g_ptr_array_new ();
|
||||
g_ptr_array_add (*built, g_strdup (trace));
|
||||
}
|
||||
|
||||
/**
|
||||
* mm_location_gps_nmea_get_traces:
|
||||
* @self: a #MMLocationGpsNmea.
|
||||
*
|
||||
* Gets all cached traces.
|
||||
*
|
||||
* Returns: (transfer full): The list of traces, or %NULL if none available. The returned value should be freed with g_strfreev().
|
||||
* Since: 1.14
|
||||
*/
|
||||
gchar **
|
||||
mm_location_gps_nmea_get_traces (MMLocationGpsNmea *self)
|
||||
{
|
||||
GPtrArray *built = NULL;
|
||||
|
||||
g_hash_table_foreach (self->priv->traces,
|
||||
(GHFunc)build_all_foreach,
|
||||
&built);
|
||||
if (!built)
|
||||
return NULL;
|
||||
|
||||
g_ptr_array_add (built, NULL);
|
||||
return (gchar **) g_ptr_array_free (built, FALSE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
build_full_foreach (const gchar *trace_type,
|
||||
const gchar *trace,
|
||||
|
@@ -59,9 +59,10 @@ GType mm_location_gps_nmea_get_type (void);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMLocationGpsNmea, g_object_unref)
|
||||
#endif
|
||||
|
||||
const gchar *mm_location_gps_nmea_get_trace (MMLocationGpsNmea *self,
|
||||
const gchar *trace_type);
|
||||
gchar *mm_location_gps_nmea_build_full (MMLocationGpsNmea *self);
|
||||
const gchar *mm_location_gps_nmea_get_trace (MMLocationGpsNmea *self,
|
||||
const gchar *trace_type);
|
||||
gchar **mm_location_gps_nmea_get_traces (MMLocationGpsNmea *self);
|
||||
gchar *mm_location_gps_nmea_build_full (MMLocationGpsNmea *self);
|
||||
|
||||
/*****************************************************************************/
|
||||
/* ModemManager/libmm-glib/mmcli specific methods */
|
||||
|
Reference in New Issue
Block a user