Ironing bugs out

This commit is contained in:
Pierre Pronchery 2011-08-21 14:04:57 +00:00
parent 0a1136f569
commit 5c1abb94e2
11 changed files with 167 additions and 99 deletions

View File

@ -54,7 +54,6 @@ typedef enum _PhoneEventType
PHONE_EVENT_TYPE_OFFLINE, PHONE_EVENT_TYPE_OFFLINE,
PHONE_EVENT_TYPE_ONLINE, PHONE_EVENT_TYPE_ONLINE,
PHONE_EVENT_TYPE_RESUME, PHONE_EVENT_TYPE_RESUME,
PHONE_EVENT_TYPE_SET_VOLUME,
PHONE_EVENT_TYPE_SMS_RECEIVING, /* char const *, GSMEncoding *, PHONE_EVENT_TYPE_SMS_RECEIVING, /* char const *, GSMEncoding *,
char **, size_t * */ char **, size_t * */
PHONE_EVENT_TYPE_SMS_SENDING, /* char const *, GSMEncoding *, PHONE_EVENT_TYPE_SMS_SENDING, /* char const *, GSMEncoding *,
@ -66,7 +65,9 @@ typedef enum _PhoneEventType
PHONE_EVENT_TYPE_STOPPING, PHONE_EVENT_TYPE_STOPPING,
PHONE_EVENT_TYPE_SUSPEND, PHONE_EVENT_TYPE_SUSPEND,
PHONE_EVENT_TYPE_VIBRATOR_OFF, PHONE_EVENT_TYPE_VIBRATOR_OFF,
PHONE_EVENT_TYPE_VIBRATOR_ON PHONE_EVENT_TYPE_VIBRATOR_ON,
PHONE_EVENT_TYPE_VOLUME_GET,
PHONE_EVENT_TYPE_VOLUME_SET
} PhoneEventType; } PhoneEventType;
typedef union _PhoneEvent typedef union _PhoneEvent
@ -80,12 +81,12 @@ typedef union _PhoneEvent
ModemEvent * event; ModemEvent * event;
} modem_event; } modem_event;
/* PHONE_EVENT_TYPE_VOLUME_SET */ /* PHONE_EVENT_TYPE_VOLUME_GET, PHONE_EVENT_TYPE_VOLUME_SET */
struct struct
{ {
PhoneEventType type; PhoneEventType type;
double level; double level;
} volume_set; } volume_get, volume_set;
} PhoneEvent; } PhoneEvent;
typedef enum _PhoneMessage typedef enum _PhoneMessage

