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
|
MMLocationGpsNmea
|
||||||
<SUBSECTION Getters>
|
<SUBSECTION Getters>
|
||||||
mm_location_gps_nmea_get_trace
|
mm_location_gps_nmea_get_trace
|
||||||
|
mm_location_gps_nmea_get_traces
|
||||||
mm_location_gps_nmea_build_full
|
mm_location_gps_nmea_build_full
|
||||||
<SUBSECTION Private>
|
<SUBSECTION Private>
|
||||||
mm_location_gps_nmea_new
|
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
|
static void
|
||||||
build_full_foreach (const gchar *trace_type,
|
build_full_foreach (const gchar *trace_type,
|
||||||
const gchar *trace,
|
const gchar *trace,
|
||||||
|
@@ -59,9 +59,10 @@ GType mm_location_gps_nmea_get_type (void);
|
|||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMLocationGpsNmea, g_object_unref)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMLocationGpsNmea, g_object_unref)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const gchar *mm_location_gps_nmea_get_trace (MMLocationGpsNmea *self,
|
const gchar *mm_location_gps_nmea_get_trace (MMLocationGpsNmea *self,
|
||||||
const gchar *trace_type);
|
const gchar *trace_type);
|
||||||
gchar *mm_location_gps_nmea_build_full (MMLocationGpsNmea *self);
|
gchar **mm_location_gps_nmea_get_traces (MMLocationGpsNmea *self);
|
||||||
|
gchar *mm_location_gps_nmea_build_full (MMLocationGpsNmea *self);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* ModemManager/libmm-glib/mmcli specific methods */
|
/* ModemManager/libmm-glib/mmcli specific methods */
|
||||||
|
Reference in New Issue
Block a user