hal: avoid usage of extern functions and tables

If there is any difference in the signature of a function declared
as extern, it will not be reported by the compiler and may result
in unexpected results when executed.
All the API functions should be declared in a header file.

Change-Id: I89662e23da8118c3a9eac728b389498ed52e19c2
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index f1ceedc..e9f7af7 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -61,7 +61,7 @@
  * Each usecase is mapped to a specific PCM device.
  * Refer to pcm_device_table[].
  */
-typedef enum {
+enum {
     USECASE_INVALID = -1,
     /* Playback usecases */
     USECASE_AUDIO_PLAYBACK_DEEP_BUFFER = 0,
@@ -115,7 +115,9 @@
     USECASE_AUDIO_SPKR_CALIB_RX,
     USECASE_AUDIO_SPKR_CALIB_TX,
     AUDIO_USECASE_MAX
-} audio_usecase_t;
+};
+
+const char * const use_case_table[AUDIO_USECASE_MAX];
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
diff --git a/hal/voice.c b/hal/voice.c
index 33e0d2c..0e94c35 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -41,8 +41,6 @@
     .format = PCM_FORMAT_S16_LE,
 };
 
-extern const char * const use_case_table[AUDIO_USECASE_MAX];
-
 static struct voice_session *voice_get_session_from_use_case(struct audio_device *adev,
                               audio_usecase_t usecase_id)
 {
@@ -57,7 +55,7 @@
     return session;
 }
 
-int stop_call(struct audio_device *adev, audio_usecase_t usecase_id)
+int voice_stop_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
 {
     int i, ret = 0;
     struct audio_usecase *uc_info;
@@ -108,7 +106,7 @@
     return ret;
 }
 
-int start_call(struct audio_device *adev, audio_usecase_t usecase_id)
+int voice_start_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
 {
     int i, ret = 0;
     struct audio_usecase *uc_info;
@@ -195,7 +193,7 @@
     goto done;
 
 error_start_voice:
-    stop_call(adev, usecase_id);
+    voice_stop_usecase(adev, usecase_id);
 
 done:
     ALOGD("%s: exit: status(%d)", __func__, ret);
@@ -372,7 +370,7 @@
 
     ret = voice_extn_start_call(adev);
     if (ret == -ENOSYS) {
-        ret = start_call(adev, USECASE_VOICE_CALL);
+        ret = voice_start_usecase(adev, USECASE_VOICE_CALL);
     }
     adev->voice.in_call = true;
 
@@ -386,7 +384,7 @@
     adev->voice.in_call = false;
     ret = voice_extn_stop_call(adev);
     if (ret == -ENOSYS) {
-        ret = stop_call(adev, USECASE_VOICE_CALL);
+        ret = voice_stop_usecase(adev, USECASE_VOICE_CALL);
     }
 
     return ret;
diff --git a/hal/voice.h b/hal/voice.h
index 5d1ae40..95609b3 100644
--- a/hal/voice.h
+++ b/hal/voice.h
@@ -42,6 +42,7 @@
 struct str_parms;
 struct stream_in;
 struct stream_out;
+typedef int audio_usecase_t;
 
 struct call_state {
     int current;
@@ -71,6 +72,9 @@
     INCALL_REC_UPLINK_AND_DOWNLINK,
 };
 
+int voice_start_usecase(struct audio_device *adev, audio_usecase_t usecase_id);
+int voice_stop_usecase(struct audio_device *adev, audio_usecase_t usecase_id);
+
 int voice_start_call(struct audio_device *adev);
 int voice_stop_call(struct audio_device *adev);
 int voice_set_parameters(struct audio_device *adev, struct str_parms *parms);
diff --git a/hal/voice_extn/voice_extn.c b/hal/voice_extn/voice_extn.c
index 89abc3a..dcbe825 100644
--- a/hal/voice_extn/voice_extn.c
+++ b/hal/voice_extn/voice_extn.c
@@ -71,8 +71,6 @@
     .avail_min = LOW_LATENCY_OUTPUT_PERIOD_SIZE / 4,
 };
 
-extern int start_call(struct audio_device *adev, audio_usecase_t usecase_id);
-extern int stop_call(struct audio_device *adev, audio_usecase_t usecase_id);
 int voice_extn_is_call_state_active(struct audio_device *adev, bool *is_call_active);
 
 static bool is_valid_call_state(int call_state)
@@ -169,9 +167,9 @@
             {
             case CALL_INACTIVE:
                 ALOGD("%s: INACTIVE -> ACTIVE vsid:%x", __func__, session->vsid);
-                ret = start_call(adev, usecase_id);
+                ret = voice_start_usecase(adev, usecase_id);
                 if(ret < 0) {
-                    ALOGE("%s: voice_start_call() failed for usecase: %d\n",
+                    ALOGE("%s: voice_start_usecase() failed for usecase: %d\n",
                           __func__, usecase_id);
                 } else {
                     session->state.current = session->state.new;
@@ -207,9 +205,9 @@
             case CALL_HOLD:
             case CALL_LOCAL_HOLD:
                 ALOGD("%s: ACTIVE/HOLD/LOCAL_HOLD -> INACTIVE vsid:%x", __func__, session->vsid);
-                ret = stop_call(adev, usecase_id);
+                ret = voice_stop_usecase(adev, usecase_id);
                 if(ret < 0) {
-                    ALOGE("%s: voice_end_call() failed for usecase: %d\n",
+                    ALOGE("%s: voice_stop_usecase() failed for usecase: %d\n",
                           __func__, usecase_id);
                 } else {
                     session->state.current = session->state.new;