From c1477a507215f24c7404e86902dca689c70c18a1 Mon Sep 17 00:00:00 2001
From: Vittorio Giovara <vittorio.giovara@savoirfairelinux.com>
Date: Tue, 17 Jun 2014 18:55:51 -0400
Subject: [PATCH] opensl: correctly cast methods and parameters

Change-Id: Ie51642b429d37dc5e96570d20da143c27493105c
Refs: #46972
---
 daemon/src/audio/opensl/opensllayer.cpp | 58 +++++++++++++++++--------
 daemon/src/audio/opensl/opensllayer.h   |  8 ++--
 2 files changed, 43 insertions(+), 23 deletions(-)

diff --git a/daemon/src/audio/opensl/opensllayer.cpp b/daemon/src/audio/opensl/opensllayer.cpp
index 22d25a8bf9..8a81dee240 100644
--- a/daemon/src/audio/opensl/opensllayer.cpp
+++ b/daemon/src/audio/opensl/opensllayer.cpp
@@ -148,12 +148,12 @@ OpenSLLayer::stopStream()
 }
 
 void
-OpenSLLayer::initAudioEngine()
+OpenSLLayer::initAudioEngine() const
 {
     SLresult result;
 
     DEBUG("Create Audio Engine\n");
-    result = slCreateEngine(&engineObject_, 0, nullptr, 0, nullptr, nullptr);
+    result = slCreateEngine((const SLObjectItf_ * const **)&engineObject_, 0, nullptr, 0, nullptr, nullptr);
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Realize Audio Engine\n");
@@ -161,11 +161,14 @@ OpenSLLayer::initAudioEngine()
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Create Audio Engine Interface\n");
-    result = (*engineObject_)->GetInterface(engineObject_, SL_IID_ENGINE, &engineInterface_);
+    result = (*engineObject_)->GetInterface(engineObject_, SL_IID_ENGINE,
+                                            (void *)&engineInterface_);
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Create Output Mixer\n");
-    result = (*engineInterface_)->CreateOutputMix(engineInterface_, &outputMixer_, 0, nullptr, nullptr);
+    result = (*engineInterface_)->CreateOutputMix(engineInterface_,
+                                                  (const SLObjectItf_ * const **)&outputMixer_,
+                                                  0, nullptr, nullptr);
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Realize Output Mixer\n");
@@ -214,7 +217,7 @@ OpenSLLayer::shutdownAudioEngine()
 }
 
 void
