[Goodies-commits] r2537 - in xfce4-cellmodem-plugin/trunk: panel-plugin po
Alvaro Lopes
alvieboy at xfce.org
Mon Mar 12 19:27:37 CET 2007
Author: alvieboy
Date: 2007-03-12 18:27:37 +0000 (Mon, 12 Mar 2007)
New Revision: 2537
Modified:
xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem.c
xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem_options.h
xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver.h
xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_fake.c
xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.c
xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.h
xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.c
xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.h
xfce4-cellmodem-plugin/trunk/po/pt.po
Log:
Add support for baud rate and fix bug when the modem does not reply network type
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem.c
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem.c 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem.c 2007-03-12 18:27:37 UTC (rev 2537)
@@ -751,6 +751,9 @@
while ( ( tok[i++]=strtok(NULL,",")) ) {};
DEBUG("Network: '%s'\n", tok[2]);
+
+ /* Some modems do not reply with all fields */
+
DEBUG("Network Type: '%s'\n", tok[3]);
if ( monitor->network )
@@ -764,8 +767,13 @@
if ( monitor->registration_status != REGISTRATION_NOT_REGISTERED )
{
- int type = atoi(tok[3]);
+ int type;
+ if ( tok[3] )
+ type = atoi(tok[3]);
+ else
+ type = -1; /* Unknown */
+
switch (type) {
case 0:
cellmodem_t_switch_network_status( monitor, REGISTRATION_GPRS );
@@ -1346,6 +1354,8 @@
return FALSE;
}
+ monitor->driver->set_termios( monitor->modem_instance, 0, 0, monitor->options.speed );
+
if ( monitor->driver->open( monitor->modem_instance,
&monitor->options ) == FALSE )
{
@@ -1456,6 +1466,7 @@
monitor->options.low_threshold = xfce_rc_read_int_entry( rc, "low_threshold", 40 );
monitor->options.critical_threshold = xfce_rc_read_int_entry( rc, "critical_threshold", 20 );
monitor->options.max_quality = xfce_rc_read_int_entry( rc, "max_quality", MAX_QUAL );
+ monitor->options.speed = xfce_rc_read_int_entry( rc, "speed", B230400 );
xfce_rc_close (rc);
@@ -1496,6 +1507,7 @@
xfce_rc_write_int_entry( rc, "low_threshold", monitor->options.low_threshold );
xfce_rc_write_int_entry( rc, "critical_threshold", monitor->options.critical_threshold );
xfce_rc_write_int_entry( rc, "max_quality", monitor->options.max_quality );
+ xfce_rc_write_int_entry( rc, "speed", monitor->options.speed );
DEBUG("Done saving configuration");
xfce_rc_close (rc);
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem_options.h
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem_options.h 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/cellmodem_options.h 2007-03-12 18:27:37 UTC (rev 2537)
@@ -20,6 +20,7 @@
#define __CELLMODEM_OPTIONS_H__
#include <glib.h>
+#include <termios.h>
typedef struct
{
@@ -31,6 +32,7 @@
gint low_threshold;
gint critical_threshold;
gint max_quality;
+ speed_t speed;
} cellmodem_options_t;
#endif
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver.h
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver.h 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver.h 2007-03-12 18:27:37 UTC (rev 2537)
@@ -20,6 +20,7 @@
#define __MODEMDRIVER_H__
#include "config.h"
+#include <termios.h>
#define HAVE_FAKE_MODEM 1
@@ -40,7 +41,7 @@
gboolean (*writeln)( modem_instance_t instance, const gchar *data );
void (*close)( modem_instance_t instance );
gboolean (*set_reader)( modem_instance_t instance, GIOFunc reader, gpointer data );
-
+ gboolean (*set_termios)( modem_instance_t instance, tcflag_t cflag_set, tcflag_t cflag_unset, speed_t speed);
void (*destroy)( modem_instance_t instance );
} modem_driver_t;
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_fake.c
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_fake.c 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_fake.c 2007-03-12 18:27:37 UTC (rev 2537)
@@ -272,6 +272,11 @@
return (modem_instance_t)modem;
}
+static gboolean fake_set_termios( modem_instance_t instance, tcflag_t cflag_set, tcflag_t cflag_unset, speed_t speed)
+{
+ return TRUE;
+}
+
static void fake_destroy( modem_instance_t modem )
{
g_free( modem );
@@ -286,6 +291,7 @@
.close = &fake_close,
.writeln = &fake_writeln,
.set_reader = &fake_set_reader,
- .create = &fake_create,
+ .create = &fake_create,
+ .set_termios = &fake_set_termios,
.destroy = &fake_destroy
};
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.c
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.c 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.c 2007-03-12 18:27:37 UTC (rev 2537)
@@ -19,7 +19,6 @@
#include "modem_driver_generic.h"
#include "cellmodem.h"
#include <errno.h> /* Maybe non-portable */
-#include <termios.h>
static gboolean generic_open( modem_instance_t instance, cellmodem_options_t *options )
@@ -45,8 +44,8 @@
cfmakeraw( &tio );
- tio.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | PARENB);
- tio.c_cflag |= ( B115200 | CS8 | CREAD | CLOCAL );
+ tio.c_cflag &= ~(modem->cflag_unset);
+ tio.c_cflag |= (modem->cflag_set | modem->speed);
tcsetattr( fd, TCSANOW , &tio);
@@ -190,7 +189,11 @@
struct generic_modem_t *modem = g_new( struct generic_modem_t , 1);
modem->reader = -1;
modem->channel = NULL;
- return (modem_instance_t)modem;
+
+ modem->cflag_unset = CBAUD | CSIZE | CSTOPB | PARENB;
+ modem->cflag_set = CS8 | CREAD | CLOCAL;
+ modem->speed = B115200;
+ return (modem_instance_t)modem;
}
static void generic_destroy( modem_instance_t modem )
@@ -199,7 +202,16 @@
g_free( modem );
}
+static gboolean generic_set_termios( modem_instance_t instance, tcflag_t cflag_set, tcflag_t cflag_unset, speed_t speed)
+{
+ struct generic_modem_t *modem = (struct generic_modem_t*)instance;
+ modem->cflag_set |= cflag_set;
+ modem->cflag_unset |= cflag_unset;
+ modem->speed = speed;
+ return TRUE;
+}
+
struct modem_driver_t modem_driver_generic =
{
.name = "Generic Driver",
@@ -208,6 +220,7 @@
.close = &generic_close,
.writeln = &generic_writeln,
.set_reader = &generic_set_reader,
- .create = &generic_create,
+ .create = &generic_create,
+ .set_termios = &generic_set_termios,
.destroy = &generic_destroy
};
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.h
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.h 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/modem_driver_generic.h 2007-03-12 18:27:37 UTC (rev 2537)
@@ -25,6 +25,9 @@
{
gint reader;
GIOChannel *channel;
+ tcflag_t cflag_set;
+ tcflag_t cflag_unset;
+ speed_t speed;
};
extern struct modem_driver_t modem_driver_generic;
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.c
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.c 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.c 2007-03-12 18:27:37 UTC (rev 2537)
@@ -20,6 +20,40 @@
#include "modem_driver.h"
#include "autodetect.h"
+speed_names_t speeds[] = {
+ { .name = "1200", .speed = B1200 },
+ { .name = "2400", .speed = B2400 },
+ { .name = "4800", .speed = B4800 },
+ { .name = "9600", .speed = B9600 },
+ { .name = "19200", .speed = B19200 },
+ { .name = "38400", .speed = B38400 },
+ { .name = "57600", .speed = B57600 },
+ { .name = "115200", .speed = B115200 },
+ { .name = "230400", .speed = B230400 },
+ { .name = "460800", .speed = B460800 },
+ { .name = "500000", .speed = B500000 },
+ { .name = "576000", .speed = B576000 },
+ { .name = "921600", .speed = B921600 },
+ { .name = "1000000", .speed = B1000000 },
+ { .name = "1152000", .speed = B1152000 },
+ { .name = "1500000", .speed = B1500000 },
+ { .name = "2000000", .speed = B2000000 },
+ { .name = "2500000", .speed = B2500000 },
+ { .name = "3000000", .speed = B3000000 },
+ { .name = "3500000", .speed = B3500000 },
+ { .name = "4000000", .speed = B4000000 },
+ { .name = NULL, .speed = B0 }
+};
+
+
+static void fill_speeds( GtkWidget *dlg )
+{
+ speed_names_t *iter;
+ for (iter=speeds; iter->name; iter++) {
+ gtk_combo_box_append_text(GTK_COMBO_BOX(dlg), iter->name);
+ }
+}
+
static void
cellmodem_t_dialog_response( GtkWidget *dlg, int response, cellmodem_t *monitor )
{
@@ -52,6 +86,7 @@
{
int idx;
cellmodem_t *monitor = dialog->monitor;
+ speed_names_t *speediter;
if ( monitor->options.modem_device != NULL )
gtk_entry_set_text( GTK_ENTRY(dialog->device_entry),
@@ -70,8 +105,16 @@
gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->driver_entry),idx);
+ for (idx=0,speediter=speeds; speediter->name; idx++, speediter++) {
+ if ( monitor->options.speed == speediter->speed ) {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->speed_entry),idx);
+ break;
+ }
+ }
+ if (speediter->name == NULL) {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->speed_entry),0);
+ }
-
gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->low_entry),
monitor->options.low_threshold);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->critical_entry),
@@ -132,7 +175,17 @@
dialog->monitor->options.modem_driver = g_strdup( driver->name );
}
+static void
+cb_speed_entry_changed(GtkComboBox *combo, cellmodem_dialog_t *dialog)
+{
+ int idx;
+ idx = gtk_combo_box_get_active( combo );
+
+ dialog->monitor->options.speed = speeds[idx].speed;
+}
+
+
static void
cb_maxqual_entry_changed(GtkSpinButton *button, cellmodem_dialog_t *dialog)
{
@@ -334,6 +387,19 @@
g_signal_connect(dialog->driver_entry, "changed", G_CALLBACK(cb_driver_entry_changed), dialog);
+ MAKEHBOX( hbox );
+ MAKELABEL( label, _("Modem speed:") );
+ gtk_box_pack_start( GTK_BOX(hbox), label, 0, FALSE, FALSE );
+
+ dialog->speed_entry = gtk_combo_box_new_text();
+
+ fill_speeds( dialog->speed_entry );
+
+ gtk_box_pack_start( GTK_BOX(hbox), dialog->speed_entry, 0, FALSE, FALSE );
+ gtk_widget_show( dialog->speed_entry );
+
+ g_signal_connect(dialog->speed_entry, "changed", G_CALLBACK(cb_speed_entry_changed), dialog);
+
MAKEHBOX( hbox );
MAKELABEL( label, _("Modem device:") );
Modified: xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.h
===================================================================
--- xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.h 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/panel-plugin/preferences.h 2007-03-12 18:27:37 UTC (rev 2537)
@@ -20,6 +20,7 @@
#define __PREFERENCES_H__
#include "cellmodem.h"
+#include <termios.h>
typedef struct
{
@@ -30,11 +31,19 @@
GtkWidget *maxqual_entry;
GtkWidget *autodetect_dialog;
GtkWidget *device_combo;
-/* GtkWidget *ask_pin_entry;*/
- cellmodem_t *monitor;
- GList *devices;
+ GtkWidget *speed_entry;
+ cellmodem_t *monitor;
+
+ GList *devices;
+
} cellmodem_dialog_t;
+typedef struct
+{
+ const char *name;
+ speed_t speed;
+} speed_names_t;
+
void
cellmodem_create_options(XfcePanelPlugin *plugin, cellmodem_t *monitor);
Modified: xfce4-cellmodem-plugin/trunk/po/pt.po
===================================================================
--- xfce4-cellmodem-plugin/trunk/po/pt.po 2007-03-10 10:07:16 UTC (rev 2536)
+++ xfce4-cellmodem-plugin/trunk/po/pt.po 2007-03-12 18:27:37 UTC (rev 2537)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: xfce4-cellmodem-plugin 0.0.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-02 16:08+0000\n"
+"POT-Creation-Date: 2007-03-12 18:12+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Álvaro Lopes <alvieboy at alvie.com>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -16,11 +16,11 @@
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../panel-plugin/cellmodem.c:462
+#: ../panel-plugin/cellmodem.c:463
msgid "Initializing plugin now"
-msgstr ""
+msgstr "Inicializando o plug-in"
-#: ../panel-plugin/cellmodem.c:485
+#: ../panel-plugin/cellmodem.c:486
#, c-format
msgid ""
"Error detected:\n"
@@ -29,19 +29,19 @@
"Erro detectado:\n"
"%s"
-#: ../panel-plugin/cellmodem.c:491
+#: ../panel-plugin/cellmodem.c:492
msgid "Not registered"
msgstr "Não registrado na rede"
-#: ../panel-plugin/cellmodem.c:494
+#: ../panel-plugin/cellmodem.c:495
msgid "Modem needs PIN"
msgstr "Modem necessita de PIN"
-#: ../panel-plugin/cellmodem.c:497
+#: ../panel-plugin/cellmodem.c:498
msgid "Registering"
msgstr "A registrar na rede"
-#: ../panel-plugin/cellmodem.c:500
+#: ../panel-plugin/cellmodem.c:501
#, c-format
msgid ""
"Registered [GPRS] to %s\n"
@@ -50,7 +50,7 @@
"Registrado [GPRS] na rede %s\n"
"Qualidade: %d (%d%%)"
-#: ../panel-plugin/cellmodem.c:503
+#: ../panel-plugin/cellmodem.c:504
#, c-format
msgid ""
"Registered [UMTS] to %s\n"
@@ -59,7 +59,7 @@
"Registrado [UMTS] na rede %s\n"
"Qualidade: %d (%d%%)"
-#: ../panel-plugin/cellmodem.c:506
+#: ../panel-plugin/cellmodem.c:507
#, c-format
msgid ""
"Registered [HSDPA] to %s\n"
@@ -68,7 +68,7 @@
"Registrado [HSDPA] na rede %s\n"
"Qualidade: %d (%d%%)"
-#: ../panel-plugin/cellmodem.c:509
+#: ../panel-plugin/cellmodem.c:510
#, c-format
msgid ""
"Registered to %s\n"
@@ -78,90 +78,88 @@
"Qualidade: %d (%d%%)"
#. Error
-#: ../panel-plugin/cellmodem.c:667
+#: ../panel-plugin/cellmodem.c:668
msgid "Error in modem reply to CREG"
msgstr "Erro na resposta CREG do modem"
-#: ../panel-plugin/cellmodem.c:676
+#: ../panel-plugin/cellmodem.c:677
msgid "Invalid reply to +CREG"
msgstr "Resposta inválida a +CREG"
-#: ../panel-plugin/cellmodem.c:701
+#: ../panel-plugin/cellmodem.c:702
msgid "Invalid CREG reply from modem"
msgstr "Resposta CREG inválida"
-#: ../panel-plugin/cellmodem.c:739
+#: ../panel-plugin/cellmodem.c:740
msgid "Error in modem reply to COPS"
msgstr "Erro na resposta COPS do modem"
-#: ../panel-plugin/cellmodem.c:783
+#: ../panel-plugin/cellmodem.c:784
msgid "Invalid COPS reply from modem"
msgstr "Resposta COPS inválida"
-#: ../panel-plugin/cellmodem.c:811
+#: ../panel-plugin/cellmodem.c:812
msgid "Error in modem reply to CPIN"
msgstr "Erro na resposta CPIN do modem"
-#: ../panel-plugin/cellmodem.c:837
+#: ../panel-plugin/cellmodem.c:838
msgid "Invalid CPIN reply from modem"
msgstr "Resposta CPIN inválida"
-#: ../panel-plugin/cellmodem.c:842
+#: ../panel-plugin/cellmodem.c:843
msgid "Unsupportted CPIN reply from modem"
msgstr "Resposta CPIN não suportada"
-#: ../panel-plugin/cellmodem.c:886
-#, fuzzy
+#: ../panel-plugin/cellmodem.c:887
msgid "Invalid OHCIP reply from modem"
-msgstr "Resposta COPS inválida"
+msgstr "Resposta OHCIP inválida"
-#: ../panel-plugin/cellmodem.c:891
-#, fuzzy
+#: ../panel-plugin/cellmodem.c:892
msgid "Unsupportted OHCIP reply from modem"
-msgstr "Resposta CPIN não suportada"
+msgstr "Resposta OHCIP não suportada"
#. Error
-#: ../panel-plugin/cellmodem.c:904
+#: ../panel-plugin/cellmodem.c:905
msgid "Cannot send PIN to modem"
msgstr "Não foi possível introduzir o PIN no modem"
-#: ../panel-plugin/cellmodem.c:940
+#: ../panel-plugin/cellmodem.c:941
msgid "Error in modem reply to CSQ"
msgstr "Erro na resposta CSQ do modem"
-#: ../panel-plugin/cellmodem.c:960
+#: ../panel-plugin/cellmodem.c:961
msgid "Invalid CSQ reply from modem"
msgstr "Resposta CSQ inválida"
-#: ../panel-plugin/cellmodem.c:1084 ../panel-plugin/cellmodem.c:1398
+#: ../panel-plugin/cellmodem.c:1085 ../panel-plugin/cellmodem.c:1401
msgid "Cannot open modem"
msgstr "Não foi possível abrir o modem"
-#: ../panel-plugin/cellmodem.c:1228
+#: ../panel-plugin/cellmodem.c:1229
msgid "Error reading from modem"
msgstr "Erro ao ler do modem"
-#: ../panel-plugin/cellmodem.c:1305
+#: ../panel-plugin/cellmodem.c:1306
msgid "Error writing to modem"
msgstr "Erro ao escrever para o modem"
-#: ../panel-plugin/cellmodem.c:1321
+#: ../panel-plugin/cellmodem.c:1322
msgid "Modem did not reply to command"
msgstr "O modem não respondeu ao comando"
-#: ../panel-plugin/cellmodem.c:1339
+#: ../panel-plugin/cellmodem.c:1340
msgid "No driver defined"
msgstr "Não existe um controlador definido"
-#: ../panel-plugin/cellmodem.c:1344
+#: ../panel-plugin/cellmodem.c:1345
msgid "No modem instance"
msgstr "Não existe instância do modem"
-#: ../panel-plugin/cellmodem.c:1509
+#: ../panel-plugin/cellmodem.c:1512
msgid "Modem initializing"
msgstr "Modem a inicializar"
-#: ../panel-plugin/cellmodem.c:1544
+#: ../panel-plugin/cellmodem.c:1547
msgid "Invalid driver specified"
msgstr "Controlador inválido especificado"
@@ -178,47 +176,51 @@
msgid "Please enter PIN:"
msgstr "Por favor introduza o PIN:"
-#: ../panel-plugin/preferences.c:214
+#: ../panel-plugin/preferences.c:264
msgid "Close"
msgstr "Fechar"
-#: ../panel-plugin/preferences.c:219
+#: ../panel-plugin/preferences.c:269
msgid "No known device found."
msgstr "Não foi encontrado nenhum dispositivo conhecido"
-#: ../panel-plugin/preferences.c:221
+#: ../panel-plugin/preferences.c:271
msgid "The following devices were found:"
msgstr "Os seguintes dispositivos foram encontrados:"
-#: ../panel-plugin/preferences.c:228
+#: ../panel-plugin/preferences.c:278
msgid "Use this device"
msgstr "Usar este dispositivo"
-#: ../panel-plugin/preferences.c:272
+#: ../panel-plugin/preferences.c:322
msgid "Configure Cell Modem Monitor"
msgstr "Configurar o Monitor de Modem Celular"
#. The header - this was most copied from other sources
-#: ../panel-plugin/preferences.c:285
+#: ../panel-plugin/preferences.c:335
msgid "Cellular Modem Monitor"
msgstr "Monitor de Modem Celular"
-#: ../panel-plugin/preferences.c:316
+#: ../panel-plugin/preferences.c:366
msgid "Modem driver:"
msgstr "Controlador do modem:"
-#: ../panel-plugin/preferences.c:338
+#: ../panel-plugin/preferences.c:388
+msgid "Modem speed:"
+msgstr "Velocidade do Modem:"
+
+#: ../panel-plugin/preferences.c:400
msgid "Modem device:"
msgstr "Dispositivo do Modem:"
-#: ../panel-plugin/preferences.c:360
+#: ../panel-plugin/preferences.c:422
msgid "Maximum quality:"
msgstr "Qualidade máxima:"
-#: ../panel-plugin/preferences.c:371
+#: ../panel-plugin/preferences.c:433
msgid "Low quality percentage:"
msgstr "Percentagem para baixa qualidade:"
-#: ../panel-plugin/preferences.c:381
+#: ../panel-plugin/preferences.c:443
msgid "Critical quality percentage:"
msgstr "Percentagem para qualidade crítica:"
More information about the Goodies-commits
mailing list