Changeset 4774


Ignore:
Timestamp:
11/08/08 11:42:57 (9 years ago)
Author:
mickey
Message:

neod: patch to manually suspend and disabled wifi courtesy reddog. closes Om ticket #1365

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c

    r4617 r4774  
    4646static gchar* backlight_node = NULL; 
    4747static int backlight_max_brightness = 1; 
     48 
     49#ifdef NEOD_PLATFORM_FIC_NEO1973 
     50    static int hardware = NULL; 
     51#endif 
    4852 
    4953#ifdef NEOD_PLATFORM_FIC_NEO1973 
     
    120124    NONE = 2, 
    121125}; 
     126 
     127#ifdef NEOD_PLATFORM_FIC_NEO1973 
     128enum HardwareVersion 
     129{ 
     130    GTA01 = 1, 
     131    GTA02 = 2, 
     132}; 
     133 
     134static int hardwareVersion() 
     135{ 
     136    if (hardware==NULL) 
     137    { 
     138        char value[255]; 
     139        char key[255]; 
     140 
     141        FILE* f = fopen( "/proc/cpuinfo" , "r" ); 
     142        if ( f == NULL ) 
     143        { 
     144            g_debug( "can't open file '/proc/cpuinfo': (%s), aborting.", strerror( errno ) ); 
     145            return; 
     146        } 
     147 
     148        while (EOF != fscanf (f, "%s\t : %s\t*\n", key, value)) 
     149        { 
     150            if (strcmp(&key,"Hardware")==0) 
     151            { 
     152                if (strcmp(&value,"GTA01")==0) 
     153                    hardware = GTA01; 
     154                if (strcmp(&value,"GTA02")==0) 
     155                    hardware = GTA02; 
     156                break; 
     157            } 
     158        } 
     159        if (hardware==NULL) 
     160        { 
     161            g_debug( "can't get hardware version." ); 
     162        } 
     163        else 
     164        { 
     165            g_debug( "got hardware version: '%s', saved as '%d'.", &value, hardware); 
     166        } 
     167 
     168        fclose( f ); 
     169    } 
     170    else 
     171    { 
     172        g_debug( "allready have hw-version: '%d'.", hardware ); 
     173    } 
     174    return hardware; 
     175} 
     176#endif 
    122177 
    123178int pm_value = 0; 
     
    593648} 
    594649 
    595 void neod_buttonactions_popup_selected_lock_display(GtkWidget* button,  
    596                                                                                                         gpointer user_data) { 
     650void neod_buttonactions_popup_selected_lock_display(GtkWidget* button, gpointer user_data) { 
    597651    gtk_widget_hide(power_menu); 
    598         neod_buttonactions_lock_display(); 
     652    neod_buttonactions_lock_display(); 
    599653} 
    600654 
     
    695749#ifdef NEOD_PLATFORM_FIC_NEO1973 
    696750            write_boolean_to_path( "/sys/bus/platform/devices/neo1973-pm-bt.0/power_on", on ); 
    697              write_boolean_to_path( "/sys/bus/platform/devices/neo1973-pm-bt.0/reset", 0 ); 
     751            write_boolean_to_path( "/sys/bus/platform/devices/neo1973-pm-bt.0/reset", 0 ); 
    698752#endif 
    699753            break; 
    700754        case GPS: 
    701755#ifdef NEOD_PLATFORM_FIC_NEO1973 
    702             write_boolean_to_path( "/sys/bus/platform/devices/neo1973-pm-gps.0/pwron", on ); 
     756            if (hardwareVersion()==GTA01) 
     757                system( on ? "/etc/init.d/gps-hardware restart" : "/etc/init.d/gps-hardware stop" ); 
     758            else 
     759                write_boolean_to_path( "/sys/bus/platform/devices/neo1973-pm-gps.0/pwron", on ); 
    703760#endif 
    704761            break; 
     
    814871        gtk_box_pack_start_defaults( GTK_BOX(box), gpspower ); 
    815872 
    816         wifipower = gtk_button_new(); 
    817         g_signal_connect( G_OBJECT(wifipower), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_switch_power), GINT_TO_POINTER( WIFI ) ); 
    818         gtk_box_pack_start_defaults( GTK_BOX(box), wifipower ); 
     873#ifdef NEOD_PLATFORM_FIC_NEO1973 
     874        if (hardwareVersion()==GTA02) 
     875        { 
     876            wifipower = gtk_button_new(); 
     877            g_signal_connect( G_OBJECT(wifipower), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_switch_power), GINT_TO_POINTER( WIFI ) ); 
     878            gtk_box_pack_start_defaults( GTK_BOX(box), wifipower ); 
     879        } 
     880#endif 
    819881 
    820882        gtk_box_pack_start_defaults( GTK_BOX(box), gtk_hseparator_new() ); 
     
    832894        GtkWidget* lock_display = gtk_button_new_with_label("Lock Display"); 
    833895        g_signal_connect(G_OBJECT(lock_display), "clicked",  
    834                         G_CALLBACK(neod_buttonactions_popup_selected_lock_display), NULL); 
    835                 gtk_box_pack_start_defaults(GTK_BOX(box), lock_display); 
    836 #if 0 
    837         GtkWidget* lock = gtk_button_new_with_label("Lock Phone"); 
    838         g_signal_connect( G_OBJECT(lock), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL ); 
    839         gtk_box_pack_start_defaults( GTK_BOX(box), lock ); 
     896            G_CALLBACK(neod_buttonactions_popup_selected_lock_display), NULL); 
     897        gtk_box_pack_start_defaults(GTK_BOX(box), lock_display); 
     898#ifdef NEOD_PLATFORM_FIC_NEO1973 
     899        if (hardwareVersion()==GTA01) 
     900        { 
     901            GtkWidget* lock = gtk_button_new_with_label("Suspend Phone"); 
     902            g_signal_connect( G_OBJECT(lock), "clicked", G_CALLBACK(neod_buttonactions_popup_selected_lock), NULL ); 
     903            gtk_box_pack_start_defaults( GTK_BOX(box), lock ); 
     904        } 
    840905#endif 
    841906        GtkWidget* poweroff = gtk_button_new_with_label( "Shutdown Now" ); 
     
    9611026            g_debug("sorry, i'm not going to close the lock window"); 
    9621027            return FALSE; 
    963                 } 
     1028        } 
    9641029 
    9651030        Display* display = XOpenDisplay( NULL ); 
Note: See TracChangeset for help on using the changeset viewer.