policy_hal: hal: add support to enable Direct PCM

- add support for direct pcm output
- add support for direct pcm in hal
  if output flag is direct_pcm choose compress offload path
- add support for direct pcm in custom audio policy manager
  force add direct flag when we detect pcm track in music and
  game use case

Change-Id: Ie69c988ef9cd0477efa77611ceddccdd6b17a163
diff --git a/policy_hal/AudioPolicyManager.h b/policy_hal/AudioPolicyManager.h
index 44c0ac2..2f29c37 100644
--- a/policy_hal/AudioPolicyManager.h
+++ b/policy_hal/AudioPolicyManager.h
@@ -133,6 +133,18 @@
                 audio_channel_mask_t channelMask,
                 audio_output_flags_t flags,
                 const audio_offload_info_t *offloadInfo);
+        // internal method to fill offload info in case of Direct PCM
+        status_t getOutputForAttr(const audio_attributes_t *attr,
+                audio_io_handle_t *output,
+                audio_session_t session,
+                audio_stream_type_t *stream,
+                uid_t uid,
+                uint32_t samplingRate,
+                audio_format_t format,
+                audio_channel_mask_t channelMask,
+                audio_output_flags_t flags,
+                audio_port_handle_t selectedDeviceId,
+                const audio_offload_info_t *offloadInfo);
         // Used for voip + voice concurrency usecase
         int mPrevPhoneState;
         int mvoice_call_state;