coreapplicationuis/SysAp/Src/SysApAccessoryObserver.cpp
changeset 51 50b444048a8d
parent 0 2e3d3ce01487
child 63 c2c61fdca848
child 81 676b6116ca93
equal deleted inserted replaced
46:eea20ed08f4b 51:50b444048a8d
    18 
    18 
    19 // INCLUDE FILES
    19 // INCLUDE FILES
    20 #include "SysApAccessoryObserver.h"
    20 #include "SysApAccessoryObserver.h"
    21 #include "SysAp.hrh"
    21 #include "SysAp.hrh"
    22 #include "SysApAppUi.h"
    22 #include "SysApAppUi.h"
       
    23 #include <Accpolgenericidarray.h>
       
    24 #include <Accpolgenericid.h>
    23 
    25 
    24 #include <e32svr.h>      // RDebug
    26 #include <e32svr.h>      // RDebug
    25 
    27 
    26 // ========================= MEMBER FUNCTIONS ================================
    28 // ========================= MEMBER FUNCTIONS ================================
    27 
    29 
    57 CSysApAccessoryObserver::~CSysApAccessoryObserver()
    59 CSysApAccessoryObserver::~CSysApAccessoryObserver()
    58     {
    60     {
    59     TRACES( RDebug::Print( _L("CSysApAccessoryObserver::~CSysApAccessoryObserver") ) );
    61     TRACES( RDebug::Print( _L("CSysApAccessoryObserver::~CSysApAccessoryObserver") ) );
    60     Cancel();
    62     Cancel();
    61     iAccessoryMode.CloseSubSession();
    63     iAccessoryMode.CloseSubSession();
       
    64     iAccessoryConnection.CloseSubSession();
    62     iAccessoryServer.Close();
    65     iAccessoryServer.Close();
    63     }
    66     }
    64 
    67 
    65 // ----------------------------------------------------------------------------
    68 // ----------------------------------------------------------------------------
    66 // CSysApAccessoryObserver::ConstructL()
    69 // CSysApAccessoryObserver::ConstructL()
    90             else
    93             else
    91                 {
    94                 {
    92                 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): iAccMode.iAccessoryMode=%d" ), iAccMode.iAccessoryMode ) );
    95                 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): iAccMode.iAccessoryMode=%d" ), iAccMode.iAccessoryMode ) );
    93                 iPreviousMode = iAccMode.iAccessoryMode;
    96                 iPreviousMode = iAccMode.iAccessoryMode;
    94                 }                
    97                 }                
       
    98             TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): trying RAccessoryConnection::CreateSubSession" ) ) );
    95             
    99             
       
   100             err = iAccessoryConnection.CreateSubSession( iAccessoryServer );
       
   101             if ( err == KErrNone )
       
   102                 {
       
   103                 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): connection to RAccessoryConnection established" ) ) );
       
   104                 TAccPolGenericIDArray iAccGenericIDArray;
       
   105                 err = iAccessoryConnection.GetAccessoryConnectionStatus( iAccGenericIDArray );
       
   106                 if ( err == KErrNone )
       
   107                     {
       
   108                     TInt iIndex = 0;
       
   109                     TAccPolGenericID iAccGenericID = iAccGenericIDArray.GetGenericIDL( iIndex );
       
   110                     TUint iPhysicalConnection = iAccGenericID.PhysicalConnectionCaps();
       
   111                     if (iPhysicalConnection & KPCWired)
       
   112                         {
       
   113                         iPhysicalConnectionType = KPCWired;
       
   114                         }
       
   115                     else if (iPhysicalConnection & KPCBluetooth)
       
   116                         {
       
   117                         iPhysicalConnectionType = KPCBluetooth;
       
   118                         }
       
   119                     else if (iPhysicalConnection & KPCInfraRed)
       
   120                         {
       
   121                         iPhysicalConnectionType = KPCInfraRed;
       
   122                         }
       
   123                     else if (iPhysicalConnection & KPCUSB)
       
   124                         {
       
   125                         iPhysicalConnectionType = KPCUSB;
       
   126                         }
       
   127                     else if (iPhysicalConnection & KPCHDMI)
       
   128                         {
       
   129                         iPhysicalConnectionType = KPCHDMI;
       
   130                         }
    96             iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode );
   131             iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode );
    97             SetActive();
   132             SetActive();
       
   133                     }
       
   134                 else
       
   135                     {
       
   136                 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): Error in Getting AccessoryConnectionStatus Error: %d " ),err ) );
       
   137                     }
       
   138                 }
       
   139             else
       
   140                 {
       
   141                 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryConnection::CreateSubSession - Error: %d" ), err ) );
       
   142                 }
    98             }
   143             }
    99         else
   144         else
   100             {
   145             {
   101             TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryMode::CreateSubSession - Error: %d" ), err ) );
   146             TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryMode::CreateSubSession - Error: %d" ), err ) );
   102             }
   147             }
   113 
   158 
   114 void CSysApAccessoryObserver::DoCancel()
   159 void CSysApAccessoryObserver::DoCancel()
   115     {
   160     {
   116     TRACES( RDebug::Print( _L("CSysApAccessoryObserver::DoCancel()" ) ) );
   161     TRACES( RDebug::Print( _L("CSysApAccessoryObserver::DoCancel()" ) ) );
   117     iAccessoryMode.CancelNotifyAccessoryModeChanged();
   162     iAccessoryMode.CancelNotifyAccessoryModeChanged();
       
   163     iAccessoryConnection.CancelGetAccessoryConnectionStatus();
   118     }
   164     }
   119 
   165 
   120 // ----------------------------------------------------------------------------
   166 // ----------------------------------------------------------------------------
   121 // CSysApAccessoryObserver::RunL()
   167 // CSysApAccessoryObserver::RunL()
   122 // ----------------------------------------------------------------------------
   168 // ----------------------------------------------------------------------------
   131         {
   177         {
   132         iSysApAppUi.HandleAccessoryDisconnectedL();
   178         iSysApAppUi.HandleAccessoryDisconnectedL();
   133         }
   179         }
   134     else if ( iAccMode.iAccessoryMode != iPreviousMode ) // for filtering audio output change notifications
   180     else if ( iAccMode.iAccessoryMode != iPreviousMode ) // for filtering audio output change notifications
   135         {
   181         {
   136         iSysApAppUi.HandleAccessoryConnectedL( iAccMode.iAccessoryMode );
   182         TInt err( KErrNone );
       
   183         TAccPolGenericIDArray iAccGenericIDArray;
       
   184         err = iAccessoryConnection.GetAccessoryConnectionStatus( iAccGenericIDArray );
       
   185         if ( err == KErrNone )
       
   186             {
       
   187             TInt iIndex = 0;
       
   188             TAccPolGenericID iAccGenericID = iAccGenericIDArray.GetGenericIDL( iIndex );
       
   189             TUint iPhysicalConnection = iAccGenericID.PhysicalConnectionCaps();
       
   190             if ( iPhysicalConnection & KPCWired )
       
   191                 {
       
   192                 iPhysicalConnectionType = KPCWired;
       
   193                 }
       
   194             else if ( iPhysicalConnection & KPCBluetooth )
       
   195                 {
       
   196                 iPhysicalConnectionType = KPCBluetooth;
       
   197                 }
       
   198             else if ( iPhysicalConnection & KPCInfraRed )
       
   199                 {
       
   200                 iPhysicalConnectionType = KPCInfraRed;
       
   201                 }
       
   202             else if ( iPhysicalConnection & KPCUSB )
       
   203                 {
       
   204                 iPhysicalConnectionType = KPCUSB;
       
   205                 }
       
   206             else if ( iPhysicalConnection & KPCHDMI )
       
   207                 {
       
   208                 iPhysicalConnectionType = KPCHDMI;
       
   209                 }
       
   210             }
       
   211         TRACES( RDebug::Print( _L("CSysApAccessoryObserver::RunL: iAccessoryMode: %d, iPhysicalConnectionType: %d" ), iAccMode.iAccessoryMode,iPhysicalConnectionType ) );             
       
   212         iSysApAppUi.HandleAccessoryConnectedL( iAccMode.iAccessoryMode,iPhysicalConnectionType );
   137         }
   213         }
   138     
   214     
   139     iPreviousMode = iAccMode.iAccessoryMode;
   215     iPreviousMode = iAccMode.iAccessoryMode;
   140     
   216     
   141     iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode );
   217     iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode );
   166 TAccMode CSysApAccessoryObserver::GetAccessoryMode() const
   242 TAccMode CSysApAccessoryObserver::GetAccessoryMode() const
   167     {
   243     {
   168     return iAccMode.iAccessoryMode;
   244     return iAccMode.iAccessoryMode;
   169     }
   245     }
   170 
   246 
       
   247 
       
   248 // ----------------------------------------------------------------------------
       
   249 // CSysApAccessoryObserver::GetAccessoryConnectionType() const
       
   250 // ----------------------------------------------------------------------------
       
   251 TInt CSysApAccessoryObserver::GetAccessoryConnectionType() const
       
   252     {
       
   253     return iPhysicalConnectionType;
       
   254     }
   171 // End of File
   255 // End of File
   172 
   256 
   173 
   257 
   174 
   258 
   175 
   259