Changeset 3408
- Timestamp:
- 11/13/07 20:36:17 (6 years ago)
- Location:
- trunk/src/target/OM-2007.2/daemons/neod
- Files:
-
- 3 added
- 4 edited
-
Makefile.am (modified) (1 diff)
-
configure.ac (modified) (1 diff)
-
data (added)
-
data/Makefile.am (added)
-
data/openmoko-logo.jpg (added)
-
src/Makefile.am (modified) (1 diff)
-
src/buttonactions.c (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007.2/daemons/neod/Makefile.am
r2624 r3408 1 SUBDIRS = src po1 SUBDIRS = src data po 2 2 3 3 INTLTOOL_BUILT = \ -
trunk/src/target/OM-2007.2/daemons/neod/configure.ac
r3348 r3408 47 47 po/Makefile.in 48 48 src/Makefile 49 data/Makefile 49 50 ]) -
trunk/src/target/OM-2007.2/daemons/neod/src/Makefile.am
r3357 r3408 11 11 neod_SOURCES = \ 12 12 buttonactions.c \ 13 moko-adaptive-box.c \ 13 14 neod-main.c 14 15 -
trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
r3358 r3408 17 17 #include <gconf/gconf-client.h> 18 18 19 #include <gtk/gtklabel.h> 20 #include <gtk/gtkmenu.h> 21 #include <gtk/gtkmenuitem.h> 22 #include <gtk/gtkcheckmenuitem.h> 23 #include <gtk/gtkseparatormenuitem.h> 24 19 #include <gtk/gtk.h> 25 20 #include <gdk/gdkx.h> 26 21 27 22 #include <glib.h> 23 #include <glib/gstdio.h> 28 24 29 25 #include <X11/Xlib.h> … … 71 67 72 68 #ifdef NEOD_PLATFORM_IPAQ 73 #define AUX_BUTTON_KEYCODE 89 /* _KEY_RECORD*/74 #define POWER_BUTTON_KEYCODE 0x74 /* KEY_POWER*/69 #define AUX_BUTTON_KEYCODE 89 /* record */ 70 #define POWER_BUTTON_KEYCODE 0x74 /* power */ 75 71 #define TOUCHSCREEN_BUTTON_KEYCODE 0x14a 76 72 #endif … … 100 96 101 97 GConfClient* gconfc = 0; 98 99 enum PeripheralUnit 100 { 101 GSM = 0, 102 BLUETOOTH = 1, 103 GPS = 2, 104 }; 102 105 103 106 enum PowerManagementMode … … 412 415 gboolean neod_buttonactions_aux_timeout( guint timeout ) 413 416 { 417 if ( aux_timer == -1 ) 418 return FALSE; 414 419 g_debug( "aux pressed for %d", timeout ); 415 420 … … 477 482 } 478 483 479 // this is hardcoded to the Neo1973 480 void neod_buttonactions_popup_positioning_cb( GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer user_data ) 481 { 482 GtkRequisition req; 483 gtk_widget_size_request( GTK_WIDGET(menu), &req ); 484 gint screen_width = gdk_screen_width(); 485 gint screen_height = gdk_screen_height(); 486 gboolean landscape_mode = gdk_screen_width() >= gdk_screen_height(); 487 488 if ( GTK_WIDGET(menu) == aux_menu ) 489 { 490 if (landscape_mode) 491 *x = screen_width - req.width; 492 else 493 *x = 0; 494 *y = 0; 495 } 496 else if ( GTK_WIDGET(menu) == power_menu ) 497 { 498 if (landscape_mode) 499 *x = 0; 500 else 501 *x = screen_width - req.width; 502 *y = screen_height - req.height; 503 } 504 else 505 g_assert( FALSE ); // fail here if called for unknown menu 506 } 507 508 void neod_buttonactions_popup_selected_fullscreen( GtkMenuItem* menu, gpointer user_data ) 484 void neod_buttonactions_popup_selected_fullscreen( GtkWidget* button, gpointer user_data ) 509 485 { 510 486 static int is_fullscreen = 0; … … 540 516 } 541 517 542 void neod_buttonactions_popup_selected_orientation( Gtk MenuItem* menu, gpointer user_data )518 void neod_buttonactions_popup_selected_orientation( GtkWidget* button, gpointer user_data ) 543 519 { 544 520 gtk_widget_hide( aux_menu ); … … 550 526 } 551 527 552 void neod_buttonactions_popup_selected_screenshot( Gtk MenuItem* menu, gpointer user_data )528 void neod_buttonactions_popup_selected_screenshot( GtkWidget* button, gpointer user_data ) 553 529 { 554 530 gtk_widget_hide( aux_menu ); … … 556 532 } 557 533 558 void neod_buttonactions_popup_selected_fullPM( GtkMenuItem* menu, gpointer user_data ) 559 { 560 gconf_client_set_int( gconfc, "/desktop/openmoko/neod/power_management", FULL, NULL ); 561 } 562 563 void neod_buttonactions_popup_selected_dimOnly( GtkMenuItem* menu, gpointer user_data ) 564 { 565 gconf_client_set_int( gconfc, "/desktop/openmoko/neod/power_management", DIM_ONLY, NULL ); 566 } 567 568 void neod_buttonactions_popup_selected_noPM( GtkMenuItem* menu, gpointer user_data ) 569 { 570 gconf_client_set_int( gconfc, "/desktop/openmoko/neod/power_management", NONE, NULL ); 571 } 572 573 void neod_buttonactions_popup_selected_lock( GtkMenuItem* menu, gpointer user_data ) 534 void neod_buttonactions_popup_selected_lock( GtkWidget* button, gpointer user_data ) 574 535 { 575 536 int fd = open( "/sys/power/state", O_WRONLY ); … … 582 543 } 583 544 584 void neod_buttonactions_popup_selected_restartUI( GtkMenuItem* menu, gpointer user_data ) 585 { 545 void neod_buttonactions_popup_selected_restartUI( GtkWidget* button, gpointer user_data ) 546 { 547 gtk_widget_hide( power_menu ); 586 548 //FIXME notify user 587 549 system( "/etc/init.d/xserver-nodm restart"); 588 550 } 589 551 590 void neod_buttonactions_popup_selected_reboot( GtkMenuItem* menu, gpointer user_data ) 591 { 552 void neod_buttonactions_popup_selected_reboot( GtkWidget* button, gpointer user_data ) 553 { 554 gtk_widget_hide( power_menu ); 592 555 //moko_ui_banner_show_text( 4, "Rebooting System..." ); 593 556 system( "/sbin/reboot"); 594 557 } 595 558 596 void neod_buttonactions_popup_selected_poweroff( GtkMenuItem* menu, gpointer user_data ) 597 { 559 void neod_buttonactions_popup_selected_poweroff( GtkWidget* button, gpointer user_data ) 560 { 561 gtk_widget_hide( power_menu ); 598 562 //moko_ui_banner_show_text( 4, "Shutting down System..." ); 599 563 system( "/sbin/poweroff"); 564 } 565 566 void neod_buttonactions_popup_selected_pmprofile( GtkComboBox* combo, gpointer user_data ) 567 { 568 gtk_widget_hide( power_menu ); 569 int new_pmprofile = gtk_combo_box_get_active( combo ); 570 g_assert( FULL <= new_pmprofile && new_pmprofile <= NONE ); 571 g_debug( "switch pm profile to %d", new_pmprofile ); 572 gconf_client_set_int( gconfc, "/desktop/openmoko/neod/power_management", new_pmprofile, NULL ); 573 } 574 575 static gboolean read_boolean_from_path( const gchar* path ) 576 { 577 int value; 578 FILE* f = fopen( path, "r" ); 579 if ( f == NULL ) 580 { 581 g_debug( "can't open file '%s': (%s), aborting.", path, strerror( errno ) ); 582 return FALSE; 583 } 584 fscanf( f, "%d", &value ); 585 fclose( f ); 586 g_debug( "read value from '%s' = '%d'", path, value ); 587 return value; 588 } 589 590 static void write_boolean_to_path( const gchar* path, gboolean b ) 591 { 592 FILE* f = fopen( path, "w" ); 593 if ( f == NULL ) 594 { 595 g_debug( "can't open file '%s': (%s), aborting.", path, strerror( errno ) ); 596 return; 597 } 598 fprintf( f, b ? "1\n" : "0\n" ); 599 fclose( f ); 600 } 601 602 static gboolean is_turned_on( int unit ) 603 { 604 switch( unit ) 605 { 606 case GSM: 607 #ifdef NEOD_PLATFORM_FIC_NEO1973 608 return read_boolean_from_path( "/sys/devices/platform/gta01-pm-gsm.0/power_on" ); 609 #endif 610 return FALSE; 611 case BLUETOOTH: 612 #ifdef NEOD_PLATFORM_FIC_NEO1973 613 return read_boolean_from_path( "/sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/gta01-pm-bt.0/power_on" ); 614 #endif 615 return FALSE; 616 case GPS: 617 #ifdef NEOD_PLATFORM_FIC_NEO1973 618 return read_boolean_from_path( "/sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/gta01-pm-gps.0/power_on" ); 619 #endif 620 return FALSE; 621 default: 622 g_assert( FALSE ); // should never reach this 623 } 624 } 625 626 static void peripheral_set_power( int unit, gboolean on ) 627 { 628 switch( unit ) 629 { 630 case GSM: 631 #ifdef NEOD_PLATFORM_FIC_NEO1973 632 write_boolean_to_path( "/sys/devices/platform/gta01-pm-gsm.0/power_on", on ); 633 #endif 634 break; 635 case BLUETOOTH: 636 #ifdef NEOD_PLATFORM_FIC_NEO1973 637 write_boolean_to_path( "/sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/gta01-pm-bt.0/power_on", on ); 638 #endif 639 break; 640 case GPS: 641 #ifdef NEOD_PLATFORM_FIC_NEO1973 642 write_boolean_to_path( "/sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/gta01-pm-gps.0/power_on", on ); 643 #endif 644 break; 645 default: 646 g_assert( FALSE ); // should never reach this 647 } 648 } 649 650 void neod_buttonactions_popup_selected_switch_power( GtkWidget* button, gpointer user_data ) 651 { 652 gtk_widget_hide( power_menu ); 653 gboolean new_power_state = !is_turned_on( (int)user_data ); 654 g_debug( "switch power of unit %d to %d", (int)user_data, (int)new_power_state ); 655 //FIXME implement this and notify user 600 656 } 601 657 … … 617 673 if ( !aux_menu ) 618 674 { 619 aux_menu = gtk_menu_new(); 620 621 GtkWidget* fullscreen = gtk_menu_item_new_with_label( "Toggle Fullscreen" ); 622 g_signal_connect( G_OBJECT(fullscreen), "activate", G_CALLBACK(neod_buttonactions_popup_selected_fullscreen), NULL ); 623 gtk_menu_shell_append( GTK_MENU_SHELL(aux_menu), fullscreen ); 624 625 GtkWidget* orientation = gtk_menu_item_new_with_label( "Swap Orientation" ); 626 g_signal_connect( G_OBJECT(orientation), "activate", G_CALLBACK(neod_buttonactions_popup_selected_orientation), NULL ); 627 gtk_menu_shell_append( GTK_MENU_SHELL(aux_menu), orientation ); 628 629 GtkWidget* scap = gtk_menu_item_new_with_label( "Screenshot" ); 630 g_signal_connect( G_OBJECT(scap), "activate", G_CALLBACK(neod_buttonactions_popup_selected_screenshot), NULL ); 631 gtk_menu_shell_append( GTK_MENU_SHELL(aux_menu), scap ); 632 633 gtk_widget_show_all( GTK_WIDGET(aux_menu) ); 634 } 635 gtk_menu_popup( GTK_MENU(aux_menu), NULL, NULL, neod_buttonactions_popup_positioning_cb, 0, 0, GDK_CURRENT_TIME ); 675 aux_menu = gtk_dialog_new_with_buttons( "AUX Menu", 676 NULL, 677 GTK_DIALOG_MODAL, 678 "Dismiss this menu", GTK_RESPONSE_OK, 679 NULL ); 680 gtk_widget_set_name( GTK_WIDGET(aux_menu), "neod-dialog" ); 681 gtk_button_box_set_layout( GTK_BUTTON_BOX(GTK_DIALOG(aux_menu)->action_area), GTK_BUTTONBOX_SPREAD ); 682 GtkWidget* box = gtk_vbox_new( 0, 0 ); 683 gtk_widget_set_name( box, "neod-menu" ); 684 // GtkWidget* title = gtk_label_new( "AUX Button Menu" ); 685 // gtk_box_pack_start_defaults( GTK_BOX(box), title ); 686 687 GtkWidget* fullscreen = gtk_button_new_with_label( "Toggle Fullscreen" ); 688 g_signal_connect( G_OBJECT(fullscreen), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_fullscreen), NULL ); 689 gtk_box_pack_start_defaults( GTK_BOX(box), fullscreen ); 690 691 GtkWidget* orientation = gtk_button_new_with_label( "Swap Orientation" ); 692 g_signal_connect( G_OBJECT(orientation), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_orientation), NULL ); 693 gtk_box_pack_start_defaults( GTK_BOX(box), orientation ); 694 695 GtkWidget* scap = gtk_button_new_with_label( "Screenshot" ); 696 g_signal_connect( G_OBJECT(scap), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_screenshot), NULL ); 697 gtk_box_pack_start_defaults( GTK_BOX(box), scap ); 698 699 gtk_widget_show_all( GTK_WIDGET(box) ); 700 701 // override, otherwise matchbox won't show it fullscreen 702 gtk_window_set_type_hint( GTK_WINDOW(aux_menu), GDK_WINDOW_TYPE_HINT_NORMAL ); 703 //gtk_window_fullscreen( GTK_WINDOW(aux_menu) ); 704 g_signal_connect_swapped( aux_menu, "response", G_CALLBACK(gtk_widget_hide), aux_menu); 705 gtk_box_pack_start_defaults( GTK_BOX(GTK_DIALOG(aux_menu)->vbox), box ); 706 } 707 int response = gtk_dialog_run( GTK_DIALOG(aux_menu) ); 708 g_debug( "gtk_dialog_run completed, response = %d", response ); 636 709 } 637 710 638 711 void neod_buttonactions_show_power_menu() 639 712 { 713 static GtkWidget* gsmpower = 0; 714 static GtkWidget* btpower = 0; 715 static GtkWidget* gpspower = 0; 716 static GtkWidget* pmprofile = 0; 717 640 718 // show popup menu requesting for actions 641 719 if ( !power_menu ) 642 720 { 643 power_menu = gtk_menu_new(); 644 645 GtkWidget* bluetooth = gtk_check_menu_item_new_with_label( "Bluetooth Power" ); 646 gtk_widget_set_state( bluetooth, GTK_STATE_INSENSITIVE ); 647 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), bluetooth ); 648 649 GtkWidget* gps = gtk_check_menu_item_new_with_label( "GPS Power" ); 650 gtk_widget_set_state( gps, GTK_STATE_INSENSITIVE ); 651 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gps ); 652 653 GtkWidget* gsm = gtk_check_menu_item_new_with_label( "GSM Power" ); 654 gtk_widget_set_state( gsm, GTK_STATE_INSENSITIVE ); 655 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gsm ); 656 657 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() ); 658 659 // add profiles 660 // TODO build profile list dynamically from database 661 GtkWidget* profile = 0; 662 profile = gtk_check_menu_item_new_with_label( "Profile: Full PM" ); 663 gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE ); 664 gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == FULL ); 665 g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_fullPM), NULL ); 666 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile ); 667 profile = gtk_check_menu_item_new_with_label( "Profile: Dim Only" ); 668 gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE ); 669 gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == DIM_ONLY ); 670 g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_dimOnly), NULL ); 671 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile ); 672 profile = gtk_check_menu_item_new_with_label( "Profile: No PM" ); 673 gtk_check_menu_item_set_draw_as_radio( GTK_CHECK_MENU_ITEM(profile), TRUE ); 674 gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(profile), pm_value == NONE ); 675 g_signal_connect( G_OBJECT(profile), "activate", G_CALLBACK(neod_buttonactions_popup_selected_noPM), NULL ); 676 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profile ); 677 678 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), gtk_separator_menu_item_new() ); 679 680 GtkWidget* lock = gtk_menu_item_new_with_label( "Lock Phone" ); 681 g_signal_connect( G_OBJECT(lock), "activate", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL ); 682 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), lock ); 683 //GtkWidget* flightmode = gtk_menu_item_new_with_label( "Flight Mode" ); 684 //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), flightmode ); 685 //GtkWidget* profilelist = gtk_menu_item_new_with_label( "<Profile List>" ); 686 //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), profilelist ); 687 //GtkWidget* restartUI = gtk_menu_item_new_with_label( "Restart UI" ); 688 //g_signal_connect( G_OBJECT(restartUI), "activate", G_CALLBACK(neod_buttonactions_popup_selected_restartUI), NULL ); 689 //gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), restartUI ); 690 GtkWidget* reboot = gtk_menu_item_new_with_label( "Reboot Phone" ); 691 g_signal_connect( G_OBJECT(reboot), "activate", G_CALLBACK(neod_buttonactions_popup_selected_reboot), NULL ); 692 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), reboot ); 693 GtkWidget* poweroff = gtk_menu_item_new_with_label( "Power Off" ); 694 g_signal_connect( G_OBJECT(poweroff), "activate", G_CALLBACK(neod_buttonactions_popup_selected_poweroff), NULL ); 695 gtk_menu_shell_append( GTK_MENU_SHELL(power_menu), poweroff ); 696 gtk_widget_show_all( GTK_WIDGET(power_menu) ); 697 } 698 gtk_menu_popup( GTK_MENU(power_menu), NULL, NULL, neod_buttonactions_popup_positioning_cb, 0, 0, GDK_CURRENT_TIME ); 721 power_menu = gtk_dialog_new_with_buttons( "POWER Menu", 722 NULL, 723 GTK_DIALOG_MODAL, 724 "Dismiss this menu", GTK_RESPONSE_OK, 725 NULL ); 726 gtk_widget_set_name( GTK_WIDGET(power_menu), "neod-dialog" ); 727 gtk_button_box_set_layout( GTK_BUTTON_BOX(GTK_DIALOG(power_menu)->action_area), GTK_BUTTONBOX_SPREAD ); 728 GtkWidget* box = gtk_vbox_new( 0, 0 ); 729 gtk_widget_set_name( box, "neod-menu" ); 730 // GtkWidget* title = gtk_label_new( "POWER Button Menu" ); 731 // gtk_box_pack_start_defaults( GTK_BOX(box), title ); 732 733 gsmpower = gtk_button_new(); 734 g_signal_connect( G_OBJECT(gsmpower), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_switch_power), (void*)GSM ); 735 gtk_box_pack_start_defaults( GTK_BOX(box), gsmpower ); 736 737 btpower = gtk_button_new(); 738 g_signal_connect( G_OBJECT(btpower), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_switch_power), (void*)BLUETOOTH ); 739 gtk_box_pack_start_defaults( GTK_BOX(box), btpower ); 740 741 gpspower = gtk_button_new(); 742 g_signal_connect( G_OBJECT(gpspower), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_switch_power), (void*)GPS ); 743 gtk_box_pack_start_defaults( GTK_BOX(box), gpspower ); 744 745 gtk_box_pack_start_defaults( GTK_BOX(box), gtk_hseparator_new() ); 746 747 pmprofile = gtk_combo_box_new_text(); 748 gtk_combo_box_append_text( GTK_COMBO_BOX(pmprofile), "Power Management:\nDim first, then lock" ); 749 gtk_combo_box_append_text( GTK_COMBO_BOX(pmprofile), "Power Management:\nDim only, don't lock" ); 750 gtk_combo_box_append_text( GTK_COMBO_BOX(pmprofile), "Power Management:\nDisabled" ); 751 gtk_combo_box_set_active( GTK_COMBO_BOX(pmprofile), pm_value ); 752 g_signal_connect( G_OBJECT(pmprofile), "changed", G_CALLBACK(neod_buttonactions_popup_selected_pmprofile), NULL ); 753 gtk_box_pack_start_defaults( GTK_BOX(box), pmprofile ); 754 755 gtk_box_pack_start_defaults( GTK_BOX(box), gtk_hseparator_new() ); 756 757 GtkWidget* lock = gtk_button_new_with_label( "Lock Now" ); 758 g_signal_connect( G_OBJECT(lock), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL ); 759 gtk_box_pack_start_defaults( GTK_BOX(box), lock ); 760 761 GtkWidget* poweroff = gtk_button_new_with_label( "Shutdown Now" ); 762 g_signal_connect( G_OBJECT(poweroff), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_poweroff), NULL ); 763 gtk_box_pack_start_defaults( GTK_BOX(box), poweroff ); 764 765 gtk_widget_show_all( GTK_WIDGET(box) ); 766 767 // override, otherwise matchbox won't show it fullscreen 768 gtk_window_set_type_hint( GTK_WINDOW(power_menu), GDK_WINDOW_TYPE_HINT_NORMAL ); 769 //gtk_window_fullscreen( GTK_WINDOW(power_menu) ); 770 g_signal_connect_swapped( power_menu, "response", G_CALLBACK(gtk_widget_hide), power_menu); 771 gtk_box_pack_start_defaults( GTK_BOX(GTK_DIALOG(power_menu)->vbox), box ); 772 } 773 gtk_button_set_label( gsmpower, g_strdup_printf( "Turn %s GSM", is_turned_on( GSM ) ? "off" : "on" ) ); 774 gtk_button_set_label( btpower, g_strdup_printf( "Turn %s Bluetooth", is_turned_on( BLUETOOTH ) ? "off" : "on" ) ); 775 gtk_button_set_label( gpspower, g_strdup_printf( "Turn %s GPS", is_turned_on( GPS ) ? "off" : "on" ) ); 776 int response = gtk_dialog_run( GTK_DIALOG(power_menu) ); 777 g_debug( "gtk_dialog_run completed, response = %d", response ); 778 } 779 780 const gchar* authors[] = { 781 "OpenMoko has been brought to you by:", 782 " " 783 "Sean Moss-Pultz", 784 "Harald 'LaF0rge' Welte", 785 "Michael 'Mickey' Lauer", 786 "Werner Almesberger", 787 "Alice Tang", 788 "Allen Chang", 789 "Dave Wu", 790 "Wanda", 791 "Jelan Hsu", 792 "Miles Hsieh", 793 "Nod Huang", 794 "Paul Tian", 795 "Sean Chiang", 796 "Shawn Lin", 797 "Timmy Huang", 798 "Willie Chen", 799 "Olv", 800 "JServ", 801 "Jollen", 802 "Rasterman", 803 "Matt Hsu", 804 "John Lee", 805 "Tick", 806 "Roh", 807 "Erin Yueh", 808 "Jeremy", 809 "Holger 'Zecke' Freyther", 810 "Daniel 'Alphaone' Willmann", 811 "Stefan Schmidt", 812 "Jan 'Shoragan' Luebbe", 813 "Soeren 'Abraxa' Apel", 814 "Rod Whitby", 815 "Chris @ O-Hand", 816 "Ross @ O-Hand", 817 "Thomas @ O-Hand", 818 "Rob @ O-Hand", 819 "Dodji @ O-Hand", 820 "NJP @ O-Hand", 821 " ", 822 "@" __DATE__ ":" __TIME__, 823 "gcc " __VERSION__, 824 }; 825 826 gboolean neod_buttonactions_power_while_aux() 827 { 828 g_debug( "aux and power pressed together" ); 829 if ( aux_menu ) 830 gtk_widget_hide( aux_menu ); 831 gtk_show_about_dialog( NULL, 832 "authors", authors, 833 "comments", "open. mobile. free.", 834 "copyright", "2006-2007 OpenMoko, Inc.", 835 "program-name", "OpenMoko 2007.2", 836 "website", "http://www.openmoko.org", 837 "logo", gdk_pixbuf_new_from_file( PKGDATADIR "/openmoko-logo.jpg", NULL ), 838 NULL ); 839 return FALSE; 699 840 } 700 841 … … 708 849 709 850 power_timer = -1; 851 852 // special case for power button being pressed while aux is held 853 if ( aux_timer != -1 || ( aux_menu && GTK_WIDGET_MAPPED( aux_menu ) ) ) 854 return neod_buttonactions_power_while_aux(); 855 710 856 if ( timeout < 1 ) 711 857 { … … 822 968 { 823 969 g_debug( "mainmenu powersave timeout 1" ); 824 //FIXME talk to neod970 //FIXME talk to peripheral device abstraction daemon 825 971 power_state = DISPLAY_DIM; 826 972 neod_buttonactions_set_display( 25 ); … … 831 977 { 832 978 g_debug( "mainmenu powersave timeout 2" ); 833 //FIXME talk to neod979 //FIXME talk to peripheral device abstraction daemon 834 980 neod_buttonactions_set_display( 0 ); 835 981 power_state = DISPLAY_OFF; … … 842 988 return FALSE; 843 989 g_debug( "mainmenu powersave timeout 3" ); 844 //FIXME talk to neod990 //FIXME talk to peripheral device abstraction daemon 845 991 power_state = SUSPEND; 846 992 system( "/usr/bin/apm -s");
Note: See TracChangeset
for help on using the changeset viewer.