134
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-08-21 03:06+0200\n" "POT-Creation-Date: 2011-08-21 15:59+0200\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:509 ../src/phone.c:2511 #: ../src/phone.c:509 ../src/phone.c:2522
msgid "System preferences" msgid "System preferences"
msgstr "Préférences système" msgstr "Préférences système"
#: ../src/phone.c:520 ../src/phone.c:1940 #: ../src/phone.c:520 ../src/phone.c:1951
msgid "Plug-ins" msgid "Plug-ins"
msgstr "Greffons" msgstr "Greffons"
@ -72,260 +72,260 @@ msgstr "Supprimer ce message?"
msgid "Deleting message..." msgid "Deleting message..."
msgstr "Suppression du message..." msgstr "Suppression du message..."
#: ../src/phone.c:1326 #: ../src/phone.c:1335
msgid "Unknown contact" msgid "Unknown contact"
msgstr "Contact inconnu" msgstr "Contact inconnu"
#: ../src/phone.c:1333 #: ../src/phone.c:1342
msgid "Unknown number" msgid "Unknown number"
msgstr "Numéro inconnu" msgstr "Numéro inconnu"
#: ../src/phone.c:1345 #: ../src/phone.c:1354
msgid "In conversation" msgid "In conversation"
msgstr "En conversation" msgstr "En conversation"
#: ../src/phone.c:1356 #: ../src/phone.c:1365
msgid "Incoming call" msgid "Incoming call"
msgstr "Appel entrant" msgstr "Appel entrant"
#: ../src/phone.c:1366 #: ../src/phone.c:1375
msgid "Outgoing call" msgid "Outgoing call"
msgstr "Appel sortant" msgstr "Appel sortant"
#: ../src/phone.c:1377 #: ../src/phone.c:1386
msgid "Call finished" msgid "Call finished"
msgstr "Appel terminé" msgstr "Appel terminé"
#: ../src/phone.c:1407 #: ../src/phone.c:1418
msgid "_Answer" msgid "_Answer"
msgstr "_Répondre" msgstr "_Répondre"
#: ../src/phone.c:1412 #: ../src/phone.c:1423
msgid "_Hangup" msgid "_Hangup"
msgstr "Ra_ccrocher" msgstr "Ra_ccrocher"
#: ../src/phone.c:1417 #: ../src/phone.c:1428
msgid "_Reject" msgid "_Reject"
msgstr "Re_jeter" msgstr "Re_jeter"
#: ../src/phone.c:1437 #: ../src/phone.c:1448
msgid "Loudspeaker" msgid "Loudspeaker"
msgstr "Haut-parleur" msgstr "Haut-parleur"
#: ../src/phone.c:1445 #: ../src/phone.c:1456
msgid "Mute microphone" msgid "Mute microphone"
msgstr "Couper le microphone" msgstr "Couper le microphone"
#: ../src/phone.c:1487 #: ../src/phone.c:1498
#, c-format #, c-format
msgid "Enter %s" msgid "Enter %s"
msgstr "Entrer %s" msgstr "Entrer %s"
#: ../src/phone.c:1530 #: ../src/phone.c:1541
msgid "Enter" msgid "Enter"
msgstr "Entrer" msgstr "Entrer"
#: ../src/phone.c:1532 #: ../src/phone.c:1543
msgid "Skip" msgid "Skip"
msgstr "Ignorer" msgstr "Ignorer"
#: ../src/phone.c:1560 #: ../src/phone.c:1571
msgid "Contacts" msgid "Contacts"
msgstr "Contacts" msgstr "Contacts"
#: ../src/phone.c:1566 ../src/phone.c:1685 ../src/phone.c:1721 #: ../src/phone.c:1577 ../src/phone.c:1696 ../src/phone.c:1732
#: ../src/phone.c:1836 ../src/phone.c:2192 #: ../src/phone.c:1847 ../src/phone.c:2203
msgid "Call" msgid "Call"
msgstr "Appeler" msgstr "Appeler"
#: ../src/phone.c:1572 #: ../src/phone.c:1583
msgid "Write" msgid "Write"
msgstr "Écrire" msgstr "Écrire"
#: ../src/phone.c:1614 ../src/phone.c:1971 ../src/phone.c:2303 #: ../src/phone.c:1625 ../src/phone.c:1982 ../src/phone.c:2314
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: ../src/phone.c:1660 #: ../src/phone.c:1671
msgid "Dialer" msgid "Dialer"
msgstr "Composer" msgstr "Composer"
#: ../src/phone.c:1687 #: ../src/phone.c:1698
msgid "Hang up" msgid "Hang up"
msgstr "Raccrocher" msgstr "Raccrocher"
#: ../src/phone.c:1715 #: ../src/phone.c:1726
msgid "Phone logs" msgid "Phone logs"
msgstr "Journal d'appels" msgstr "Journal d'appels"
#: ../src/phone.c:1727 #: ../src/phone.c:1738
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
#: ../src/phone.c:1758 #: ../src/phone.c:1769
msgid "Direction" msgid "Direction"
msgstr "Direction" msgstr "Direction"
#: ../src/phone.c:1763 ../src/phone.c:1882 #: ../src/phone.c:1774 ../src/phone.c:1893
msgid "To/From" msgid "To/From"
msgstr "Vers/De" msgstr "Vers/De"
#: ../src/phone.c:1769 ../src/phone.c:1890 #: ../src/phone.c:1780 ../src/phone.c:1901
msgid "Date" msgid "Date"
msgstr "Date" msgstr "Date"
#: ../src/phone.c:1830 #: ../src/phone.c:1841
msgid "Messages" msgid "Messages"
msgstr "Messages" msgstr "Messages"
#: ../src/phone.c:1841 #: ../src/phone.c:1852
msgid "New message" msgid "New message"
msgstr "Nouveau message" msgstr "Nouveau message"
#: ../src/phone.c:1847 ../src/phone.c:2198 #: ../src/phone.c:1858 ../src/phone.c:2209
msgid "Reply" msgid "Reply"
msgstr "Répondre" msgstr "Répondre"
#: ../src/phone.c:1959 #: ../src/phone.c:1970
msgid "Enabled" msgid "Enabled"
msgstr "Activé" msgstr "Activé"
#: ../src/phone.c:2186 #: ../src/phone.c:2197
msgid "Read message" msgid "Read message"
msgstr "Lire le message" msgstr "Lire le message"
#: ../src/phone.c:2204 #: ../src/phone.c:2215
msgid "Forward" msgid "Forward"
msgstr "Transmettre" msgstr "Transmettre"
#: ../src/phone.c:2278 #: ../src/phone.c:2289
msgid "Phone settings" msgid "Phone settings"
msgstr "Paramètres du téléphone" msgstr "Paramètres du téléphone"
#: ../src/phone.c:2355 #: ../src/phone.c:2366
msgid "missed calls" msgid "missed calls"
msgstr "appels manqués" msgstr "appels manqués"
#: ../src/phone.c:2355 #: ../src/phone.c:2366
msgid "missed call" msgid "missed call"
msgstr "appel manqué" msgstr "appel manqué"
#: ../src/phone.c:2364 #: ../src/phone.c:2375
msgid "new messages" msgid "new messages"
msgstr "nouveaux messages" msgstr "nouveaux messages"
#: ../src/phone.c:2365 #: ../src/phone.c:2376
msgid "new message" msgid "new message"
msgstr "nouveau message" msgstr "nouveau message"
#: ../src/phone.c:2383 ../src/phone.c:3288 ../src/phone.c:3292 #: ../src/phone.c:2394 ../src/phone.c:3299 ../src/phone.c:3303
msgid "Information" msgid "Information"
msgstr "Information" msgstr "Information"
#: ../src/phone.c:2393 #: ../src/phone.c:2404
msgid "Status" msgid "Status"
msgstr "État" msgstr "État"
#: ../src/phone.c:2417 #: ../src/phone.c:2428
msgid "_View" msgid "_View"
msgstr "_Vue" msgstr "_Vue"
#: ../src/phone.c:2436 #: ../src/phone.c:2447
msgid "_Read" msgid "_Read"
msgstr "_Lire" msgstr "_Lire"
#: ../src/phone.c:2537 #: ../src/phone.c:2548
msgid "Open file..." msgid "Open file..."
msgstr "Ouvrir fichier..." msgstr "Ouvrir fichier..."
#: ../src/phone.c:2723 #: ../src/phone.c:2734
msgid "Write message" msgid "Write message"
msgstr "Écrire un message" msgstr "Écrire un message"
#: ../src/phone.c:2729 #: ../src/phone.c:2740
msgid "Send" msgid "Send"
msgstr "Envoyer" msgstr "Envoyer"
#: ../src/phone.c:2735 #: ../src/phone.c:2746
msgid "Attach" msgid "Attach"
msgstr "Joindre" msgstr "Joindre"
#: ../src/phone.c:2851 #: ../src/phone.c:2862
msgid "Attach file..." msgid "Attach file..."
msgstr "Joindre un fichier..." msgstr "Joindre un fichier..."
#: ../src/phone.c:2922 #: ../src/phone.c:2933
#, 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:2923 #: ../src/phone.c:2934
msgid "s" msgid "s"
msgstr "s" msgstr "s"
#: ../src/phone.c:2987 #: ../src/phone.c:2998
msgid "Sending message..." msgid "Sending message..."
msgstr "Envoi du message..." msgstr "Envoi du message..."
#: ../src/phone.c:3016 #: ../src/phone.c:3027
msgid "Outgoing" msgid "Outgoing"
msgstr "Sortant" msgstr "Sortant"
#: ../src/phone.c:3202 #: ../src/phone.c:3213
msgid "Operation in progress..." msgid "Operation in progress..."
msgstr "Opération en cours..." msgstr "Opération en cours..."
#: ../src/phone.c:3240 ../src/phone.c:3244 #: ../src/phone.c:3251 ../src/phone.c:3255
msgid "Question" msgid "Question"
msgstr "Question" msgstr "Question"
#: ../src/phone.c:3264 ../src/phone.c:3268 #: ../src/phone.c:3275 ../src/phone.c:3279
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#: ../src/phone.c:3494 #: ../src/phone.c:3505
msgid "Name: " msgid "Name: "
msgstr "Nom: " msgstr "Nom: "
#: ../src/phone.c:3503 #: ../src/phone.c:3514
msgid "Number: " msgid "Number: "
msgstr "Numéro: " msgstr "Numéro: "
#: ../src/phone.c:3519 #: ../src/phone.c:3530
msgid "New contact" msgid "New contact"
msgstr "Nouveau contact" msgstr "Nouveau contact"
#: ../src/phone.c:3521 #: ../src/phone.c:3532
msgid "Edit contact: " msgid "Edit contact: "
msgstr "Modifier contact: " msgstr "Modifier contact: "
#: ../src/phone.c:3548 #: ../src/phone.c:3559
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:3553 #: ../src/phone.c:3564
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:3689 #: ../src/phone.c:3700
msgid "Message sent" msgid "Message sent"
msgstr "Message envoyé" msgstr "Message envoyé"
#: ../src/phone.c:3725 #: ../src/phone.c:3736
#, c-format #, c-format
msgid "Wrong %s" msgid "Wrong %s"
msgstr "Mauvais %s" msgstr "Mauvais %s"
#: ../src/phone.c:3732 #: ../src/phone.c:3743
#, c-format #, c-format
msgid "%s is valid" msgid "%s is valid"
msgstr "%s valide" msgstr "%s valide"
#: ../src/phone.c:3795 #: ../src/phone.c:3806
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:3828 #: ../src/phone.c:3839
msgid "Message deleted" msgid "Message deleted"
msgstr "Message effacé" msgstr "Message effacé"

