+ last_active = gtk_combo_box_get_active(GTK_COMBO_BOX(w->proto_b));
+ device = ((BabelDevice*)g_list_nth_data(a_babel_device_list, last_active))->name;
+
+ last_get_tracks = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->get_tracks_b));
+ if (last_get_tracks)
+ tracks = "-t";
+ else
+ tracks = "";
+ last_get_waypoints = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->get_waypoints_b));
+ if (last_get_waypoints)
+ waypoints = "-w";
+ else
+ waypoints = "";
+
+ *babelargs = g_strdup_printf("-D 9 %s %s -i %s", tracks, waypoints, device);
+ /* device points to static content => no free */
+ device = NULL;
+ tracks = NULL;
+ waypoints = NULL;
+
+ /* Old stuff */
+#ifdef USE_NEW_COMBO_BOX
+ ser = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w->ser_b));
+#else
+ ser = gtk_combo_box_get_active_iter(GTK_COMBO_BOX(w->ser_b),&iter);
+#endif
+ *input_file = g_strdup(ser);
+
+ g_debug(_("using cmdline '%s' and file '%s'\n"), *babelargs, *input_file);
+}
+
+
+static void datasource_gps_off ( gpointer user_data, gchar **babelargs, gchar **input_file )
+{
+ char *ser = NULL;
+ char *device = NULL;
+#ifndef USE_NEW_COMBO_BOX
+ GtkTreeIter iter;
+#endif
+ gps_user_data_t *w = (gps_user_data_t *)user_data;
+
+ if (gps_acquire_in_progress) {
+ *babelargs = *input_file = NULL;
+ }
+
+ /* See if we should turn off the device */
+ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->off_request_b))) {
+ return;
+ }
+
+ last_active = gtk_combo_box_get_active(GTK_COMBO_BOX(w->proto_b));
+ device = ((BabelDevice*)g_list_nth_data(a_babel_device_list, last_active))->name;
+ if (!strcmp(device, "garmin")) {
+ device = "garmin,power_off";
+ }
+ else if (!strcmp(device, "navilink")) {
+ device = "navilink,power_off";
+ }
+ else {
+ return;