Abstract away access to audio streams HAL in AudioFlinger

In this CL all direct access to audio_stream_t, audio_stream_out_t, and
audio_stream_in_t their functions is encapsulated within the new
hierarchy of Stream[In|Out]HalLocal classes.  AudioFlinger uses
interface classes Stream[In|Out]HalInterface to access these functions.

Note that NBAIO still receives raw HAL stream handles and needs to be
converted separately.

Bug: 30222631
Test: manual with Loopback app

Change-Id: I6388cfa2006791c9c0aa7bb186719209726a2d48
diff --git a/services/audioflinger/EffectsFactoryHalLocal.h b/services/audioflinger/EffectsFactoryHalLocal.h
index 244176a..9f6b5ce 100644
--- a/services/audioflinger/EffectsFactoryHalLocal.h
+++ b/services/audioflinger/EffectsFactoryHalLocal.h
@@ -24,8 +24,6 @@
 class EffectsFactoryHalLocal : public EffectsFactoryHalInterface
 {
   public:
-    virtual ~EffectsFactoryHalLocal() {}
-
     // Returns the number of different effects in all loaded libraries.
     virtual status_t queryNumberEffects(uint32_t *pNumEffects);
 
@@ -50,6 +48,8 @@
 
     // Can not be constructed directly by clients.
     EffectsFactoryHalLocal() {}
+
+    virtual ~EffectsFactoryHalLocal() {}
 };
 
 } // namespace android