View File

@ -33,6 +33,7 @@ typedef struct _Debug
/* widgets */ /* widgets */
GtkWidget * window; GtkWidget * window;
GtkWidget * status; GtkWidget * status;
GtkWidget * operator;
GtkWidget * number; GtkWidget * number;
GtkWidget * folder; GtkWidget * folder;
GtkWidget * message; GtkWidget * message;
@ -57,6 +58,7 @@ static void _debug_set_status(ModemPlugin * modem, char const * status);
/* callbacks */ /* callbacks */
static gboolean _debug_on_closex(gpointer data); static gboolean _debug_on_closex(gpointer data);
static void _debug_on_message_send(gpointer data); static void _debug_on_message_send(gpointer data);
static void _debug_on_operator_set(gpointer data);
/* public */ /* public */
@ -112,9 +114,20 @@ static int _debug_init(ModemPlugin * modem)
gtk_misc_set_alignment(GTK_MISC(debug->status), 0.0, 0.5); gtk_misc_set_alignment(GTK_MISC(debug->status), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), debug->status, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), debug->status, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
/* operator */
hbox = gtk_hbox_new(FALSE, 4);
widget = gtk_label_new("Operator: ");
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
gtk_size_group_add_widget(group, widget);
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
debug->operator = gtk_entry_new();
g_signal_connect_swapped(debug->operator, "activate", G_CALLBACK(
_debug_on_operator_set), modem);
gtk_box_pack_start(GTK_BOX(hbox), debug->operator, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
/* message */ /* message */
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
widget = gtk_label_new("Number:"); widget = gtk_label_new("Number: ");
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
gtk_size_group_add_widget(group, widget); gtk_size_group_add_widget(group, widget);
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
@ -122,7 +135,7 @@ static int _debug_init(ModemPlugin * modem)
gtk_box_pack_start(GTK_BOX(hbox), debug->number, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), debug->number, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
widget = gtk_label_new("Folder:"); widget = gtk_label_new("Folder: ");
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
gtk_size_group_add_widget(group, widget); gtk_size_group_add_widget(group, widget);
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
@ -276,7 +289,7 @@ static gboolean _debug_on_closex(gpointer data)
Debug * debug = modem->priv; Debug * debug = modem->priv;
gtk_widget_hide(debug->window); gtk_widget_hide(debug->window);
/* FIXME tell the application we're closing */ gtk_main_quit();
return TRUE; return TRUE;
} }
@ -309,3 +322,20 @@ static void _debug_on_message_send(gpointer data)
modem->helper->event(modem->helper->modem, &debug->event_message); modem->helper->event(modem->helper->modem, &debug->event_message);
g_free(content); g_free(content);
} }
/* debug_on_operator_set */
static void _debug_on_operator_set(gpointer data)
{
ModemPlugin * modem = data;
Debug * debug = modem->priv;
ModemEvent event;
char const * p;
memset(&event, 0, sizeof(event));
p = gtk_entry_get_text(GTK_ENTRY(debug->operator));
event.type = MODEM_EVENT_TYPE_REGISTRATION;
event.registration.status = MODEM_REGISTRATION_STATUS_REGISTERED;
event.registration._operator = p;
modem->helper->event(modem->helper->modem, &event);
}

