audioflinger: don't do work in constructor, instead do it in onFirstRef

Change-Id: I22d9e01821816c3beb52b014330386c7fd2f0411
Signed-off-by: Dima Zavin <dima@android.com>
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index e494d05..f8ad5bb 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -172,6 +172,10 @@
     : BnAudioFlinger(),
         mPrimaryHardwareDev(0), mMasterVolume(1.0f), mMasterMute(false), mNextUniqueId(1)
 {
+}
+
+void AudioFlinger::onFirstRef()
+{
     int rc = 0;
 
     Mutex::Autolock _l(mLock);
@@ -194,8 +198,7 @@
         if (!mPrimaryHardwareDev) {
             mPrimaryHardwareDev = dev;
             LOGI("Using '%s' (%s.%s) as the primary audio interface",
-                 AUDIO_HARDWARE_INTERFACE, mod->name, mod->id,
-                 audio_interfaces[i]);
+                 mod->name, mod->id, audio_interfaces[i]);
         }
     }
 
@@ -224,6 +227,14 @@
     }
 }
 
+status_t AudioFlinger::initCheck() const
+{
+    Mutex::Autolock _l(mLock);
+    if (mPrimaryHardwareDev == NULL || mAudioHwDevs.size() == 0)
+        return NO_INIT;
+    return NO_ERROR;
+}
+
 AudioFlinger::~AudioFlinger()
 {
     int num_devs = mAudioHwDevs.size();
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 94f7861..22e5116 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -212,6 +212,8 @@
                             AudioFlinger();
     virtual                 ~AudioFlinger();
 
+    status_t                initCheck() const;
+    virtual     void        onFirstRef();
     audio_hw_device_t*      findSuitableHwDev_l(uint32_t devices);
 
     // Internal dump utilites.