-OpenSLLayer::initAudioPlayback()
+OpenSLLayer::initAudioPlayback() const
 {
     assert(nullptr != engineObject_);
     assert(nullptr != engineInterface_);
@@ -244,7 +247,8 @@ OpenSLLayer::initAudioPlayback()
     SLDataSource audioSource = {&bufferLocation, &audioFormat};
 
     DEBUG("Get Output Mixer interface\n");
-    result = (*outputMixer_)->GetInterface(outputMixer_, SL_IID_OUTPUTMIX, &outputMixInterface_);
+    result = (*outputMixer_)->GetInterface(outputMixer_, SL_IID_OUTPUTMIX,
+                                           (void *)&outputMixInterface_);
     CheckErr(result);
 
     // Cofiguration fo the audio sink as an output mixer
@@ -262,7 +266,12 @@ OpenSLLayer::initAudioPlayback()
 
     // create audio player
     DEBUG("Create audio player\n");
-    result = (*engineInterface_)->CreateAudioPlayer(engineInterface_, &playerObject_, &audioSource, &audioSink, nbInterface, ids, req);
+    result = (*engineInterface_)->CreateAudioPlayer(engineInterface_,
+                                                    (const SLObjectItf_ * const **)&playerObject_,
+                                                    &audioSource,
+                                                    &audioSink,
+                                                    nbInterface,
+                                                    ids, req);
     assert(SL_RESULT_SUCCESS == result);
 
     SLAndroidConfigurationItf playerConfig;
@@ -271,7 +280,7 @@ OpenSLLayer::initAudioPlayback()
 
     result = (*playerObject_)->GetInterface(playerObject_,
                                             SL_IID_ANDROIDCONFIGURATION,
-                                            &playerConfig);
+                                            (void *)&playerConfig);
 
     if (result == SL_RESULT_SUCCESS && playerConfig) {
         result = (*playerConfig)->SetConfiguration(
@@ -289,24 +298,28 @@ OpenSLLayer::initAudioPlayback()
 
     // create audio interface
     DEBUG("Create audio player interface\n");
-    result = (*playerObject_)->GetInterface(playerObject_, SL_IID_PLAY, &playerInterface_);
+    result = (*playerObject_)->GetInterface(playerObject_, SL_IID_PLAY,
+                                            (void *)&playerInterface_);
     assert(SL_RESULT_SUCCESS == result);
 
     // create the buffer queue interface
     DEBUG("Create buffer queue interface\n");
-    result = (*playerObject_)->GetInterface(playerObject_, SL_IID_BUFFERQUEUE, &playbackBufferQueue_);
+    result = (*playerObject_)->GetInterface(playerObject_, SL_IID_BUFFERQUEUE,
+                                            (void *)&playbackBufferQueue_);
     assert(SL_RESULT_SUCCESS == result);
 
     // register the buffer queue on the buffer object
     DEBUG("Register audio callback\n");
-    result = (*playbackBufferQueue_)->RegisterCallback(playbackBufferQueue_, audioPlaybackCallback, this);
+    result = (*playbackBufferQueue_)->RegisterCallback(playbackBufferQueue_,
+                                                       audioPlaybackCallback,
+                                                       (void *)this);
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Audio Playback Initialization Done\n");
 }
 
 void
-OpenSLLayer::initAudioCapture()
+OpenSLLayer::initAudioCapture() const
 {
     SLresult result;
 
@@ -354,7 +367,10 @@ OpenSLLayer::initAudioCapture()
 
     if (engineInterface_ != nullptr) {
         result = (*engineInterface_)->CreateAudioRecorder(engineInterface_,
-                 &recorderObject_, &audioSource, &audioSink, 2, id, req);
+                                                          (const SLObjectItf_ * const **)&recorderObject_,
+                                                          &audioSource,
+                                                          &audioSink,
+                                                          2, id, req);
     }
 
     if (SL_RESULT_SUCCESS != result) {
@@ -365,7 +381,7 @@ OpenSLLayer::initAudioCapture()
     /* Set Android configuration */
     result = (*recorderObject_)->GetInterface(recorderObject_,
                                                 SL_IID_ANDROIDCONFIGURATION,
-                                                &recorderConfig);
+                                                (void *)&recorderConfig);
     if (result == SL_RESULT_SUCCESS) {
        SLint32 streamType = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION;
        result = (*recorderConfig)->SetConfiguration(
@@ -389,18 +405,22 @@ OpenSLLayer::initAudioCapture()
 
     // get the record interface
     DEBUG("Create the record interface\n");
-    result = (*recorderObject_)->GetInterface(recorderObject_, SL_IID_RECORD, &recorderInterface_);
+    result = (*recorderObject_)->GetInterface(recorderObject_,
+                                              SL_IID_RECORD,
+                                              (void *)&recorderInterface_);
     assert(SL_RESULT_SUCCESS == result);
 
     // get the buffer queue interface
     DEBUG("Create the buffer queue interface\n");
     result = (*recorderObject_)->GetInterface(recorderObject_, SL_IID_ANDROIDSIMPLEBUFFERQUEUE,
-             &recorderBufferQueue_);
+             (void *)&recorderBufferQueue_);
     assert(SL_RESULT_SUCCESS == result);
 
     // register callback on the buffer queue
     DEBUG("Register the audio capture callback\n");
-    result = (*recorderBufferQueue_)->RegisterCallback(recorderBufferQueue_, audioCaptureCallback, this);
+    result = (*recorderBufferQueue_)->RegisterCallback(recorderBufferQueue_,
+                                                       audioCaptureCallback,
+                                                       (void *)this);
     assert(SL_RESULT_SUCCESS == result);
 
     DEBUG("Audio capture initialized\n");
@@ -550,7 +570,7 @@ OpenSLLayer::getCaptureDeviceList() const
     for (int i = 0; i < numInputs; i++) {
         res = (*AudioIODeviceCapabilitiesItf)->QueryAudioInputCapabilities(AudioIODeviceCapabilitiesItf,
                                                                            InputDeviceIDs[i],
-                                                                           &AudioInputDescriptor);
+                                                                           (SLAudioInputDescriptor *)&AudioInputDescriptor);
         CheckErr(res);
 
         if (AudioInputDescriptor.deviceConnection == SL_DEVCONNECTION_ATTACHED_WIRED and
@@ -582,7 +602,7 @@ OpenSLLayer::getCaptureDeviceList() const
 
 /* Checks for error. If any errors exit the application! */
 void
-OpenSLLayer::CheckErr( SLresult res )
+OpenSLLayer::CheckErr( SLresult res ) const
 {
     if (res != SL_RESULT_SUCCESS) {
         // Debug printing to be placed here
diff --git a/daemon/src/audio/opensl/opensllayer.h b/daemon/src/audio/opensl/opensllayer.h
index 2330371b2d..da2df83617 100644
--- a/daemon/src/audio/opensl/opensllayer.h
+++ b/daemon/src/audio/opensl/opensllayer.h
@@ -92,13 +92,13 @@ class OpenSLLayer : public AudioLayer {
 
         void init();
 
-        void initAudioEngine();
+        void initAudioEngine() const;
 
         void shutdownAudioEngine();
 
-        void initAudioPlayback();
+        void initAudioPlayback() const;
 
-        void initAudioCapture();
+        void initAudioCapture() const;
 
         void startAudioPlayback();
 
@@ -187,7 +187,7 @@ class OpenSLLayer : public AudioLayer {
             recordBufferIndex_ = (recordBufferIndex_ + 1) % NB_BUFFER_CAPTURE_QUEUE;
         }
 
-        void CheckErr( SLresult res );
+        void CheckErr( SLresult res ) const;
 
         void playback(SLAndroidSimpleBufferQueueItf queue);
         void capture(SLAndroidSimpleBufferQueueItf queue);
-- 
GitLab