Ignore:
Timestamp:
04/14/08 08:59:13 (5 years ago)
Author:
sean_chiang
Message:

change the way about detect the change of headset in or out

File:
1 edited

Legend:

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

    r4351 r4354  
    7979#define BIT_TEST( bitmask, bit )    \ 
    8080    ( bitmask[ (bit) / sizeof(short) / 8 ] & (1u << ( (bit) % (sizeof(short) * 8))) ) 
    81  
    82 #ifdef NEOD_PLATFORM_FIC_NEO1973 
    83 /* 
    84  * For neo, headset in   headset out 
    85  *          05 02 01     05 02 00 
    86  *          05 02 00     05 02 01 
    87  *          05 02 01     05 02 00 
    88  */ 
    89 enum { 
    90         HEADSET_STATE_IDLE = 0, 
    91         HEADSET_STATE_START_IN, 
    92         HEADSET_STATE_START_OUT, 
    93         HEADSET_STATE_IN, 
    94         HEADSET_STATE_OUT, 
    95         HEADSET_STATE_END_IN, 
    96         HEADSET_STATE_END_OUT, 
    97 }; 
    98  
    99 static int headset_state = HEADSET_STATE_IDLE;   
    100 #endif 
    10181 
    10282static gboolean moko_debug = TRUE; 
     
    425405            if ( event.type == 5 && event.code == HEADPHONE_INSERTION_SWITCHCODE ) 
    426406            { 
    427 #ifdef NEOD_PLATFORM_FIC_NEO1973 
    428                 if ( event.value == 1 ) /* inserted */ 
    429                 { 
    430                     switch (headset_state) { 
    431                         case HEADSET_STATE_IDLE: 
    432                             headset_state = HEADSET_STATE_START_IN; 
    433                             if ( moko_debug ) g_debug( "HEADSET_STATE_START_IN" ); 
    434                             break; 
    435                         case HEADSET_STATE_IN: 
    436                             headset_state = HEADSET_STATE_END_IN; 
    437                             if ( moko_debug ) g_debug( "HEADSET_STATE_END_IN" ); 
    438                             if ( moko_debug ) g_debug( "headphones IN" );                    
    439                                 g_spawn_command_line_async( "dbus-send --session --type=signal /org/openmoko/PhoneKit/Headset org.openmoko.PhoneKit.Headset.HeadsetIn", NULL ); 
    440                             break; 
    441                         case HEADSET_STATE_START_OUT: 
    442                             headset_state = HEADSET_STATE_OUT; 
    443                             if ( moko_debug ) g_debug( "HEADSET_STATE_OUT" ); 
    444                             break; 
    445                         default: 
    446                             headset_state = HEADSET_STATE_IDLE; 
    447                             if ( moko_debug ) g_debug( "HEADSET_STATE_IDLE 1" ); 
    448                             break; 
    449                     } 
    450                 } 
    451                 else if ( event.value == 0 ) /* released */ 
    452                 { 
    453                     switch (headset_state) { 
    454                         case HEADSET_STATE_IDLE: 
    455                             headset_state = HEADSET_STATE_START_OUT; 
    456                             if ( moko_debug ) g_debug( "HEADSET_STATE_START_OUT" ); 
    457                             break; 
    458                         case HEADSET_STATE_OUT: 
    459                             headset_state = HEADSET_STATE_END_OUT; 
    460                             if ( moko_debug ) g_debug( "HEADSET_STATE_END_OUT" ); 
    461                             if ( moko_debug ) g_debug( "headphones OUT" ); 
    462                                 g_spawn_command_line_async( "dbus-send --session --type=signal /org/openmoko/PhoneKit/Headset org.openmoko.PhoneKit.Headset.HeadsetOut", NULL ); 
    463                             break; 
    464                         case HEADSET_STATE_START_IN: 
    465                             headset_state = HEADSET_STATE_IN; 
    466                             if ( moko_debug ) g_debug( "HEADSET_STATE_IN" ); 
    467                             break; 
    468                         default: 
    469                             headset_state = HEADSET_STATE_IDLE; 
    470                             if ( moko_debug ) g_debug( "HEADSET_STATE_IDLE 0" ); 
    471                             break; 
    472                     } 
    473                 } 
    474 #else  
    475407                if ( event.value == 1 ) /* inserted */ 
    476408                { 
    477409                    if ( moko_debug ) g_debug( "headphones IN" );                    
    478                         g_spawn_command_line_async( "amixer sset \"Amp Mode\" \"Headphones\"", NULL ); 
     410#ifdef NEOD_PLATFORM_FIC_NEO1973 
     411                    g_spawn_command_line_async( "dbus-send --session --type=signal /org/openmoko/PhoneKit/Headset org.openmoko.PhoneKit.Headset.HeadsetIn", NULL ); 
     412#else  
     413                    g_spawn_command_line_async( "amixer sset \"Amp Mode\" \"Headphones\"", NULL ); 
     414#endif 
    479415                } 
    480416                else if ( event.value == 0 ) /* released */ 
    481417                { 
    482418                    if ( moko_debug ) g_debug( "headphones OUT" ); 
    483                         g_spawn_command_line_async( "amixer sset \"Amp Mode\" \"Stereo Speakers\"", NULL ); 
     419#ifdef NEOD_PLATFORM_FIC_NEO1973 
     420                    g_spawn_command_line_async( "dbus-send --session --type=signal /org/openmoko/PhoneKit/Headset org.openmoko.PhoneKit.Headset.HeadsetOut", NULL ); 
     421#else  
     422                    g_spawn_command_line_async( "amixer sset \"Amp Mode\" \"Stereo Speakers\"", NULL ); 
     423#endif 
    484424                } 
    485 #endif 
    486425                neod_buttonactions_powersave_reset(); 
    487426#if 0 
Note: See TracChangeset for help on using the changeset viewer.