summaryrefslogtreecommitdiff
path: root/libmm-glib/mm-common-helpers.h
blob: d23fc73e39b3326547d96636e7b53a57126a3503 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details:
 *
 * Copyright (C) 2010 - 2012 Red Hat, Inc.
 * Copyright (C) 2011 - 2012 Google, Inc.
 * Copyright (C) 2012 Aleksander Morgado <aleksander@gnu.org>
 */

#include <glib.h>
#include <ModemManager.h>

#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
#error "Only <libmm-glib.h> can be included directly."
#endif

#ifndef MM_COMMON_HELPERS_H
#define MM_COMMON_HELPERS_H

gchar *mm_common_build_bands_string (const MMModemBand *bands,
                                     guint n_bands);

gchar *mm_common_build_sms_storages_string (const MMSmsStorage *storages,
                                            guint n_storages);

MMModemMode           mm_common_get_modes_from_string        (const gchar *str,
                                                              GError **error);
void                  mm_common_get_bands_from_string        (const gchar *str,
                                                              MMModemBand **bands,
                                                              guint *n_bands,
                                                              GError **error);
gboolean              mm_common_get_boolean_from_string      (const gchar *value,
                                                              GError **error);
MMModemCdmaRmProtocol mm_common_get_rm_protocol_from_string  (const gchar *str,
                                                              GError **error);
MMBearerIpFamily      mm_common_get_ip_type_from_string      (const gchar *str,
                                                              GError **error);
MMBearerAllowedAuth   mm_common_get_allowed_auth_from_string (const gchar *str,
                                                              GError **error);
MMSmsStorage          mm_common_get_sms_storage_from_string  (const gchar *str,
                                                              GError **error);

GArray       *mm_common_sms_storages_variant_to_garray (GVariant *variant);
MMSmsStorage *mm_common_sms_storages_variant_to_array  (GVariant *variant,
                                                        guint *n_storages);
GVariant     *mm_common_sms_storages_array_to_variant  (const MMSmsStorage *storages,
                                                        guint n_storages);
GVariant     *mm_common_sms_storages_garray_to_variant (GArray *array);

GArray      *mm_common_bands_variant_to_garray (GVariant *variant);
MMModemBand *mm_common_bands_variant_to_array  (GVariant *variant,
                                                guint *n_bands);
GVariant    *mm_common_bands_array_to_variant  (const MMModemBand *bands,
                                                guint n_bands);
GVariant    *mm_common_bands_garray_to_variant (GArray *array);

GVariant    *mm_common_build_bands_any     (void);
GVariant    *mm_common_build_bands_unknown (void);

gboolean     mm_common_bands_garray_cmp (GArray *a, GArray *b);

typedef gboolean (*MMParseKeyValueForeachFn) (const gchar *key,
                                              const gchar *value,
                                              gpointer user_data);
gboolean mm_common_parse_key_value_string (const gchar *str,
                                           GError **error,
                                           MMParseKeyValueForeachFn callback,
                                           gpointer user_data);

/* Common parsers */
gboolean  mm_get_int_from_str                    (const gchar *str,
                                                  gint *out);
gboolean  mm_get_int_from_match_info             (GMatchInfo *match_info,
                                                  guint32 match_index,
                                                  gint *out);
gboolean  mm_get_uint_from_str                   (const gchar *str,
                                                  guint *out);
gboolean  mm_get_uint_from_match_info            (GMatchInfo *match_info,
                                                  guint32 match_index,
                                                  guint *out);
gboolean  mm_get_double_from_str                 (const gchar *str,
                                                  gdouble *out);
gboolean  mm_get_double_from_match_info          (GMatchInfo *match_info,
                                                  guint32 match_index,
                                                  gdouble *out);
gchar    *mm_get_string_unquoted_from_match_info (GMatchInfo *match_info,
                                                  guint32 match_index);

const gchar *mm_sms_delivery_state_get_string_extended (guint delivery_state);

gint      mm_utils_hex2byte   (const gchar *hex);
gchar    *mm_utils_hexstr2bin (const gchar *hex, gsize *out_len);
gchar    *mm_utils_bin2hexstr (const guint8 *bin, gsize len);
gboolean  mm_utils_ishexstr   (const gchar *hex);

gboolean  mm_utils_check_for_single_value (guint32 value);

#endif /* MM_COMMON_HELPERS_H */