voiceui/voiceuivoicerecognition/src/vuictoneplayer.cpp
branchRCL_3
changeset 15 33b357311f14
parent 0 bf1d17376201
--- a/voiceui/voiceuivoicerecognition/src/vuictoneplayer.cpp	Wed Jun 09 09:43:17 2010 +0300
+++ b/voiceui/voiceuivoicerecognition/src/vuictoneplayer.cpp	Mon Jun 21 15:41:55 2010 +0300
@@ -19,6 +19,8 @@
 // INCLUDE FILES
 #include <aknsoundsystem.h>
 #include <aknappui.h>
+#include <AccessoryServer.h>        //RAccessoryServer
+#include <AccessoryConnection.h>    //RAccessoryConnection
 
 #include <centralrepository.h>
 
@@ -67,6 +69,7 @@
 
     delete iStartSound;
     delete iConfirmationSound;
+    delete iBtStartSound;
 
     iObserver = NULL;
     
@@ -104,6 +107,10 @@
 
     iStartSound = StringLoader::LoadL( R_VOICE_START_SOUND_PATH );
     iConfirmationSound = StringLoader::LoadL( R_VOICE_CONFIRMATION_SOUND_PATH );
+    iBtStartSound = StringLoader::LoadL( R_VOICE_BT_START_SOUND_PATH );
+    iBTAcc = EFalse;
+    
+    ChekcAccesoryStatusL();
     }
   
  // ---------------------------------------------------------
@@ -135,8 +142,15 @@
     if ( aSid == EAvkonSIDNameDiallerStartTone )
         {
         RUBY_DEBUG0( "CTonePlayer::InitToneL - case: EAvkonSIDNameDiallerStartTone" );
-
-        TRAPD( err, iAudioPlayer->OpenFileL( *iStartSound ) );
+        TInt err = KErrNone;
+        if ( iBTAcc )
+            {
+            TRAP( err, iAudioPlayer->OpenFileL( *iBtStartSound ) );
+            }
+        else
+            {
+            TRAP( err, iAudioPlayer->OpenFileL( *iStartSound ) );
+            }
         if ( err )
             {
             RUBY_ERROR1( "CTonePlayer::InitToneL - err [%d]", err );
@@ -248,5 +262,47 @@
     return volume;
     }
 
+// ---------------------------------------------------------
+// CTonePlayer::ChekcAccesoryStatus
+// ---------------------------------------------------------
+//  
+void CTonePlayer::ChekcAccesoryStatusL()
+    {    
+    // Connection to the accessory server
+    RAccessoryServer accessoryServer;    
+    // Subsession for server
+    RAccessoryConnection accessoryConnection;    
+    //Generic ID array for accessories
+    TAccPolGenericIDArray accessoryArray;
+    
+    TInt err = KErrNone;
+    //connect to accessory server
+    err = accessoryServer.Connect();
+    if ( err == KErrNone )
+        {
+        //create subsession to accessory server
+        err = accessoryConnection.CreateSubSession( accessoryServer );
+        if ( err == KErrNone )
+            {
+            accessoryConnection.GetAccessoryConnectionStatus( accessoryArray );
+            
+            TAccPolGenericID genId;
+            for ( TInt i = 0; i < accessoryArray.Count(); i++ )
+                {
+                genId = accessoryArray.GetGenericIDL( i );
+
+                if ( genId.PhysicalConnectionCaps( KPCBluetooth ) && 
+                    ( genId.DeviceTypeCaps( KDTHeadset ) || genId.DeviceTypeCaps( KDTCarKit ) ) )
+                    {
+                    iBTAcc = ETrue;
+                    }
+                }
+            }
+        }
+
+    accessoryConnection.CloseSubSession();
+    accessoryServer.Close();
+    }
+
 //  End of File