View File

@ -1127,7 +1127,7 @@ static void _hayes_set_mode(ModemPlugin * modem, HayesMode mode)
event = &hayes->events[MODEM_EVENT_TYPE_REGISTRATION]; event = &hayes->events[MODEM_EVENT_TYPE_REGISTRATION];
free(hayes->registration_media); free(hayes->registration_media);
hayes->registration_media = NULL; hayes->registration_media = NULL;
event->registration.media = hayes->registration_media; event->registration.media = NULL;
/* reset modem */ /* reset modem */
_hayes_reset(modem); _hayes_reset(modem);
break; break;

View File

@ -632,7 +632,7 @@ void phone_call_set_volume(Phone * phone, gdouble volume)
PhoneEvent event; PhoneEvent event;
memset(&event, 0, sizeof(event)); memset(&event, 0, sizeof(event));
event.type = PHONE_EVENT_TYPE_SET_VOLUME; event.type = PHONE_EVENT_TYPE_VOLUME_SET;
event.volume_set.level = volume; event.volume_set.level = volume;
phone_event(phone, &event); phone_event(phone, &event);
} }
@ -1301,6 +1301,7 @@ void phone_show_call(Phone * phone, gboolean show, ...)
PhoneCall call; PhoneCall call;
char const * name = NULL; char const * name = NULL;
char const * number = NULL; char const * number = NULL;
PhoneEvent event;
if(show == FALSE) if(show == FALSE)
{ {
@ -1319,6 +1320,14 @@ void phone_show_call(Phone * phone, gboolean show, ...)
if(phone->ca_window == NULL) if(phone->ca_window == NULL)
_show_call_window(phone); _show_call_window(phone);
phone_show_dialer(phone, FALSE); phone_show_dialer(phone, FALSE);
/* get the current volume */
memset(&event, 0, sizeof(event));
event.type = PHONE_EVENT_TYPE_VOLUME_GET;
event.volume_get.level = gtk_range_get_value(GTK_RANGE(
phone->ca_volume));
if(phone_event(phone, &event) == 0)
gtk_range_set_value(GTK_RANGE(phone->ca_volume),
event.volume_get.level);
if(name != NULL) if(name != NULL)
{ {
if(name[0] == '\0') if(name[0] == '\0')
@ -1394,6 +1403,8 @@ static void _show_call_window(Phone * phone)
#if GTK_CHECK_VERSION(2, 6, 0) #if GTK_CHECK_VERSION(2, 6, 0)
gtk_window_set_icon_name(GTK_WINDOW(phone->ca_window), "call-start"); gtk_window_set_icon_name(GTK_WINDOW(phone->ca_window), "call-start");
#endif #endif
g_signal_connect(phone->ca_window, "delete-event", G_CALLBACK(
on_phone_closex), NULL);
vbox = gtk_vbox_new(FALSE, 4); vbox = gtk_vbox_new(FALSE, 4);
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
/* party */ /* party */
@ -1429,8 +1440,8 @@ static void _show_call_window(Phone * phone)
"audio-volume-muted", GTK_ICON_SIZE_BUTTON); "audio-volume-muted", GTK_ICON_SIZE_BUTTON);
gtk_box_pack_start(GTK_BOX(hbox), phone->ca_image, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_image, FALSE, TRUE, 0);
phone->ca_volume = gtk_hscale_new_with_range(0.0, 1.0, 0.02); phone->ca_volume = gtk_hscale_new_with_range(0.0, 1.0, 0.02);
g_signal_connect(G_OBJECT(phone->ca_volume), "value-changed", g_signal_connect(phone->ca_volume, "value-changed", G_CALLBACK(
G_CALLBACK(on_phone_call_volume), phone); on_phone_call_volume), phone);
gtk_box_pack_start(GTK_BOX(hbox), phone->ca_volume, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), phone->ca_volume, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
/* speaker mode */ /* speaker mode */
@ -2433,7 +2444,7 @@ static void _show_status_window(Phone * phone)
gtk_misc_set_alignment(GTK_MISC(phone->st_lmessages), 0.0, 0.5); gtk_misc_set_alignment(GTK_MISC(phone->st_lmessages), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(phone->st_messages_box), phone->st_lmessages, gtk_box_pack_start(GTK_BOX(phone->st_messages_box), phone->st_lmessages,
TRUE, TRUE, 0); TRUE, TRUE, 0);
widget = _phone_create_button("stock_inbox", _("_Read")); widget = _phone_create_button("phone-inbox", _("_Read"));
gtk_size_group_add_widget(group2, widget); gtk_size_group_add_widget(group2, widget);
g_signal_connect_swapped(G_OBJECT(widget), "clicked", G_CALLBACK( g_signal_connect_swapped(G_OBJECT(widget), "clicked", G_CALLBACK(
_status_on_messages_read), phone); _status_on_messages_read), phone);

View File

@ -73,7 +73,7 @@ openmoko.so: $(openmoko_OBJS)
oss_OBJS = oss.o oss_OBJS = oss.o
oss_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) oss_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
oss_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) oss_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -lossaudio
oss.so: $(oss_OBJS) oss.so: $(oss_OBJS)
$(LD) -o oss.so $(oss_OBJS) $(oss_LDFLAGS) $(LD) -o oss.so $(oss_OBJS) $(oss_LDFLAGS)
@ -168,6 +168,8 @@ install: $(TARGETS)
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
$(INSTALL) -m 0644 -- openmoko.so $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so $(INSTALL) -m 0644 -- openmoko.so $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
$(INSTALL) -m 0644 -- oss.so $(DESTDIR)$(LIBDIR)/Phone/plugins/oss.so
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
$(INSTALL) -m 0644 -- panel.so $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so $(INSTALL) -m 0644 -- panel.so $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
$(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins
$(INSTALL) -m 0644 -- profiles.so $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so $(INSTALL) -m 0644 -- profiles.so $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so
@ -185,6 +187,7 @@ uninstall:
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/locker.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/locker.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/n900.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/n900.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/openmoko.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/oss.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/smscrypt.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/smscrypt.so

View File

@ -67,7 +67,6 @@ static DebugPhoneEvents _debug_phone_events[] =
{ PHONE_EVENT_TYPE_OFFLINE, "OFFLINE" }, { PHONE_EVENT_TYPE_OFFLINE, "OFFLINE" },
{ PHONE_EVENT_TYPE_ONLINE, "ONLINE" }, { PHONE_EVENT_TYPE_ONLINE, "ONLINE" },
{ PHONE_EVENT_TYPE_RESUME, "RESUME" }, { PHONE_EVENT_TYPE_RESUME, "RESUME" },
{ PHONE_EVENT_TYPE_SET_VOLUME, "SET_VOLUME" },
{ PHONE_EVENT_TYPE_SMS_RECEIVING, "SMS_RECEIVING" }, { PHONE_EVENT_TYPE_SMS_RECEIVING, "SMS_RECEIVING" },
{ PHONE_EVENT_TYPE_SMS_SENDING, "SMS_SENDING" }, { PHONE_EVENT_TYPE_SMS_SENDING, "SMS_SENDING" },
{ PHONE_EVENT_TYPE_SMS_SENT, "SMS_SENT" }, { PHONE_EVENT_TYPE_SMS_SENT, "SMS_SENT" },
@ -77,6 +76,8 @@ static DebugPhoneEvents _debug_phone_events[] =
{ PHONE_EVENT_TYPE_SUSPEND, "SUSPEND" }, { PHONE_EVENT_TYPE_SUSPEND, "SUSPEND" },
{ PHONE_EVENT_TYPE_VIBRATOR_OFF, "VIBRATOR_OFF" }, { PHONE_EVENT_TYPE_VIBRATOR_OFF, "VIBRATOR_OFF" },
{ PHONE_EVENT_TYPE_VIBRATOR_ON, "VIBRATOR_ON" }, { PHONE_EVENT_TYPE_VIBRATOR_ON, "VIBRATOR_ON" },
{ PHONE_EVENT_TYPE_VOLUME_GET, "VOLUME_GET" },
{ PHONE_EVENT_TYPE_VOLUME_SET, "VOLUME_SET" },
{ 0, NULL }, { 0, NULL },
}; };

