Additional fixes (for the Openmoko Freerunner notably)

This commit is contained in:
Pierre Pronchery 2011-10-31 02:11:52 +00:00
parent 30cf6ac183
commit 29ac2ebb26
4 changed files with 103 additions and 71 deletions

124
po/fr.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Phone 0.0.0\n" "Project-Id-Version: Phone 0.0.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-10-31 01:13+0100\n" "POT-Creation-Date: 2011-10-31 03:11+0100\n"
"PO-Revision-Date: 2010-04-24 02:07+0200\n" "PO-Revision-Date: 2010-04-24 02:07+0200\n"
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n" "Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
"Language-Team: DeforaOS development (French) <devel-fr@lists.defora.org>\n" "Language-Team: DeforaOS development (French) <devel-fr@lists.defora.org>\n"
@ -47,11 +47,11 @@ msgstr "Brouillons"
msgid "Trash" msgid "Trash"
msgstr "Corbeille" msgstr "Corbeille"
#: ../src/phone.c:510 ../src/phone.c:2589 #: ../src/phone.c:510 ../src/phone.c:2591
msgid "System preferences" msgid "System preferences"
msgstr "Préférences système" msgstr "Préférences système"
#: ../src/phone.c:521 ../src/phone.c:2015 #: ../src/phone.c:521 ../src/phone.c:2017
msgid "Plug-ins" msgid "Plug-ins"
msgstr "Greffons" msgstr "Greffons"
@ -100,240 +100,240 @@ msgstr "Appel sortant"
msgid "Call finished" msgid "Call finished"
msgstr "Appel terminé" msgstr "Appel terminé"
#: ../src/phone.c:1475 #: ../src/phone.c:1476
msgid "_Answer" msgid "_Answer"
msgstr "_Répondre" msgstr "_Répondre"
#: ../src/phone.c:1480 #: ../src/phone.c:1481
msgid "_Hangup" msgid "_Hangup"
msgstr "Ra_ccrocher" msgstr "Ra_ccrocher"
#: ../src/phone.c:1485 #: ../src/phone.c:1486
msgid "_Reject" msgid "_Reject"
msgstr "Re_jeter" msgstr "Re_jeter"
#: ../src/phone.c:1505 #: ../src/phone.c:1507
msgid "Loudspeaker" msgid "Loudspeaker"
msgstr "Haut-parleur" msgstr "Haut-parleur"
#: ../src/phone.c:1513 #: ../src/phone.c:1515
msgid "Mute microphone" msgid "Mute microphone"
msgstr "Couper le microphone" msgstr "Couper le microphone"
#: ../src/phone.c:1521 #: ../src/phone.c:1523
msgid "Show dialer" msgid "Show dialer"
msgstr "Afficher le cadran" msgstr "Afficher le cadran"
#: ../src/phone.c:1562 #: ../src/phone.c:1564
#, c-format #, c-format
msgid "Enter %s" msgid "Enter %s"
msgstr "Entrer %s" msgstr "Entrer %s"
#: ../src/phone.c:1605 #: ../src/phone.c:1607
msgid "Enter" msgid "Enter"
msgstr "Entrer" msgstr "Entrer"
#: ../src/phone.c:1607 #: ../src/phone.c:1609
msgid "Skip" msgid "Skip"
msgstr "Ignorer" msgstr "Ignorer"
#: ../src/phone.c:1635 #: ../src/phone.c:1637
msgid "Contacts" msgid "Contacts"
msgstr "Contacts" msgstr "Contacts"
#: ../src/phone.c:1641 ../src/phone.c:1760 ../src/phone.c:1796 #: ../src/phone.c:1643 ../src/phone.c:1762 ../src/phone.c:1798
#: ../src/phone.c:1911 ../src/phone.c:2267 #: ../src/phone.c:1913 ../src/phone.c:2269
msgid "Call" msgid "Call"
msgstr "Appeler" msgstr "Appeler"
#: ../src/phone.c:1647 #: ../src/phone.c:1649
msgid "Write" msgid "Write"
msgstr "Écrire" msgstr "Écrire"
#: ../src/phone.c:1689 ../src/phone.c:2046 ../src/phone.c:2378 #: ../src/phone.c:1691 ../src/phone.c:2048 ../src/phone.c:2380
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: ../src/phone.c:1735 #: ../src/phone.c:1737
msgid "Dialer" msgid "Dialer"
msgstr "Composer" msgstr "Composer"
#: ../src/phone.c:1762 #: ../src/phone.c:1764
msgid "Hang up" msgid "Hang up"
msgstr "Raccrocher" msgstr "Raccrocher"
#: ../src/phone.c:1790 #: ../src/phone.c:1792
msgid "Phone logs" msgid "Phone logs"
msgstr "Journal d'appels" msgstr "Journal d'appels"
#: ../src/phone.c:1802 #: ../src/phone.c:1804
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
#: ../src/phone.c:1833 #: ../src/phone.c:1835
msgid "Direction" msgid "Direction"
msgstr "Direction" msgstr "Direction"
#: ../src/phone.c:1838 ../src/phone.c:1957 #: ../src/phone.c:1840 ../src/phone.c:1959
msgid "To/From" msgid "To/From"
msgstr "Vers/De" msgstr "Vers/De"
#: ../src/phone.c:1844 ../src/phone.c:1965 #: ../src/phone.c:1846 ../src/phone.c:1967
msgid "Date" msgid "Date"
msgstr "Date" msgstr "Date"
#: ../src/phone.c:1905 #: ../src/phone.c:1907
msgid "Messages" msgid "Messages"
msgstr "Messages" msgstr "Messages"
#: ../src/phone.c:1916 #: ../src/phone.c:1918
msgid "New message" msgid "New message"
msgstr "Nouveau message" msgstr "Nouveau message"
#: ../src/phone.c:1922 ../src/phone.c:2273 #: ../src/phone.c:1924 ../src/phone.c:2275
msgid "Reply" msgid "Reply"
msgstr "Répondre" msgstr "Répondre"
#: ../src/phone.c:2034 #: ../src/phone.c:2036
msgid "Enabled" msgid "Enabled"
msgstr "Activé" msgstr "Activé"
#: ../src/phone.c:2261 #: ../src/phone.c:2263
msgid "Read message" msgid "Read message"
msgstr "Lire le message" msgstr "Lire le message"
#: ../src/phone.c:2279 #: ../src/phone.c:2281
msgid "Forward" msgid "Forward"
msgstr "Transmettre" msgstr "Transmettre"
#: ../src/phone.c:2353 #: ../src/phone.c:2355
msgid "Phone settings" msgid "Phone settings"
msgstr "Paramètres du téléphone" msgstr "Paramètres du téléphone"
#: ../src/phone.c:2430 #: ../src/phone.c:2432
msgid "missed calls" msgid "missed calls"
msgstr "appels manqués" msgstr "appels manqués"
#: ../src/phone.c:2430 #: ../src/phone.c:2432
msgid "missed call" msgid "missed call"
msgstr "appel manqué" msgstr "appel manqué"
#: ../src/phone.c:2439 #: ../src/phone.c:2441
msgid "new messages" msgid "new messages"
msgstr "nouveaux messages" msgstr "nouveaux messages"
#: ../src/phone.c:2440 #: ../src/phone.c:2442
msgid "new message" msgid "new message"
msgstr "nouveau message" msgstr "nouveau message"
#: ../src/phone.c:2458 ../src/phone.c:3394 ../src/phone.c:3398 #: ../src/phone.c:2460 ../src/phone.c:3396 ../src/phone.c:3400
msgid "Information" msgid "Information"
msgstr "Information" msgstr "Information"
#: ../src/phone.c:2468 #: ../src/phone.c:2470
msgid "Status" msgid "Status"
msgstr "État" msgstr "État"
#: ../src/phone.c:2492 #: ../src/phone.c:2494
msgid "_View" msgid "_View"
msgstr "_Vue" msgstr "_Vue"
#: ../src/phone.c:2511 #: ../src/phone.c:2513
msgid "_Read" msgid "_Read"
msgstr "_Lire" msgstr "_Lire"
#: ../src/phone.c:2643 #: ../src/phone.c:2645
msgid "Open file..." msgid "Open file..."
msgstr "Ouvrir fichier..." msgstr "Ouvrir fichier..."
#: ../src/phone.c:2814 #: ../src/phone.c:2816
msgid "Write message" msgid "Write message"
msgstr "Écrire un message" msgstr "Écrire un message"
#: ../src/phone.c:2820 #: ../src/phone.c:2822
msgid "Send" msgid "Send"
msgstr "Envoyer" msgstr "Envoyer"
#: ../src/phone.c:2826 #: ../src/phone.c:2828
msgid "Attach" msgid "Attach"
msgstr "Joindre" msgstr "Joindre"
#: ../src/phone.c:2942 #: ../src/phone.c:2944
msgid "Attach file..." msgid "Attach file..."
msgstr "Joindre un fichier..." msgstr "Joindre un fichier..."
#: ../src/phone.c:3013 #: ../src/phone.c:3015
#, c-format #, c-format
msgid "%d message%s, %d/%d characters" msgid "%d message%s, %d/%d characters"
msgstr "%d message%s, %d/%d caractères" msgstr "%d message%s, %d/%d caractères"
#: ../src/phone.c:3014 #: ../src/phone.c:3016
msgid "s" msgid "s"
msgstr "s" msgstr "s"
#: ../src/phone.c:3078 #: ../src/phone.c:3080
msgid "Sending message..." msgid "Sending message..."
msgstr "Envoi du message..." msgstr "Envoi du message..."
#: ../src/phone.c:3113 #: ../src/phone.c:3115
msgid "Outgoing" msgid "Outgoing"
msgstr "Sortant" msgstr "Sortant"
#: ../src/phone.c:3299 #: ../src/phone.c:3301
msgid "Operation in progress..." msgid "Operation in progress..."
msgstr "Opération en cours..." msgstr "Opération en cours..."
#: ../src/phone.c:3339 ../src/phone.c:3343 #: ../src/phone.c:3341 ../src/phone.c:3345
msgid "Question" msgid "Question"
msgstr "Question" msgstr "Question"
#: ../src/phone.c:3363 ../src/phone.c:3367 #: ../src/phone.c:3365 ../src/phone.c:3369
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#: ../src/phone.c:3599 #: ../src/phone.c:3601
msgid "Name: " msgid "Name: "
msgstr "Nom: " msgstr "Nom: "
#: ../src/phone.c:3608 #: ../src/phone.c:3610
msgid "Number: " msgid "Number: "
msgstr "Numéro: " msgstr "Numéro: "
#: ../src/phone.c:3624 #: ../src/phone.c:3626
msgid "New contact" msgid "New contact"
msgstr "Nouveau contact" msgstr "Nouveau contact"
#: ../src/phone.c:3626 #: ../src/phone.c:3628
msgid "Edit contact: " msgid "Edit contact: "
msgstr "Modifier contact: " msgstr "Modifier contact: "
#: ../src/phone.c:3653 #: ../src/phone.c:3655
msgid "The name cannot be empty" msgid "The name cannot be empty"
msgstr "Le nom ne peut être vide" msgstr "Le nom ne peut être vide"
#: ../src/phone.c:3658 #: ../src/phone.c:3660
msgid "The number cannot be empty" msgid "The number cannot be empty"
msgstr "Le numéro ne peut être vide" msgstr "Le numéro ne peut être vide"
#: ../src/phone.c:3794 #: ../src/phone.c:3796
msgid "Message sent" msgid "Message sent"
msgstr "Message envoyé" msgstr "Message envoyé"
#: ../src/phone.c:3822 #: ../src/phone.c:3824
#, c-format #, c-format
msgid "Wrong %s" msgid "Wrong %s"
msgstr "Mauvais %s" msgstr "Mauvais %s"
#: ../src/phone.c:3831 #: ../src/phone.c:3833
#, c-format #, c-format
msgid "%s is valid" msgid "%s is valid"
msgstr "%s valide" msgstr "%s valide"
#: ../src/phone.c:3898 #: ../src/phone.c:3900
msgid "Raw data (not shown)" msgid "Raw data (not shown)"
msgstr "Données brutes (non affichées)" msgstr "Données brutes (non affichées)"
#: ../src/phone.c:3936 #: ../src/phone.c:3938
msgid "Message deleted" msgid "Message deleted"
msgstr "Message effacé" msgstr "Message effacé"

