Added one new pjsua-lib API to get audio device stream instance, also added its usage sample for audio routing in symbian_ua.

git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2480 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjsip-apps/src/symbian_ua/ua.cpp b/pjsip-apps/src/symbian_ua/ua.cpp
index e6c6ab7..d4296ac 100644
--- a/pjsip-apps/src/symbian_ua/ua.cpp
+++ b/pjsip-apps/src/symbian_ua/ua.cpp
@@ -490,11 +490,9 @@
 	    "  m    Call " SIP_DST_URI "\n"
 	    "  a    Answer call\n"
 	    "  g    Hangup all calls\n"
-#if PJMEDIA_SOUND_IMPLEMENTATION == PJMEDIA_SOUND_SYMB_APS_SOUND
-   	    "  t    Switch audio route\n"
-#endif
+   	    "  t    Toggle audio route\n"
 #if !defined(PJMEDIA_CONF_USE_SWITCH_BOARD) || PJMEDIA_CONF_USE_SWITCH_BOARD==0
-   	    "  j    Start/stop loopback audio device\n"
+   	    "  j    Toggle loopback audio\n"
 #endif
 	    "  s    Subscribe " SIP_DST_URI "\n"
 	    "  S    Unsubscribe presence\n"
@@ -522,30 +520,47 @@
 static void HandleMainMenu(TKeyCode kc) {
     switch (kc) {
     
-#   if 0  && PJMEDIA_SOUND_IMPLEMENTATION == PJMEDIA_SOUND_SYMB_APS_SOUND
     case 't':
-	do {
-	    static pjmedia_snd_route route = PJMEDIA_AUD_DEV_ROUTE_DEFAULT;
-	    
-	    if (route == PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER)
-		route = PJMEDIA_AUD_DEV_ROUTE_EARPIECE;
-	    else
-		route = PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER;
+	{
+	    pjmedia_aud_stream *aud_stream = pjsua_get_aud_stream();
 
-	    pjsua_set_snd_route(route);
-	} while(0);
+	    if (aud_stream) {
+		pjmedia_aud_dev_route route;
+		pj_status_t status;
+		
+		status = pjmedia_aud_stream_get_cap(
+					    aud_stream,
+					    PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE,
+					    &route);
+		if (status == PJ_SUCCESS) {
+		    if (route == PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER)
+			route = PJMEDIA_AUD_DEV_ROUTE_EARPIECE;
+		    else
+			route = PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER;
+
+		    status = pjmedia_aud_stream_set_cap(
+					aud_stream,
+					PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE,
+					&route);
+		}
+
+		if (status != PJ_SUCCESS)
+		    pjsua_perror(THIS_FILE, "Error switch audio route", status);
+	    } else {
+		PJ_LOG(3,(THIS_FILE, "No active sound device."));
+	    }
+	}
 	break;
-#   endif
 	
     case 'j':
-	do {
+	{
 	    static pj_bool_t loopback_active = PJ_FALSE;
 	    if (!loopback_active)
 		pjsua_conf_connect(0, 0);
 	    else
 		pjsua_conf_disconnect(0, 0);
 	    loopback_active = !loopback_active;
-	} while (0);
+	}
 	break;
 	
     case 'm':