View File

@ -172,17 +172,6 @@ static int _openmoko_event(PhonePlugin * plugin, PhoneEvent * event)
_openmoko_queue(plugin, "AT%CNIV=1"); _openmoko_queue(plugin, "AT%CNIV=1");
#endif #endif
break; break;
#if 0
case PHONE_EVENT_GET_VOLUME:
va_start(ap, event);
plevel = va_arg(ap, gdouble *);
va_end(ap);
_event_volume_get(plugin, plevel);
break;
#endif
case PHONE_EVENT_TYPE_SET_VOLUME:
_event_volume_set(plugin, event->volume_set.level);
break;
case PHONE_EVENT_TYPE_SPEAKER_ON: case PHONE_EVENT_TYPE_SPEAKER_ON:
/* XXX assumes there's an ongoing call */ /* XXX assumes there's an ongoing call */
_event_mixer_set(plugin, "gsmspeakerout.state"); _event_mixer_set(plugin, "gsmspeakerout.state");
@ -215,6 +204,12 @@ static int _openmoko_event(PhonePlugin * plugin, PhoneEvent * event)
case PHONE_EVENT_TYPE_VIBRATOR_ON: case PHONE_EVENT_TYPE_VIBRATOR_ON:
_event_vibrator(plugin, TRUE); _event_vibrator(plugin, TRUE);
break; break;
case PHONE_EVENT_TYPE_VOLUME_GET:
_event_volume_get(plugin, &event->volume_get.level);
break;
case PHONE_EVENT_TYPE_VOLUME_SET:
_event_volume_set(plugin, event->volume_set.level);
break;
default: /* not relevant */ default: /* not relevant */
break; break;
} }

