hal: Changes to support true 44.1 Native playback

- add changes to support single BE mode on top of the
Double BE mode which is supported.

- support reading of version or mode from XML.

- add logic to switch between single and double BE
based on the mode in XML.

- define a new device for true native.

- add logic to read tasha codec version and allow
true native only for 2.0 version of codec

- enchance log msgs for better debugging.

Change-Id: I970487f16af32144ec26f967e8bfcb32d44d67a4
diff --git a/hal/platform_api.h b/hal/platform_api.h
index e5ec2d6..44f7d14 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -24,6 +24,18 @@
 #define CODEC_BACKEND_DEFAULT_BIT_WIDTH 16
 #define CODEC_BACKEND_DEFAULT_SAMPLE_RATE 48000
 
+enum {
+    NATIVE_AUDIO_MODE_SRC = 1,
+    NATIVE_AUDIO_MODE_TRUE_44_1,
+    NATIVE_AUDIO_MODE_INVALID
+};
+
+typedef struct {
+    bool platform_na_prop_enabled;
+    bool ui_na_prop_enabled;
+    int na_mode;
+} native_audio_prop;
+
 void *platform_init(struct audio_device *adev);
 void platform_deinit(void *platform);
 const char *platform_get_snd_device_name(snd_device_t snd_device);
@@ -40,7 +52,7 @@
 int platform_get_snd_device_acdb_id(snd_device_t snd_device);
 int platform_set_snd_device_bit_width(snd_device_t snd_device, unsigned int bit_width);
 int platform_get_snd_device_bit_width(snd_device_t snd_device);
-int platform_set_native_support(bool codec_support);
+int platform_set_native_support(int na_mode);
 int platform_get_native_support();
 int platform_get_backend_index(snd_device_t snd_device);
 int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,