View File

@ -880,6 +880,12 @@ static char * _request_attention_call_hangup(ModemPlugin * modem)
_hayes_set_mode(modem, HAYES_MODE_INIT); _hayes_set_mode(modem, HAYES_MODE_INIT);
return NULL; return NULL;
} }
/* return "ATH" if currently ringing */
event = &hayes->events[MODEM_EVENT_TYPE_CALL];
if(event->call.direction == MODEM_CALL_DIRECTION_INCOMING
&& event->call.status == MODEM_CALL_STATUS_RINGING)
return strdup("ATH");
/* force all calls to terminate */
return strdup("AT+CHUP"); return strdup("AT+CHUP");
} }
@ -2988,12 +2994,15 @@ static void _on_trigger_clip(ModemPlugin * modem, char const * answer)
/* on_trigger_cme_error */ /* on_trigger_cme_error */
static void _on_trigger_cme_error(ModemPlugin * modem, char const * answer) static void _on_trigger_cme_error(ModemPlugin * modem, char const * answer)
{ {
ModemPluginHelper * helper = modem->helper;
Hayes * hayes = modem->priv; Hayes * hayes = modem->priv;
/* XXX ugly */ /* XXX ugly */
HayesCommand * command = (hayes->queue != NULL) ? hayes->queue->data HayesCommand * command = (hayes->queue != NULL) ? hayes->queue->data
: NULL; : NULL;
unsigned int u; unsigned int u;
HayesCommand * p; HayesCommand * p;
ModemEvent * event;
ModemRequest request;
if(command != NULL) if(command != NULL)
_hayes_command_set_status(command, HCS_ERROR); _hayes_command_set_status(command, HCS_ERROR);
@ -3018,6 +3027,20 @@ static void _on_trigger_cme_error(ModemPlugin * modem, char const * answer)
hayes->source = g_timeout_add(1000, hayes->source = g_timeout_add(1000,
_on_queue_timeout, modem); _on_queue_timeout, modem);
break; break;
case 32: /* emergency calls only */
event = &hayes->events[MODEM_EVENT_TYPE_REGISTRATION];
free(hayes->registration_operator);
hayes->registration_operator = strdup("SOS");
event->registration._operator
= hayes->registration_operator;
event->registration.status
= MODEM_REGISTRATION_STATUS_REGISTERED;
helper->event(helper->modem, event);
/* verify the SIM card */
memset(&request, 0, sizeof(request));
request.type = HAYES_REQUEST_SIM_PIN_VALID;
_hayes_request(modem, &request);
break;
default: /* FIXME implement the rest */ default: /* FIXME implement the rest */
case 4: /* operation not supported */ case 4: /* operation not supported */
case 16: /* Incorrect SIM PUK */ case 16: /* Incorrect SIM PUK */
@ -3561,6 +3584,7 @@ static void _on_trigger_cops(ModemPlugin * modem, char const * answer)
/* on_trigger_cpas */ /* on_trigger_cpas */
static void _on_trigger_cpas(ModemPlugin * modem, char const * answer) static void _on_trigger_cpas(ModemPlugin * modem, char const * answer)
{ {
ModemPluginHelper * helper = modem->helper;
Hayes * hayes = modem->priv; Hayes * hayes = modem->priv;
ModemEvent * event = &hayes->events[MODEM_EVENT_TYPE_CALL]; ModemEvent * event = &hayes->events[MODEM_EVENT_TYPE_CALL];
unsigned int u; unsigned int u;
@ -3577,12 +3601,12 @@ static void _on_trigger_cpas(ModemPlugin * modem, char const * answer)
event->connection.connected = 0; event->connection.connected = 0;
event->connection.in = 0; event->connection.in = 0;
event->connection.out = 0; event->connection.out = 0;
modem->helper->event(modem->helper->modem, event); helper->event(helper->modem, event);
break; break;
case 3: case 3:
event->call.status = MODEM_CALL_STATUS_RINGING; event->call.status = MODEM_CALL_STATUS_RINGING;
/* report event */ /* report event */
modem->helper->event(modem->helper->modem, event); helper->event(helper->modem, event);
break; break;
case 4: case 4:
event->call.status = MODEM_CALL_STATUS_ACTIVE; event->call.status = MODEM_CALL_STATUS_ACTIVE;
@ -3678,10 +3702,15 @@ static void _on_trigger_creg(ModemPlugin * modem, char const * answer)
ModemRequest request; ModemRequest request;
res = sscanf(answer, "%u,%u,%X,%X", &u[0], &u[1], &u[2], &u[3]); res = sscanf(answer, "%u,%u,%X,%X", &u[0], &u[1], &u[2], &u[3]);
if(res == 1)
res = sscanf(answer, "%u,\"%X\",\"%X\"", &u[1], &u[2], &u[3]);
else if(res == 2)
res = sscanf(answer, "%u,%u,\"%X\",\"%X\"", &u[0], &u[1], &u[2],
&u[3]);
else if(res == 3)
res = sscanf(answer, "%u,%X,%X", &u[1], &u[2], &u[3]);
if(res == 0) if(res == 0)
return; return;
if(res == 1 || res == 3)
memmove(&u[1], u, sizeof(*u) * 3);
u[0] = event->registration.mode; u[0] = event->registration.mode;
event->registration.roaming = 0; event->registration.roaming = 0;
switch(u[1]) switch(u[1])

View File

@ -1471,26 +1471,28 @@ static void _show_call_window(Phone * phone)
phone->ca_number = gtk_label_new(NULL); phone->ca_number = gtk_label_new(NULL);
gtk_box_pack_start(GTK_BOX(vbox), phone->ca_number, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), phone->ca_number, FALSE, TRUE, 0);
/* buttons */ /* buttons */
hbox = gtk_hbox_new(FALSE, 4);
/* answer */ /* answer */
phone->ca_answer = _phone_create_button("call-start", _("_Answer")); phone->ca_answer = _phone_create_button("call-start", _("_Answer"));
g_signal_connect_swapped(G_OBJECT(phone->ca_answer), "clicked", g_signal_connect_swapped(G_OBJECT(phone->ca_answer), "clicked",
G_CALLBACK(on_phone_call_answer), phone); G_CALLBACK(on_phone_call_answer), phone);
gtk_box_pack_start(GTK_BOX(vbox), phone->ca_answer, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_answer, TRUE, TRUE, 0);
/* hangup */ /* hangup */
phone->ca_hangup = _phone_create_button("call-stop", _("_Hangup")); phone->ca_hangup = _phone_create_button("call-stop", _("_Hangup"));
g_signal_connect_swapped(G_OBJECT(phone->ca_hangup), "clicked", g_signal_connect_swapped(G_OBJECT(phone->ca_hangup), "clicked",
G_CALLBACK(on_phone_call_hangup), phone); G_CALLBACK(on_phone_call_hangup), phone);
gtk_box_pack_start(GTK_BOX(vbox), phone->ca_hangup, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_hangup, TRUE, TRUE, 0);
/* reject */ /* reject */
phone->ca_reject = _phone_create_button("call-stop", _("_Reject")); phone->ca_reject = _phone_create_button("call-stop", _("_Reject"));
g_signal_connect_swapped(G_OBJECT(phone->ca_reject), "clicked", g_signal_connect_swapped(G_OBJECT(phone->ca_reject), "clicked",
G_CALLBACK(on_phone_call_reject), phone); G_CALLBACK(on_phone_call_reject), phone);
gtk_box_pack_start(GTK_BOX(vbox), phone->ca_reject, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_reject, TRUE, TRUE, 0);
/* close */ /* close */
phone->ca_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE); phone->ca_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
g_signal_connect_swapped(G_OBJECT(phone->ca_close), "clicked", g_signal_connect_swapped(G_OBJECT(phone->ca_close), "clicked",
G_CALLBACK(on_phone_call_close), phone); G_CALLBACK(on_phone_call_close), phone);
gtk_box_pack_start(GTK_BOX(vbox), phone->ca_close, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_close, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
/* volume bar */ /* volume bar */
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
phone->ca_image = gtk_image_new_from_icon_name( phone->ca_image = gtk_image_new_from_icon_name(

View File

@ -258,7 +258,8 @@ static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event)
if(direction == MODEM_CALL_DIRECTION_INCOMING if(direction == MODEM_CALL_DIRECTION_INCOMING
&& status == MODEM_CALL_STATUS_RINGING) && status == MODEM_CALL_STATUS_RINGING)
_profiles_play(plugin, "ringtone", 10); _profiles_play(plugin, "ringtone", 10);
else if(status == MODEM_CALL_STATUS_NONE) else if(status == MODEM_CALL_STATUS_NONE
|| status == MODEM_CALL_STATUS_ACTIVE)
_profiles_play(plugin, NULL, 0); _profiles_play(plugin, NULL, 0);
break; break;
default: default: