audio_policy: force cancel unexecuted device routing command

-unexecuted device routing command can be handled for a none active
 output and cause wrong audio routing for the other active output
-cancel the pending device routing command if stream is voice call
 and new device is none

Change-Id: Ia5aeb935ccbdcb63fe8b226f911d252f78e2fa9b
CRs-Fixed: 678582
diff --git a/policy_hal/AudioPolicyManager.h b/policy_hal/AudioPolicyManager.h
index 9f2b473..d5cb6c1 100644
--- a/policy_hal/AudioPolicyManager.h
+++ b/policy_hal/AudioPolicyManager.h
@@ -58,6 +58,10 @@
                                                     AudioSystem::OUTPUT_FLAG_INDIRECT,
                                             const audio_offload_info_t *offloadInfo = NULL);
 
+        virtual status_t stopOutput(audio_io_handle_t output,
+                                    AudioSystem::stream_type stream,
+                                    int session = 0);
+
         virtual bool isOffloadSupported(const audio_offload_info_t& offloadInfo);
 
         virtual void setPhoneState(int state);
@@ -103,6 +107,8 @@
         bool mHdmiAudioEvent;
 
 private:
+        void handleNotificationRoutingForStream(AudioSystem::stream_type stream);
+
         // Used for voip + voice concurrency usecase
         int mPrevPhoneState;
         static int mvoice_call_state;