audio flinger: fix initial mmap stream volume

The initial stream volume values received by a MMAP thread
while the mmap stream is being open by audio policy manager
were ignored because the stream type was not yet initialized (the stream
type is received from audio policy manager when getOutputForAttr
returns).

The fix consists in using the same volume/mute data structure array for
MmapPlaybackThread as for PlaybackThread in order to store all stream
volume and mute values but only use the one corresponding to the
configured mStreamType.

Bug: 284836454
Test: repro steps in bug
Change-Id: If4654c1d9ea7fd109a8ab2b9b2431db71b966243
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index 8b420c0..4d9e947 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -2316,12 +2316,17 @@
 
 protected:
                 void        dumpInternals_l(int fd, const Vector<String16>& args) override;
+                float       streamVolume_l() const {
+                    return mStreamTypes[mStreamType].volume;
+                }
+                bool     streamMuted_l() const {
+                    return mStreamTypes[mStreamType].mute;
+                }
 
+                stream_type_t               mStreamTypes[AUDIO_STREAM_CNT];
                 audio_stream_type_t         mStreamType;
                 float                       mMasterVolume;
-                float                       mStreamVolume;
                 bool                        mMasterMute;
-                bool                        mStreamMute;
                 AudioStreamOut*             mOutput;
 
                 mediautils::atomic_sp<audio_utils::MelProcessor> mMelProcessor;