View File

@ -63,7 +63,7 @@ static void _oss_settings(PhonePlugin * plugin);
PhonePlugin plugin = PhonePlugin plugin =
{ {
NULL, NULL,
"Audio settings", "OSS audio",
"audio-x-generic", "audio-x-generic",
_oss_init, _oss_init,
_oss_destroy, _oss_destroy,
@ -106,6 +106,7 @@ static int _oss_destroy(PhonePlugin * plugin)
/* oss_event */ /* oss_event */
static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event); static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event);
static int _event_volume_get(PhonePlugin * plugin, gdouble * level);
static int _event_volume_set(PhonePlugin * plugin, gdouble level); static int _event_volume_set(PhonePlugin * plugin, gdouble level);
static int _oss_event(PhonePlugin * plugin, PhoneEvent * event) static int _oss_event(PhonePlugin * plugin, PhoneEvent * event)
@ -115,7 +116,10 @@ static int _oss_event(PhonePlugin * plugin, PhoneEvent * event)
case PHONE_EVENT_TYPE_MODEM_EVENT: case PHONE_EVENT_TYPE_MODEM_EVENT:
return _event_modem_event(plugin, return _event_modem_event(plugin,
event->modem_event.event); event->modem_event.event);
case PHONE_EVENT_TYPE_SET_VOLUME: case PHONE_EVENT_TYPE_VOLUME_GET:
return _event_volume_get(plugin,
&event->volume_get.level);
case PHONE_EVENT_TYPE_VOLUME_SET:
return _event_volume_set(plugin, return _event_volume_set(plugin,
event->volume_set.level); event->volume_set.level);
default: /* not relevant */ default: /* not relevant */
@ -147,6 +151,26 @@ static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event)
return 0; return 0;
} }
static int _event_volume_get(PhonePlugin * plugin, gdouble * level)
{
int ret = 0;
OSS * oss = plugin->priv;
int v;
char buf[256];
if(oss->fd < 0)
return 1;
if(ioctl(oss->fd, MIXER_READ(SOUND_MIXER_VOLUME), &v) < 0)
{
snprintf(buf, sizeof(buf), "%s: %s", "MIXER_READ", strerror(
errno));
ret |= plugin->helper->error(plugin->helper->phone, buf, 0);
}
*level = (((v & 0xff00) >> 8) + (v & 0xff)) / 2;
*level /= 100;
return ret;
}
static int _event_volume_set(PhonePlugin * plugin, gdouble level) static int _event_volume_set(PhonePlugin * plugin, gdouble level)
{ {
int ret = 0; int ret = 0;
@ -217,6 +241,7 @@ static void _oss_settings(PhonePlugin * plugin)
vbox = gtk_vbox_new(FALSE, 0); vbox = gtk_vbox_new(FALSE, 0);
/* device */ /* device */
widget = gtk_label_new("Mixer device:"); widget = gtk_label_new("Mixer device:");
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
widget = gtk_file_chooser_button_new("Set the mixer device", widget = gtk_file_chooser_button_new("Set the mixer device",
GTK_FILE_CHOOSER_ACTION_OPEN); GTK_FILE_CHOOSER_ACTION_OPEN);

View File

@ -68,7 +68,8 @@ depends=../../include/Phone.h
[oss] [oss]
type=plugin type=plugin
sources=oss.c sources=oss.c
#ldflags=-lossaudio ldflags=-lossaudio
install=$(LIBDIR)/Phone/plugins
[oss.c] [oss.c]
depends=../../include/Phone.h depends=../../include/Phone.h

View File

@ -168,6 +168,7 @@ static void _systray_on_popup_menu(GtkStatusIcon * icon, guint button,
GtkWidget * menu; GtkWidget * menu;
GtkWidget * menuitem; GtkWidget * menuitem;
GtkWidget * hbox; GtkWidget * hbox;
GtkWidget * image;
GtkWidget * label; GtkWidget * label;
struct struct
{ {
@ -184,7 +185,7 @@ static void _systray_on_popup_menu(GtkStatusIcon * icon, guint button,
{ "stock_mail-compose", "_Write a message", { "stock_mail-compose", "_Write a message",
_popup_menu_on_show_write }, _popup_menu_on_show_write },
{ NULL, NULL, NULL }, { NULL, NULL, NULL },
{ "gtk-preferences", "_Settings", { "gtk-preferences", "_Preferences",
_popup_menu_on_show_settings }, _popup_menu_on_show_settings },
{ NULL, NULL, NULL }, { NULL, NULL, NULL },
{ "gtk-media-play-ltr", "_Resume telephony", { "gtk-media-play-ltr", "_Resume telephony",
@ -206,9 +207,9 @@ static void _systray_on_popup_menu(GtkStatusIcon * icon, guint button,
continue; continue;
} }
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
gtk_box_pack_start(GTK_BOX(hbox), gtk_image_new_from_icon_name( image = gtk_image_new_from_icon_name(items[i].icon,
items[i].icon, GTK_ICON_SIZE_MENU), GTK_ICON_SIZE_MENU),
FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, TRUE, 0);
label = gtk_label_new_with_mnemonic(items[i].name); label = gtk_label_new_with_mnemonic(items[i].name);
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);