~ubuntu-branches/ubuntu/vivid/modemmanager/vivid-proposed

« back to all changes in this revision

Viewing changes to plugins/mm-modem-x22x-gsm.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Biebl
  • Date: 2011-06-16 17:12:41 UTC
  • mfrom: (16.1.1 oneiric)
  • Revision ID: james.westby@ubuntu.com-20110616171241-k8vgsdmbpsvx467q
Tags: 0.4.997-1
* debian/watch: Switch to .bz2 tarballs.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
115
115
    MMCallbackInfo *info = (MMCallbackInfo *) user_data;
116
116
    MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
117
117
 
118
 
    info->error = mm_modem_check_removed (info->modem, error);
119
 
    if (!info->error) {
 
118
    /* If the modem has already been removed, return without
 
119
     * scheduling callback */
 
120
    if (mm_callback_info_check_modem_removed (info))
 
121
        return;
 
122
 
 
123
    if (error)
 
124
        info->error = g_error_copy (error);
 
125
    else {
120
126
        parse_syssel_response (response, &mode, &info->error);
121
127
        mm_callback_info_set_result (info, GUINT_TO_POINTER (mode), NULL);
122
128
    }
151
157
{
152
158
    MMCallbackInfo *info = (MMCallbackInfo *) user_data;
153
159
 
154
 
    info->error = mm_modem_check_removed (info->modem, error);
 
160
    /* If the modem has already been removed, return without
 
161
     * scheduling callback */
 
162
    if (mm_callback_info_check_modem_removed (info))
 
163
        return;
 
164
 
 
165
    if (error)
 
166
        info->error = g_error_copy (error);
 
167
 
155
168
    mm_callback_info_schedule (info);
156
169
}
157
170
 
189
202
    mm_at_serial_port_queue_command (port, command, 3, set_allowed_mode_done, info);
190
203
}
191
204
 
 
205
static void
 
206
get_act_request_done (MMAtSerialPort *port,
 
207
                      GString *response,
 
208
                      GError *error,
 
209
                      gpointer user_data)
 
210
{
 
211
    MMCallbackInfo *info = user_data;
 
212
    MMModemGsmAccessTech act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
 
213
    const char *p;
 
214
 
 
215
    /* If the modem has already been removed, return without
 
216
     * scheduling callback */
 
217
    if (mm_callback_info_check_modem_removed (info))
 
218
        return;
 
219
 
 
220
    if (error)
 
221
        info->error = g_error_copy (error);
 
222
    else {
 
223
        p = mm_strip_tag (response->str, "+SSND:");
 
224
        act = mm_gsm_string_to_access_tech (p);
 
225
    }
 
226
 
 
227
    mm_callback_info_set_result (info, GUINT_TO_POINTER (act), NULL);
 
228
    mm_callback_info_schedule (info);
 
229
}
 
230
 
 
231
static void
 
232
get_access_technology (MMGenericGsm *modem,
 
233
                       MMModemUIntFn callback,
 
234
                       gpointer user_data)
 
235
{
 
236
    MMAtSerialPort *port;
 
237
    MMCallbackInfo *info;
 
238
 
 
239
    info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
 
240
 
 
241
    port = mm_generic_gsm_get_best_at_port (modem, &info->error);
 
242
    if (!port) {
 
243
        mm_callback_info_schedule (info);
 
244
        return;
 
245
    }
 
246
 
 
247
    mm_at_serial_port_queue_command (port, "+SSND?", 3, get_act_request_done, info);
 
248
}
 
249
 
192
250
/*****************************************************************************/
193
251
 
194
252
static void
205
263
 
206
264
    gsm_class->set_allowed_mode = set_allowed_mode;
207
265
    gsm_class->get_allowed_mode = get_allowed_mode;
 
266
    gsm_class->get_access_technology = get_access_technology;
208
267
}
209
268