summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapps/CMakeLists.txt1
-rw-r--r--apps/samples/audio/in_call_audio_app/CMakeLists.txt29
-rw-r--r--apps/samples/audio/in_call_audio_app/InCallAudioApp.cpp331
-rw-r--r--apps/samples/audio/in_call_audio_app/InCallAudioApp.hpp62
-rw-r--r--apps/tests/audio_console_app/AudioClient.cpp13
-rw-r--r--apps/tests/audio_console_app/AudioClient.hpp2
-rw-r--r--apps/tests/audio_console_app/TransCodeMenu.cpp1
-rw-r--r--apps/tests/location_test_app/LocationMenu.cpp2
-rw-r--r--apps/tests/telsdk_console_app/Data/DataMenu.cpp2
-rw-r--r--apps/tests/telsdk_console_app/ECall/ECallMenu.cpp41
-rw-r--r--apps/tests/telsdk_console_app/ECall/ECallMenu.hpp4
-rw-r--r--apps/tests/telsdk_console_app/ECall/MyECallListener.cpp2
-rw-r--r--bin/libtelux_audio.sym200
-rw-r--r--bin/libtelux_common.sym1
-rw-r--r--bin/libtelux_cv2x.sym14
-rw-r--r--bin/libtelux_data.sym241
-rw-r--r--bin/libtelux_loc.sym1
-rw-r--r--bin/libtelux_qmi.sym13
-rw-r--r--bin/libtelux_tel.sym4
-rw-r--r--bin/libv2x_radio.sym14
-rw-r--r--docs/api_samples/README.md4
-rw-r--r--docs/api_samples/audio/compressed_audio_format_playback_on_voice_paths.md260
-rw-r--r--doxy/api_reference/call_flow_diagrams.dox37
-rw-r--r--doxy/api_reference/introduction.dox1
-rw-r--r--doxy/api_reference/overview.dox1
-rw-r--r--doxy/api_reference/revision_history.dox3
-rw-r--r--doxy/images/compressed_audio_format_playback_on_voice_paths_callflow.pngbin0 -> 161807 bytes
-rw-r--r--doxy/user_guide/introduction.dox1
-rw-r--r--doxy/user_guide/revision_history.dox3
-rw-r--r--include/telux/tel/CallManager.hpp18
30 files changed, 1167 insertions, 139 deletions
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index feac32c..b232668 100755
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -55,6 +55,7 @@ if(BUILD_ALL_APPS)
add_subdirectory( samples/audio/capture_app )
add_subdirectory( samples/audio/compressed_fmt_playback_app )
add_subdirectory( samples/audio/transcoder_app )
+ add_subdirectory( samples/audio/in_call_audio_app )
endif(NOT MACHINE_HAS_CV2X_ONLY)
if (PWR_MGR_QMI_LIB_FOUND)
add_subdirectory( samples/tcuactivity_sample_app )
diff --git a/apps/samples/audio/in_call_audio_app/CMakeLists.txt b/apps/samples/audio/in_call_audio_app/CMakeLists.txt
new file mode 100644
index 0000000..26da527
--- /dev/null
+++ b/apps/samples/audio/in_call_audio_app/CMakeLists.txt
@@ -0,0 +1,29 @@
+cmake_minimum_required(VERSION 2.8.9)
+
+set(TARGET_IN_CALL_AUDIO_APP in_call_audio_app)
+
+set(IN_CALL_AUDIO_APP_SOURCES
+ InCallAudioApp.cpp
+)
+macro(SYSR_INCLUDE_DIR subdir)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I =/usr/include/${subdir}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I =/usr/include/${subdir}")
+endmacro()
+
+# add these sub-folders from /usr/include/<subdir>
+SYSR_INCLUDE_DIR(telux)
+
+include_directories(BEFORE
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+# set global variables
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Werror")
+
+add_executable (${TARGET_IN_CALL_AUDIO_APP} ${IN_CALL_AUDIO_APP_SOURCES})
+target_link_libraries(${TARGET_IN_CALL_AUDIO_APP} telux_audio)
+
+# install to target
+install ( TARGETS ${TARGET_IN_CALL_AUDIO_APP}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_BINDIR} )
diff --git a/apps/samples/audio/in_call_audio_app/InCallAudioApp.cpp b/apps/samples/audio/in_call_audio_app/InCallAudioApp.cpp
new file mode 100644
index 0000000..8add18e
--- /dev/null
+++ b/apps/samples/audio/in_call_audio_app/InCallAudioApp.cpp
@@ -0,0 +1,331 @@
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <future>
+#include <iostream>
+#include <condition_variable>
+
+#include <telux/audio/AudioFactory.hpp>
+#include "InCallAudioApp.hpp"
+
+using std::promise;
+using namespace telux::common;
+using namespace telux::audio;
+
+const uint32_t MODEM_SUB_ID = 1;
+const uint32_t SAMPLE_RATE = 48000;
+// Below constant represents number of buffers allocated to pass Bitstream. Additional number of
+// buffers would provide flexibility in copying Bitsream from source and write to Stream Interface
+// in two parallel threaded operations.
+const int TOTAL_BUFFERS = 1;
+
+InCallAudioApp::InCallAudioApp() {
+ pipeLineEmpty_ = true;
+}
+
+InCallAudioApp::~InCallAudioApp() {
+}
+
+Status InCallAudioApp::init() {
+ // Get the AudioFactory and AudioManager instances.
+ auto &audioFactory = AudioFactory::getInstance();
+ audioManager_ = audioFactory.getAudioManager();
+
+ // Requesting to get audio subsystem state
+ bool subSystemStatus = audioManager_->isSubsystemReady();
+
+ // Checking state of audio subsystem if it is ready or not, if not ready waiting for it to
+ // get ready.
+ if (!subSystemStatus) {
+ std::future<bool> f = audioManager_->onSubsystemReady();
+ subSystemStatus = f.get();
+ }
+
+ if (subSystemStatus) {
+ std::cout << "Audio Subsystem is ready." << std::endl;
+ } else {
+ std::cout << "Audio Subsystem is NOT ready." << std::endl;
+ return Status::FAILED;
+ }
+ return Status::SUCCESS;
+}
+
+Status InCallAudioApp::createVoiceStream() {
+ StreamConfig config;
+ config.type = StreamType::VOICE_CALL;
+ config.modemSubId = 1;
+ config.sampleRate = 16000;
+ config.format = AudioFormat::PCM_16BIT_SIGNED;
+ config.channelTypeMask = ChannelType::LEFT;
+ config.deviceTypes.emplace_back(DeviceType::DEVICE_TYPE_SPEAKER);
+
+ std::promise<bool> p;
+ auto status = audioManager_->createStream(config,
+ [&p,this](std::shared_ptr<IAudioStream> &audioStream, ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ audioVoiceStream_ = std::dynamic_pointer_cast<IAudioVoiceStream>(audioStream);
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "failed to Create a stream" <<std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to create stream sent" << std::endl;
+ } else {
+ std::cout << "Request to create stream failed" << std::endl;
+ }
+
+ if (p.get_future().get()) {
+ std::cout<< "Audio Voice Stream is Created" << std::endl;
+ } else {
+ std::cout<< "Audio Voice Stream Creation Failed !!" << std::endl;
+ return Status::FAILED;
+ }
+ return Status::SUCCESS;
+}
+
+Status InCallAudioApp::createPlayStream() {
+ StreamConfig config;
+ config.type = StreamType::PLAY;
+ config.modemSubId = MODEM_SUB_ID;
+ config.sampleRate = SAMPLE_RATE;
+ config.format = AudioFormat::AMRWB_PLUS;
+ // here both channel selected, this can be selected according to requirement
+ config.channelTypeMask = (ChannelType::LEFT | ChannelType::RIGHT);
+ // Direction::TX indicates Voice Uplink Playback
+ config.voicePaths.emplace_back(Direction::TX);
+ // Passing Decoder Specific Configuration, refer header file for more details.
+ AmrwbpParams amrParams{};
+ if (config.format == AudioFormat::AMRWB_PLUS) {
+ amrParams.bitWidth = 16;
+ amrParams.frameFormat = AmrwbpFrameFormat::FILE_STORAGE_FORMAT;
+ config.formatParams = &amrParams;
+ } else {
+ config.formatParams = nullptr;
+ }
+
+ std::promise<bool> p;
+ auto status = audioManager_->createStream(config,
+ [&p,this](std::shared_ptr<IAudioStream> &audioStream, ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ audioPlayStream_ = std::dynamic_pointer_cast<IAudioPlayStream>(audioStream);
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "failed to Create a stream" <<std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to create stream sent" << std::endl;
+ } else {
+ std::cout << "Request to create stream failed" << std::endl;
+ }
+
+ if (p.get_future().get()) {
+ std::cout<< "Audio Play Stream is Created" << std::endl;
+ } else {
+ std::cout<< "Audio Play Stream Creation Failed !!" << std::endl;
+ return Status::FAILED;
+ }
+ return Status::SUCCESS;
+}
+
+Status InCallAudioApp::deletePlayStream() {
+ std::promise<bool> p;
+ Status status = audioManager_-> deleteStream(audioPlayStream_, [&p,this](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to delete a stream" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to delete stream sent" << std::endl;
+ } else {
+ std::cout << "Request to delete stream failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ audioPlayStream_= nullptr;
+ std::cout << "Audio Play Stream is Deleted" << std::endl;
+ } else {
+ return Status::FAILED;
+ }
+ return Status::SUCCESS;
+}
+
+Status InCallAudioApp::deleteVoiceStream() {
+ std::promise<bool> p;
+ auto status = audioManager_-> deleteStream(audioVoiceStream_, [&p,this](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to delete a stream" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to delete stream sent" << std::endl;
+ } else {
+ std::cout << "Request to delete stream failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ audioVoiceStream_= nullptr;
+ std::cout << "Audio Voice Stream is Deleted" << std::endl;
+ } else {
+ return Status::FAILED;
+ }
+ return Status::SUCCESS;
+}
+
+// Callback to provide response to the write request
+void InCallAudioApp::writeCallback(std::shared_ptr<IStreamBuffer> buffer,
+ uint32_t bytes, ErrorCode error) {
+ std::cout << "Bytes Written : " << bytes << std::endl;
+ if (error != ErrorCode::SUCCESS || buffer->getDataSize() != bytes) {
+ // Application needs to resend the Bitstream buffer from leftover position if bytes
+ // consumed are not equal to requested number of bytes to be written.
+ pipeLineEmpty_ = false;
+ }
+ buffer->reset();
+ freeBuffers_.push(buffer);
+ cv_.notify_all();
+ return;
+}
+
+// This event is received in case of compressed audio format playback, it is received when the
+// buffer pipeline is ready to accept new buffers.
+void InCallAudioApp::onReadyForWrite() {
+ pipeLineEmpty_ = true;
+ cv_.notify_all();
+}
+
+// This event is received when audio playback is stopped with stopAudio() with
+// StopType::STOP_AFTER_PLAY and all the buffers in pipeline are played successfully.
+void InCallAudioApp::onPlayStopped() {
+ std::cout << "Playback Stopped after playing pending buffers in pipeline" << std::endl;
+}
+
+void InCallAudioApp::play() {
+ std::mutex mutex;
+ std::unique_lock<std::mutex> lock(mutex);
+ // Pointer variable to stream buffer
+ std::shared_ptr<IStreamBuffer> streamBuffer;
+ uint32_t size; // variable to define buffer size
+ for (int i = 0; i < TOTAL_BUFFERS; i++) {
+ streamBuffer = audioPlayStream_->getStreamBuffer();
+ if (streamBuffer != nullptr) {
+ freeBuffers_.push(streamBuffer);
+ size = streamBuffer->getMinSize();
+ if (size == 0) {
+ size = streamBuffer->getMaxSize();
+ }
+ streamBuffer->setDataSize(size);
+ } else {
+ std::cout << "Failed to get Stream Buffer " << std::endl;
+ return;
+ }
+ // Here Bitstream content passed as zero for representation only. Actually valid Bitstream
+ // of "size" bytes need to be passed, except during end of operation where "size"
+ // represents last leftover Bitstream.
+ memset(streamBuffer->getRawBuffer(),0,size);
+ }
+ if (!freeBuffers_.empty() && pipeLineEmpty_) {
+ streamBuffer = freeBuffers_.front();
+ freeBuffers_.pop();
+ auto writeCb = std::bind(&InCallAudioApp::writeCallback, this, std::placeholders::_1,
+ std::placeholders::_2, std::placeholders::_3);
+ auto status = audioPlayStream_->write(streamBuffer,writeCb);
+ if (status != Status::SUCCESS) {
+ std::cout << "Request to write to stream failed." << std::endl;
+ } else {
+ std::cout << "Request to write to stream sent." << std::endl;
+ }
+ } else {
+ cv_.wait(lock);
+ }
+ // Calling stopAudio() with StopType::STOP_AFTER_PLAY as if last buffer is not the complete
+ // buffer we need to call it to play remaining buffer successfully.
+ std::promise<bool> p;
+ auto status = audioPlayStream_->stopAudio(StopType::STOP_AFTER_PLAY, [&p](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to stop after playing buffers" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to stop playback after pending buffers Sent" << std::endl;
+ } else {
+ std::cout << "Request to stop playback after pending buffers failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ std::cout << "Pending buffers played successful !!" << std::endl;
+ }
+}
+
+int main(int, char **) {
+ // Creating an instance of application
+ std::shared_ptr<InCallAudioApp> app = std::make_shared<InCallAudioApp>();
+ // Initialing the object
+ auto status = app->init();
+ if (Status::SUCCESS != status) {
+ return EXIT_FAILURE;
+ }
+
+ // Creating an audio voice stream
+ status = app->createVoiceStream();
+ if (Status::SUCCESS != status) {
+ return EXIT_FAILURE;
+ }
+
+ // Creating an audio playback stream
+ status = app->createPlayStream();
+ if (Status::SUCCESS != status) {
+ return EXIT_FAILURE;
+ }
+
+ // Playing buffer
+ app->play();
+
+ // Deleting audio play stream
+ status = app->deletePlayStream();
+ if (Status::SUCCESS != status) {
+ return EXIT_FAILURE;
+ }
+
+ // Deleting audio voice stream
+ status = app->deleteVoiceStream();
+ if (Status::SUCCESS != status) {
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/apps/samples/audio/in_call_audio_app/InCallAudioApp.hpp b/apps/samples/audio/in_call_audio_app/InCallAudioApp.hpp
new file mode 100644
index 0000000..546383e
--- /dev/null
+++ b/apps/samples/audio/in_call_audio_app/InCallAudioApp.hpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include<queue>
+
+#include <telux/audio/AudioManager.hpp>
+#include <telux/audio/AudioListener.hpp>
+
+using namespace telux::audio;
+using namespace telux::common;
+
+class InCallAudioApp : public IPlayListener,
+ public std::enable_shared_from_this<InCallAudioApp> {
+public:
+ InCallAudioApp();
+ ~InCallAudioApp();
+ Status init();
+ Status createPlayStream();
+ Status createVoiceStream();
+ Status deleteVoiceStream();
+ Status deletePlayStream();
+ void play();
+ void onReadyForWrite() override;
+ void onPlayStopped() override;
+
+private:
+ void writeCallback(std::shared_ptr<IStreamBuffer> buffer, uint32_t bytes, ErrorCode error);
+
+ std::shared_ptr<IAudioPlayStream> audioPlayStream_;
+ std::shared_ptr<IAudioVoiceStream> audioVoiceStream_;
+ std::shared_ptr<IAudioManager> audioManager_;
+ std::condition_variable cv_;
+ // Flag to represent if any Bitstream Buffer partial consumed and wait for event to trigger.
+ bool pipeLineEmpty_;
+ std::queue<std::shared_ptr<IStreamBuffer>> freeBuffers_;
+};
diff --git a/apps/tests/audio_console_app/AudioClient.cpp b/apps/tests/audio_console_app/AudioClient.cpp
index 3b66783..bca48d5 100644
--- a/apps/tests/audio_console_app/AudioClient.cpp
+++ b/apps/tests/audio_console_app/AudioClient.cpp
@@ -164,10 +164,14 @@ void AudioClient::takeUserChannelInput(telux::audio::ChannelTypeMask &channelTyp
}
}
-void AudioClient::takeUserDeviceInput(std::vector<telux::audio::DeviceType> &devices) {
+void AudioClient::takeUserDeviceInput(std::vector<telux::audio::DeviceType> &devices, StreamType &streamType) {
std::string userInput = "";
int command = -1;
int numDevices=0;
+ if (streamType == StreamType::LOOPBACK) {
+ std::cout << "Note: This Stream requires two devices" << std::endl;
+ std::cout << "Please provide first device as RX and second as TX" << std::endl;
+ }
while(1) {
std::cout << "Enter no. of devices : " ;
if(std::getline(std::cin, userInput)) {
@@ -331,7 +335,7 @@ void AudioClient::takeUserCreateStreamInput(telux::audio::StreamConfig &config)
}
fclose(file);
}
- takeUserDeviceInput(config.deviceTypes);
+ takeUserDeviceInput(config.deviceTypes, config.type);
if (config.type == telux::audio::StreamType::PLAY) {
takeUserVoicePathInput(config.voicePaths);
}
@@ -418,7 +422,8 @@ Status AudioClient::createStream(StreamType streamType) {
if(audioStatus == Status::SUCCESS) {
std::cout << "Request to create stream sent" << std::endl;
} else {
- std::cout << "Request to delete stream failed" << std::endl;
+ std::cout << "Request to create stream failed" << std::endl;
+ return Status::FAILED;
}
if (p.get_future().get()) {
@@ -528,7 +533,7 @@ void AudioClient::setStreamDevice(StreamType streamType) {
std::promise<bool> p;
if(stream_) {
std::vector<telux::audio::DeviceType> devices;
- takeUserDeviceInput(devices);
+ takeUserDeviceInput(devices, streamType);
telux::common::Status status = stream_->setDevice(devices,
[&p,this](telux::common::ErrorCode error) {
if (error == telux::common::ErrorCode::SUCCESS) {
diff --git a/apps/tests/audio_console_app/AudioClient.hpp b/apps/tests/audio_console_app/AudioClient.hpp
index 7b2a92a..2e3ef1a 100644
--- a/apps/tests/audio_console_app/AudioClient.hpp
+++ b/apps/tests/audio_console_app/AudioClient.hpp
@@ -80,7 +80,7 @@ private:
void takeAudioFormatInput(AudioFormat &audioFormat);
void takeUserSampleRateInput(uint32_t &userSampleRate);
void takeUserChannelInput(telux::audio::ChannelTypeMask &channelType);
- void takeUserDeviceInput(std::vector<telux::audio::DeviceType> &devices);
+ void takeUserDeviceInput(std::vector<telux::audio::DeviceType> &devices, StreamType &streamType);
void takeUserCreateStreamInput(telux::audio::StreamConfig &config);
void takeUserDirectionInput(StreamDirection &direction);
void takeUserVolumeInput(StreamVolume &streamVolume);
diff --git a/apps/tests/audio_console_app/TransCodeMenu.cpp b/apps/tests/audio_console_app/TransCodeMenu.cpp
index 466f8f0..95e62ca 100644
--- a/apps/tests/audio_console_app/TransCodeMenu.cpp
+++ b/apps/tests/audio_console_app/TransCodeMenu.cpp
@@ -293,6 +293,7 @@ void TransCodeMenu::read() {
fclose(readFile_);
readStatus_ = false;
std::cout << "Transcoding Successful" <<std::endl;
+ abortTranscoding({});
}
void TransCodeMenu::readCallback(std::shared_ptr<telux::audio::IAudioBuffer> buffer,
diff --git a/apps/tests/location_test_app/LocationMenu.cpp b/apps/tests/location_test_app/LocationMenu.cpp
index cb88c36..05fb333 100644
--- a/apps/tests/location_test_app/LocationMenu.cpp
+++ b/apps/tests/location_test_app/LocationMenu.cpp
@@ -155,7 +155,7 @@ int LocationMenu::init() {
std::bind(&LocationMenu::enableDisableTunc, this, std::placeholders::_1)));
std::vector<std::shared_ptr<ConsoleAppCommand>> commandsListGnssSubMenu
- = {startDetailedReportsCommand, startBasicReportsCommand, startDetailedEngineReportsCommand,
+ = {startDetailedReportsCommand, startDetailedEngineReportsCommand, startBasicReportsCommand,
stopReportsCommand, enableReportLogsCommand, enableDisableTunc};
addCommands(commandsListGnssSubMenu);
ConsoleApp::displayMenu();
diff --git a/apps/tests/telsdk_console_app/Data/DataMenu.cpp b/apps/tests/telsdk_console_app/Data/DataMenu.cpp
index 2d98a12..a171ca4 100644
--- a/apps/tests/telsdk_console_app/Data/DataMenu.cpp
+++ b/apps/tests/telsdk_console_app/Data/DataMenu.cpp
@@ -348,7 +348,7 @@ void DataMenu::startDataCall(std::vector<std::string> inputCommand) {
char delimiter = '\n';
std::string apn;
std::cin.get();
- std::cout << "Enter APN: ";
+ std::cout << "Enter APN (used only in low latency calls): ";
std::getline(std::cin, apn, delimiter);
int operationType;
diff --git a/apps/tests/telsdk_console_app/ECall/ECallMenu.cpp b/apps/tests/telsdk_console_app/ECall/ECallMenu.cpp
index d866ad1..5ab5e20 100644
--- a/apps/tests/telsdk_console_app/ECall/ECallMenu.cpp
+++ b/apps/tests/telsdk_console_app/ECall/ECallMenu.cpp
@@ -88,43 +88,43 @@ void ECallMenu::init() {
std::shared_ptr<ConsoleAppCommand> eCallSosCommand
= std::make_shared<ConsoleAppCommand>(ConsoleAppCommand(
- "1", "ECall-SOS", {}, std::bind(&ECallMenu::eCallSos, this, std::placeholders::_1)));
+ "s", "ECall-SOS", {}, std::bind(&ECallMenu::eCallSos, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> eCallCommand = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("2", "ECall", {ECALL_CATEGORY_AUTO + " | " + ECALL_CATEGORY_MANUAL,
+ ConsoleAppCommand("e", "ECall", {ECALL_CATEGORY_AUTO + " | " + ECALL_CATEGORY_MANUAL,
ECALL_VARIANT_TEST + " | " + ECALL_VARIANT_EMERGENCY},
std::bind(&ECallMenu::makeECall, this, std::placeholders::_1)));
- std::shared_ptr<ConsoleAppCommand> voiceECallCommand = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("3", "Voice_ECall", {ECALL_CATEGORY_AUTO + " | " + ECALL_CATEGORY_MANUAL,
- "phone number"},
- std::bind(&ECallMenu::makeVoiceECall, this, std::placeholders::_1)));
+ std::shared_ptr<ConsoleAppCommand> customECallCommand = std::make_shared<ConsoleAppCommand>(
+ ConsoleAppCommand("c", "Custom_Number_ECall", {ECALL_CATEGORY_AUTO + " | " +
+ ECALL_CATEGORY_MANUAL, "phone number"},
+ std::bind(&ECallMenu::makeCustomNumberECall, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> updateMsdCommand = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("4", "Update_eCall_MSD", {},
+ ConsoleAppCommand("m", "Update_eCall_MSD", {},
std::bind(&ECallMenu::updateECallMSD, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> dialCommad
= std::make_shared<ConsoleAppCommand>(ConsoleAppCommand(
- "5", "Dial", {"number"}, std::bind(&ECallMenu::makeCall, this, std::placeholders::_1)));
+ "d", "Dial", {"number"}, std::bind(&ECallMenu::makeCall, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> hangupCommand
= std::make_shared<ConsoleAppCommand>(ConsoleAppCommand(
- "6", "Hangup", {}, std::bind(&ECallMenu::hangup, this, std::placeholders::_1)));
+ "n", "Hangup", {}, std::bind(&ECallMenu::hangup, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> getCallsCommand = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("7", "Get_InProgress_calls", {},
+ ConsoleAppCommand("g", "Get_InProgress_calls", {},
std::bind(&ECallMenu::getCalls, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> answerCallCommand
= std::make_shared<ConsoleAppCommand>(ConsoleAppCommand(
- "8", "Answer_call", {}, std::bind(&ECallMenu::answerCall, this, std::placeholders::_1)));
+ "a", "Answer_call", {}, std::bind(&ECallMenu::answerCall, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> eCallWithPdu = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("9", "eCall_with_MSD_PDU", {},
+ ConsoleAppCommand("p", "eCall_with_MSD_PDU", {},
std::bind(&ECallMenu::eCallWithPdu, this, std::placeholders::_1)));
std::shared_ptr<ConsoleAppCommand> updateEcallMsd = std::make_shared<ConsoleAppCommand>(
- ConsoleAppCommand("10", "Update_eCall_MSD_PDU", {},
+ ConsoleAppCommand("u", "Update_eCall_MSD_PDU", {},
std::bind(&ECallMenu::updateEcallMsdWithPdu, this, std::placeholders::_1)));
std::vector<std::shared_ptr<ConsoleAppCommand>> commandsList
- = {eCallSosCommand, eCallCommand, voiceECallCommand, updateMsdCommand, dialCommad,
+ = {eCallSosCommand, eCallCommand, customECallCommand, updateMsdCommand, dialCommad,
hangupCommand, getCallsCommand, answerCallCommand, eCallWithPdu, updateEcallMsd};
addCommands(commandsList);
@@ -318,9 +318,9 @@ void ECallMenu::makeECall(std::vector<std::string> inputCommand) {
}
/**
- * Sample voice eCall operation
+ * Sample eCall operation to a custom phone number
*/
-void ECallMenu::makeVoiceECall(std::vector<std::string> inputCommand) {
+void ECallMenu::makeCustomNumberECall(std::vector<std::string> inputCommand) {
// Get Phone from PhoneFactory
auto &phoneFactory = telux::tel::PhoneFactory::getInstance();
auto spDefaultPhone = phoneFactory.getPhoneManager()->getPhone();
@@ -344,7 +344,7 @@ void ECallMenu::makeVoiceECall(std::vector<std::string> inputCommand) {
auto eCallMsdData = msdSettings.readMsdFromFile(MSDSETTINGS_FILE);
auto callManager = phoneFactory.getCallManager();
int phoneId = DEFAULT_PHONE_ID;
- auto ret = callManager->makeVoiceECall(phoneId, dialNumber, eCallMsdData, (int)emergencyCategory,
+ auto ret = callManager->makeECall(phoneId, dialNumber, eCallMsdData, (int)emergencyCategory,
callCommandCallback_);
std::cout
<< (ret == telux::common::Status::SUCCESS ? GREEN + " ECall request is successful" + DONE
@@ -386,7 +386,7 @@ void ECallMenu::eCallWithPdu(std::vector<std::string> inputCommand) {
opt1 = CATEGORY_AUTO;
}
std::string variant;
- std::cout << "Enter variant(1 - test | 2 - emergency | 3 - voice): ";
+ std::cout << "Enter variant(1 - test | 2 - emergency | 3 - emergency with custom number): ";
std::getline(std::cin, variant, delimiter);
int opt2 = -1;
if(!variant.empty()) {
@@ -421,7 +421,8 @@ void ECallMenu::eCallWithPdu(std::vector<std::string> inputCommand) {
} else if(opt2 == VARIANT_EMERGENCY) { // Will use the emergency number configured in FDN
// i.e. 112.
eCallVariant = telux::tel::ECallVariant::ECALL_EMERGENCY;
- } else if(opt2 == VARIANT_VOICE) { // Will use the emergency number provided by user
+ } else if(opt2 == VARIANT_EMERGENCY_CUSTOM_NUMBER) { // Will use the emergency number provided
+ // by user
eCallVariant = telux::tel::ECallVariant::ECALL_VOICE;
std::cout << "Enter the phone number : ";
std::getline(std::cin, dialNumber, delimiter);
@@ -450,7 +451,7 @@ void ECallMenu::eCallWithPdu(std::vector<std::string> inputCommand) {
ret = callManager->makeECall(phoneId, rawData, (int)emergencyCategory, (int)eCallVariant,
&makeEcallResponse);
} else {
- ret = callManager->makeVoiceECall(phoneId, dialNumber, rawData, (int)emergencyCategory,
+ ret = callManager->makeECall(phoneId, dialNumber, rawData, (int)emergencyCategory,
&makeEcallResponse);
}
std::cout
diff --git a/apps/tests/telsdk_console_app/ECall/ECallMenu.hpp b/apps/tests/telsdk_console_app/ECall/ECallMenu.hpp
index 64ee3f7..080df9b 100644
--- a/apps/tests/telsdk_console_app/ECall/ECallMenu.hpp
+++ b/apps/tests/telsdk_console_app/ECall/ECallMenu.hpp
@@ -55,7 +55,7 @@ extern "C" {
#define CATEGORY_MANUAL 2
#define VARIANT_TEST 1
#define VARIANT_EMERGENCY 2
-#define VARIANT_VOICE 3
+#define VARIANT_EMERGENCY_CUSTOM_NUMBER 3
const std::string ECALL_CATEGORY_AUTO = "auto";
const std::string ECALL_CATEGORY_MANUAL = "manual";
@@ -92,7 +92,7 @@ private:
/**
* Sample voice eCall operation
*/
- void makeVoiceECall(std::vector<std::string> inputCommand);
+ void makeCustomNumberECall(std::vector<std::string> inputCommand);
/**
* Sample eCall operation with raw PDU
diff --git a/apps/tests/telsdk_console_app/ECall/MyECallListener.cpp b/apps/tests/telsdk_console_app/ECall/MyECallListener.cpp
index 69a52a9..77b8c6b 100644
--- a/apps/tests/telsdk_console_app/ECall/MyECallListener.cpp
+++ b/apps/tests/telsdk_console_app/ECall/MyECallListener.cpp
@@ -44,7 +44,7 @@ void MyECallListener::onIncomingCall(std::shared_ptr<telux::tel::ICall> call) {
std::cout << std::endl << std::endl;
PRINT_NOTIFICATION << getCurrentTime() << "Answer incoming call" << std::endl;
std::string user_string;
- std::cout << " Enter 7 to answer call " << std::endl;
+ std::cout << " Enter \"a\" to answer call " << std::endl;
}
void MyECallListener::onCallInfoChange(std::shared_ptr<telux::tel::ICall> call) {
diff --git a/bin/libtelux_audio.sym b/bin/libtelux_audio.sym
index b0e6808..4fa11c2 100644
--- a/bin/libtelux_audio.sym
+++ b/bin/libtelux_audio.sym
@@ -16,7 +16,40 @@
-Wl,--defsym=_ZN5telux5audio12AudioFactoryC2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio12AudioFactoryD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio12AudioFactoryD2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio13AudioUserDataD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio13AudioUserDataD2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio14IVoiceListener19onDtmfToneDetectionENS0_8DtmfToneE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl13getReadBufferEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl14getWriteBufferEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl16registerListenerESt8weak_ptrINS0_18ITranscodeListenerEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl18deRegisterListenerESt8weak_ptrINS0_18ITranscodeListenerEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl20onStreamReadResponseEP30audio_stream_read_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl21onStreamWriteResponseEP31audio_stream_write_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl22onWriteReadyIndicationERK30audio_stream_write_ind_msg_v01=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl28onTranscoderTeardownResponseEP38audio_teardown_transcoder_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl4initEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl4readESt10shared_ptrINS0_12IAudioBufferEEjSt8functionIFvS4_jNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl5writeESt10shared_ptrINS0_12IAudioBufferEEjSt8functionIFvS4_jNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImpl8tearDownESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImplC1Ejjjjj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImplC2Ejjjjj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio14TranscoderImplD2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl10getMaxSizeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl10getMinSizeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl11getDataSizeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl11setDataSizeEj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl12getQmiBufferEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl12getRawBufferEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl14getQmiBuffSizeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl15setAsLastBufferEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImpl5resetEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImplC1Ejjjj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImplC2Ejjjj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio15AudioBufferImplD2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio15AudioDeviceImpl12getDirectionEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio15AudioDeviceImpl12setDirectionENS0_15DeviceDirectionE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio15AudioDeviceImpl7getTypeEv=so_stub_for_libtelux_audio
@@ -51,12 +84,14 @@
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl12deleteStreamESt10shared_ptrINS0_12IAudioStreamEESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl13releaseStreamESt10shared_ptrINS0_12IAudioStreamEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl14getStreamTypesESt8functionIFvSt6vectorINS0_10StreamTypeESaIS4_EENS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl16createTranscoderENS0_10FormatInfoES2_St8functionIFvRSt10shared_ptrINS0_11ITranscoderEENS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl16isSubsystemReadyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl16onSubsystemReadyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl21waitForInitializationEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl22onCreateStreamResponseEP32audio_create_stream_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl22onDeleteStreamResponseEP31audio_close_stream_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl23onLoadSubsystemResponseEP33audio_load_subsystem_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl26onCreateTranscoderResponseEP36audio_create_transcoder_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl29onGetSupportedDevicesResponseEP40audio_get_supported_devices_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl29onGetSupportedStreamsResponseEP40audio_get_supported_streams_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImpl4initEv=so_stub_for_libtelux_audio
@@ -66,14 +101,6 @@
-Wl,--defsym=_ZN5telux5audio16AudioManagerImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16AudioManagerImplD2Ev=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl10getMaxSizeEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl10getMinSizeEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl11getDataSizeEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl11setDataSizeEj=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl12getQmiBufferEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl12getRawBufferEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl14getQmiBuffSizeEv=so_stub_for_libtelux_audio
--Wl,--defsym=_ZN5telux5audio16StreamBufferImpl5resetEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16StreamBufferImplC1Ejjjj=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16StreamBufferImplC2Ejjjj=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux5audio16StreamBufferImplD0Ev=so_stub_for_libtelux_audio
@@ -148,6 +175,9 @@
-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio14IVoiceListenerEE16registerListenerESt8weak_ptrIS3_E=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio14IVoiceListenerEE18deRegisterListenerESt8weak_ptrIS3_E=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio14IVoiceListenerEE21getAvailableListenersERSt6vectorISt8weak_ptrIS3_ESaIS7_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio18ITranscodeListenerEE16registerListenerESt8weak_ptrIS3_E=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio18ITranscodeListenerEE18deRegisterListenerESt8weak_ptrIS3_E=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common15ListenerManagerINS_5audio18ITranscodeListenerEE21getAvailableListenersERSt6vectorISt8weak_ptrIS3_ESaIS7_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common16ICommandCallbackD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common16ICommandCallbackD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common16ICommandCallbackD2Ev=so_stub_for_libtelux_audio
@@ -160,9 +190,15 @@
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIINS_5audio12StreamVolumeENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIINS_5audio12StreamVolumeENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIINS_5audio12StreamVolumeENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIISt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
@@ -187,9 +223,15 @@
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEED2Ev=so_stub_for_libtelux_audio
@@ -208,7 +250,9 @@
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIINS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIINS_5audio10StreamMuteENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIINS_5audio12StreamVolumeENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIIRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIIRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIISt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIISt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIISt10shared_ptrINS_5audio13IStreamBufferEEjNS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIISt6vectorINS_5audio10DeviceTypeESaIS5_EENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
@@ -217,16 +261,21 @@
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJNS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJNS_5audio10StreamMuteENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEEjNS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt6vectorINS_5audio10DeviceTypeESaIS5_EENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt6vectorINS_5audio10StreamTypeESaIS5_EENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager11addCallbackIJSt6vectorISt10shared_ptrINS_5audio12IAudioDeviceEESaIS7_EENS0_9ErrorCodeEEEEiSt8functionIFvDpT_EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIDnNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIDnRNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRNS_5audio10StreamMuteERNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRNS_5audio12StreamVolumeERNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt10shared_ptrINS_5audio14TranscoderImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt10shared_ptrINS_5audio15AudioBufferImplEERjRNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt10shared_ptrINS_5audio16StreamBufferImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt10shared_ptrINS_5audio16StreamBufferImplEERjRNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt10shared_ptrINS_5audio19AudioPlayStreamImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
@@ -239,9 +288,12 @@
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRSt6vectorISt10shared_ptrINS_5audio15AudioDeviceImplEESaIS7_EERNS0_9ErrorCodeEEEEvS4_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIIRjRNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJDnNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJDnRNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRNS_5audio10StreamMuteERNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRNS_5audio12StreamVolumeERNS0_9ErrorCodeEEEEvSt10shared_ptrINS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRSt10shared_ptrINS_5audio14TranscoderImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRSt10shared_ptrINS_5audio15AudioBufferImplEERjRNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRSt10shared_ptrINS_5audio16StreamBufferImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRSt10shared_ptrINS_5audio16StreamBufferImplEERjRNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN5telux6common22CommandCallbackManager15executeCallbackIJRSt10shared_ptrINS_5audio19AudioPlayStreamImplEERNS0_9ErrorCodeEEEEvS3_INS0_16ICommandCallbackEEDpOT_=so_stub_for_libtelux_audio
@@ -276,6 +328,7 @@
-Wl,--defsym=_ZN9__gnu_cxx12__to_xstringINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEET_PFiPT0_jPKS8_St9__va_listEjSB_z=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN9__gnu_cxx5__ops10_Iter_predIZN5telux6common15ListenerManagerINS2_5audio13IPlayListenerEE16registerListenerESt8weak_ptrIS6_EEUlS9_E_EclINS_17__normal_iteratorIPS9_St6vectorIS9_SaIS9_EEEEEEbT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZN9__gnu_cxx5__ops10_Iter_predIZN5telux6common15ListenerManagerINS2_5audio14IVoiceListenerEE16registerListenerESt8weak_ptrIS6_EEUlS9_E_EclINS_17__normal_iteratorIPS9_St6vectorIS9_SaIS9_EEEEEEbT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZN9__gnu_cxx5__ops10_Iter_predIZN5telux6common15ListenerManagerINS2_5audio18ITranscodeListenerEE16registerListenerESt8weak_ptrIS6_EEUlS9_E_EclINS_17__normal_iteratorIPS9_St6vectorIS9_SaIS9_EEEEEEbT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNKSt13__future_base13_State_baseV221_M_is_deferred_futureEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt10_HashtableIiSt4pairIKiSt10shared_ptrIN5telux6common16ICommandCallbackEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEjjPNS9_10_Hash_nodeIS7_Lb0EEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt10_HashtableIiSt4pairIKiSt10shared_ptrIN5telux6common16ICommandCallbackEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEjRKj=so_stub_for_libtelux_audio
@@ -284,6 +337,10 @@
-Wl,--defsym=_ZNSt10_HashtableIjSt4pairIKjSt10shared_ptrIN5telux5audio12IAudioStreamEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt10_HashtableIjSt4pairIKjSt10shared_ptrIN5telux5audio12IAudioStreamEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt11_Deque_baseISt13shared_futureIvESaIS1_EE17_M_initialize_mapEj=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio14TranscoderImplELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EIRjS8_S8_S8_S8_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio14TranscoderImplELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJRjS8_S8_S8_S8_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio14TranscoderImplELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIRjS8_S8_S8_S8_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio14TranscoderImplELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EJRjS8_S8_S8_S8_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio16AudioManagerImplELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EIEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio16AudioManagerImplELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux5audio16AudioManagerImplELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
@@ -316,8 +373,12 @@
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIINS0_5audio12StreamVolumeENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS6_EIRSt8functionIFvS4_S5_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIINS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS4_EIRSt8functionIFvS3_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIINS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS4_EIRSt8functionIFvS3_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS9_EIRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS9_EIRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS9_EIRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS9_EIRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EIRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS8_EIRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EIRSt8functionIFvS6_S7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS8_EIRSt8functionIFvS6_S7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EIRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
@@ -334,8 +395,12 @@
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJNS0_5audio12StreamVolumeENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS6_EJRSt8functionIFvS4_S5_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS4_EJRSt8functionIFvS3_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS4_EJRSt8functionIFvS3_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS9_EJRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS9_EJRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS9_EJRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS9_EJRSt8functionIFvS7_S8_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EJRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS8_EJRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EJRSt8functionIFvS6_S7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS8_EJRSt8functionIFvS6_S7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEEjNS1_9ErrorCodeEEEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS8_EJRSt8functionIFvS6_jS7_EEEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_audio
@@ -371,6 +436,18 @@
-Wl,--defsym=_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE15_M_weak_releaseEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
@@ -431,6 +508,12 @@
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
@@ -449,12 +532,24 @@
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIINS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIIRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIISt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
@@ -503,12 +598,24 @@
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_audio
@@ -565,6 +672,13 @@
-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio14IVoiceListenerEESaIS4_EE19_M_emplace_back_auxIJRSt10shared_ptrIS3_EEEEvDpOT_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio14IVoiceListenerEESaIS4_EED1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio14IVoiceListenerEESaIS4_EED2Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EE19_M_emplace_back_auxIIRS4_EEEvDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EE19_M_emplace_back_auxIIRSt10shared_ptrIS3_EEEEvDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EE19_M_emplace_back_auxIJRS4_EEEvDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EE19_M_emplace_back_auxIJRSt10shared_ptrIS3_EEEEvDpOT_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS4_S6_EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EED1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZNSt6vectorISt8weak_ptrIN5telux5audio18ITranscodeListenerEESaIS4_EED2Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt6vectorItSaItEE17_M_default_appendEj=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag=so_stub_for_libtelux_audio
-Wl,--defsym=_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev=so_stub_for_libtelux_audio
@@ -581,8 +695,10 @@
-Wl,--defsym=_ZSt4moveISt13shared_futureIvEESt15_Deque_iteratorIT_RS3_PS3_ES2_IS3_RKS3_PS7_ESA_S6_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio13IPlayListenerEESt6vectorIS6_SaIS6_EEEEZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_ET_SG_SG_T0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio14IVoiceListenerEESt6vectorIS6_SaIS6_EEEEZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_ET_SG_SG_T0_=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio18ITranscodeListenerEESt6vectorIS6_SaIS6_EEEEZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_ET_SG_SG_T0_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio13IPlayListenerEESt6vectorIS6_SaIS6_EEEENS0_5__ops10_Iter_predIZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_EEET_SJ_SJ_T0_St26random_access_iterator_tag=so_stub_for_libtelux_audio
-Wl,--defsym=_ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio14IVoiceListenerEESt6vectorIS6_SaIS6_EEEENS0_5__ops10_Iter_predIZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_EEET_SJ_SJ_T0_St26random_access_iterator_tag=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPSt8weak_ptrIN5telux5audio18ITranscodeListenerEESt6vectorIS6_SaIS6_EEEENS0_5__ops10_Iter_predIZNS3_6common15ListenerManagerIS5_E16registerListenerES6_EUlS6_E_EEET_SJ_SJ_T0_St26random_access_iterator_tag=so_stub_for_libtelux_audio
-Wl,--defsym=_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi12IQmiListenerE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi19IQmiToneGenCallbackE=so_stub_for_libtelux_audio
@@ -606,12 +722,18 @@
-Wl,--defsym=_ZTIN5telux3qmi27IQmiStreamGetVolumeCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi27IQmiStreamSetDeviceCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi27IQmiStreamSetVolumeCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux3qmi28IQmiCreateTranscoderCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux3qmi30IQmiTranscoderTeardownCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi31IQmiGetSupportedDevicesCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux3qmi31IQmiGetSupportedStreamsCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux5audio11ITranscoderE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux5audio12IAudioBufferE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio12IAudioDeviceE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio12IAudioStreamE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio13IAudioManagerE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio13IStreamBufferE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux5audio14TranscoderImplE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux5audio15AudioBufferImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio15AudioDeviceImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio15AudioStreamImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux5audio16AudioManagerImplE=so_stub_for_libtelux_audio
@@ -631,7 +753,9 @@
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJNS_5audio10StreamMuteENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTIN5telux6common18FunctionalCallbackIJSt6vectorINS_5audio10DeviceTypeESaIS4_EENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
@@ -646,6 +770,8 @@
-Wl,--defsym=_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt19_Sp_make_shared_tag=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio16AudioManagerImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio16StreamBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
@@ -656,15 +782,19 @@
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux5audio28AudioToneGeneratorStreamImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio13IPlayListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio12StreamVolumeENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10DeviceTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10StreamTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorISt10shared_ptrINS0_5audio12IAudioDeviceEESaIS7_EENS1_9ErrorCodeEEEESaISB_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTISt23enable_shared_from_thisIN5telux5audio14TranscoderImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23enable_shared_from_thisIN5telux5audio15AudioDeviceImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23enable_shared_from_thisIN5telux5audio16AudioManagerImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTISt23enable_shared_from_thisIN5telux6common14SharedFromThisEE=so_stub_for_libtelux_audio
@@ -690,12 +820,18 @@
-Wl,--defsym=_ZTSN5telux3qmi27IQmiStreamGetVolumeCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux3qmi27IQmiStreamSetDeviceCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux3qmi27IQmiStreamSetVolumeCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux3qmi28IQmiCreateTranscoderCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux3qmi30IQmiTranscoderTeardownCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux3qmi31IQmiGetSupportedDevicesCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux3qmi31IQmiGetSupportedStreamsCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux5audio11ITranscoderE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux5audio12IAudioBufferE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio12IAudioDeviceE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio12IAudioStreamE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio13IAudioManagerE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio13IStreamBufferE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux5audio14TranscoderImplE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux5audio15AudioBufferImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio15AudioDeviceImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio15AudioStreamImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux5audio16AudioManagerImplE=so_stub_for_libtelux_audio
@@ -715,7 +851,9 @@
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJNS_5audio10StreamMuteENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSN5telux6common18FunctionalCallbackIJSt6vectorINS_5audio10DeviceTypeESaIS4_EENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
@@ -730,6 +868,8 @@
-Wl,--defsym=_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt19_Sp_make_shared_tag=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio16AudioManagerImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio16StreamBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
@@ -740,19 +880,25 @@
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux5audio28AudioToneGeneratorStreamImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio13IPlayListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio12StreamVolumeENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10DeviceTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10StreamTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorISt10shared_ptrINS0_5audio12IAudioDeviceEESaIS7_EENS1_9ErrorCodeEEEESaISB_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux5audio14TranscoderImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux5audio15AudioDeviceImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux5audio16AudioManagerImplEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux6common14SharedFromThisEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTTN5telux5audio15AudioBufferImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTTN5telux5audio15AudioStreamImplE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTTN5telux5audio16StreamBufferImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTTN5telux5audio19AudioPlayStreamImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTTN5telux5audio20AudioVoiceStreamImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTTN5telux5audio22AudioCaptureStreamImplE=so_stub_for_libtelux_audio
@@ -776,6 +922,8 @@
-Wl,--defsym=_ZTVN5telux3qmi27IQmiStreamGetVolumeCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux3qmi27IQmiStreamSetDeviceCallbackE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux3qmi27IQmiStreamSetVolumeCallbackE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVN5telux5audio14TranscoderImplE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVN5telux5audio15AudioBufferImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux5audio15AudioDeviceImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux5audio15AudioStreamImplE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux5audio16AudioManagerImplE=so_stub_for_libtelux_audio
@@ -789,7 +937,9 @@
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJNS_5audio10StreamMuteENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJNS_5audio12StreamVolumeENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio11ITranscoderEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS_5audio12IAudioStreamEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio12IAudioBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJSt10shared_ptrINS_5audio13IStreamBufferEEjNS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVN5telux6common18FunctionalCallbackIJSt6vectorINS_5audio10DeviceTypeESaIS4_EENS0_9ErrorCodeEEEE=so_stub_for_libtelux_audio
@@ -800,6 +950,8 @@
-Wl,--defsym=_ZTVNSt13__future_base7_ResultIbEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVNSt13__future_base7_ResultIvEE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVNSt6thread10_Impl_baseE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio14TranscoderImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio15AudioDeviceImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio16AudioManagerImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio16StreamBufferImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
@@ -810,15 +962,21 @@
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux5audio28AudioToneGeneratorStreamImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio13IPlayListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio14IVoiceListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common15ListenerManagerINS0_5audio18ITranscodeListenerEEESaIS5_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio10StreamMuteENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS0_5audio12StreamVolumeENS1_9ErrorCodeEEEESaIS6_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJNS1_9ErrorCodeEEEESaIS4_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio11ITranscoderEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJRSt10shared_ptrINS0_5audio12IAudioStreamEENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio12IAudioBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEENS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt10shared_ptrINS0_5audio13IStreamBufferEEjNS1_9ErrorCodeEEEESaIS8_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10DeviceTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorINS0_5audio10StreamTypeESaIS5_EENS1_9ErrorCodeEEEESaIS9_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux6common18FunctionalCallbackIJSt6vectorISt10shared_ptrINS0_5audio12IAudioDeviceEESaIS7_EENS1_9ErrorCodeEEEESaISB_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn12_N5telux5audio14TranscoderImpl28onTranscoderTeardownResponseEP38audio_teardown_transcoder_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn12_N5telux5audio14TranscoderImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn12_N5telux5audio14TranscoderImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn12_N5telux5audio15AudioStreamImpl25onStreamGetVolumeResponseEP36audio_stream_get_volume_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn12_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn12_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
@@ -872,6 +1030,9 @@
-Wl,--defsym=_ZThn148_N5telux5audio20AudioVoiceStreamImpl14onDtmfResponseEP34audio_dtmf_generation_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn148_N5telux5audio20AudioVoiceStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn148_N5telux5audio20AudioVoiceStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn16_N5telux5audio14TranscoderImpl20onStreamReadResponseEP30audio_stream_read_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn16_N5telux5audio14TranscoderImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn16_N5telux5audio14TranscoderImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn16_N5telux5audio15AudioStreamImpl23onStreamSetMuteResponseEP34audio_stream_set_mute_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn16_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn16_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
@@ -891,7 +1052,7 @@
-Wl,--defsym=_ZThn20_N5telux5audio15AudioStreamImpl23onStreamGetMuteResponseEP34audio_stream_get_mute_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn20_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn20_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
--Wl,--defsym=_ZThn20_N5telux5audio16AudioManagerImpl22onDeleteStreamResponseEP31audio_close_stream_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn20_N5telux5audio16AudioManagerImpl26onCreateTranscoderResponseEP36audio_create_transcoder_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn20_N5telux5audio16AudioManagerImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn20_N5telux5audio16AudioManagerImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn20_N5telux5audio19AudioPlayStreamImplD0Ev=so_stub_for_libtelux_audio
@@ -906,6 +1067,9 @@
-Wl,--defsym=_ZThn20_N5telux5audio28AudioToneGeneratorStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn24_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn24_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn24_N5telux5audio16AudioManagerImpl22onDeleteStreamResponseEP31audio_close_stream_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn24_N5telux5audio16AudioManagerImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn24_N5telux5audio16AudioManagerImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn24_N5telux5audio19AudioPlayStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn24_N5telux5audio19AudioPlayStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn24_N5telux5audio20AudioVoiceStreamImplD0Ev=so_stub_for_libtelux_audio
@@ -926,12 +1090,17 @@
-Wl,--defsym=_ZThn28_N5telux5audio23AudioLoopbackStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn28_N5telux5audio28AudioToneGeneratorStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn28_N5telux5audio28AudioToneGeneratorStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn4_N5telux5audio14TranscoderImpl22onWriteReadyIndicationERK30audio_stream_write_ind_msg_v01=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn4_N5telux5audio14TranscoderImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn4_N5telux5audio14TranscoderImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio15AudioStreamImpl25onStreamGetDeviceResponseEP36audio_stream_get_device_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio16AudioManagerImpl23onLoadSubsystemResponseEP33audio_load_subsystem_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio16AudioManagerImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio16AudioManagerImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn4_N5telux5audio16StreamBufferImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn4_N5telux5audio16StreamBufferImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio19AudioPlayStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio19AudioPlayStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio20AudioVoiceStreamImplD0Ev=so_stub_for_libtelux_audio
@@ -942,6 +1111,9 @@
-Wl,--defsym=_ZThn4_N5telux5audio23AudioLoopbackStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio28AudioToneGeneratorStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn4_N5telux5audio28AudioToneGeneratorStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn8_N5telux5audio14TranscoderImpl21onStreamWriteResponseEP31audio_stream_write_resp_msg_v01iPv=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn8_N5telux5audio14TranscoderImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZThn8_N5telux5audio14TranscoderImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn8_N5telux5audio15AudioStreamImpl25onStreamSetVolumeResponseEP36audio_stream_set_volume_resp_msg_v01iPv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn8_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn8_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
@@ -958,6 +1130,7 @@
-Wl,--defsym=_ZThn8_N5telux5audio23AudioLoopbackStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn8_N5telux5audio28AudioToneGeneratorStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZThn8_N5telux5audio28AudioToneGeneratorStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n12_N5telux5audio15AudioBufferImpl10getMinSizeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n12_N5telux5audio15AudioStreamImpl7getTypeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n12_N5telux5audio15AudioStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n12_N5telux5audio15AudioStreamImplD1Ev=so_stub_for_libtelux_audio
@@ -971,9 +1144,18 @@
-Wl,--defsym=_ZTv0_n12_N5telux5audio23AudioLoopbackStreamImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n12_N5telux5audio28AudioToneGeneratorStreamImplD0Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n12_N5telux5audio28AudioToneGeneratorStreamImplD1Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n16_N5telux5audio15AudioBufferImpl10getMaxSizeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n16_N5telux5audio15AudioStreamImpl9setDeviceESt6vectorINS0_10DeviceTypeESaIS3_EESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n20_N5telux5audio15AudioBufferImpl12getRawBufferEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n20_N5telux5audio15AudioStreamImpl9getDeviceESt8functionIFvSt6vectorINS0_10DeviceTypeESaIS4_EENS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n24_N5telux5audio15AudioBufferImpl11getDataSizeEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n24_N5telux5audio15AudioStreamImpl9setVolumeENS0_12StreamVolumeESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n28_N5telux5audio15AudioBufferImpl11setDataSizeEj=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n28_N5telux5audio15AudioStreamImpl9getVolumeENS0_15StreamDirectionESt8functionIFvNS0_12StreamVolumeENS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n32_N5telux5audio15AudioBufferImpl5resetEv=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n32_N5telux5audio15AudioStreamImpl7setMuteENS0_10StreamMuteESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n36_N5telux5audio15AudioBufferImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n36_N5telux5audio15AudioBufferImplD1Ev=so_stub_for_libtelux_audio
-Wl,--defsym=_ZTv0_n36_N5telux5audio15AudioStreamImpl7getMuteENS0_15StreamDirectionESt8functionIFvNS0_10StreamMuteENS_6common9ErrorCodeEEE=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n36_N5telux5audio16StreamBufferImplD0Ev=so_stub_for_libtelux_audio
+-Wl,--defsym=_ZTv0_n36_N5telux5audio16StreamBufferImplD1Ev=so_stub_for_libtelux_audio
diff --git a/bin/libtelux_common.sym b/bin/libtelux_common.sym
index 371139a..c02e21f 100644
--- a/bin/libtelux_common.sym
+++ b/bin/libtelux_common.sym
@@ -10,6 +10,7 @@
-Wl,--defsym=_ZN5telux6common10TaskThreadD1Ev=so_stub_for_libtelux_common
-Wl,--defsym=_ZN5telux6common10TaskThreadD2Ev=so_stub_for_libtelux_common
-Wl,--defsym=_ZN5telux6common10fileExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_common
+-Wl,--defsym=_ZN5telux6common11CommonUtils14isEqualStringsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_=so_stub_for_libtelux_common
-Wl,--defsym=_ZN5telux6common11CommonUtils7hexDumpEPKci=so_stub_for_libtelux_common
-Wl,--defsym=_ZN5telux6common11ErrorHelper12initialized_E=so_stub_for_libtelux_common
-Wl,--defsym=_ZN5telux6common11ErrorHelper16getErrorAsStringB5cxx11Ei=so_stub_for_libtelux_common
diff --git a/bin/libtelux_cv2x.sym b/bin/libtelux_cv2x.sym
index 8e0bc57..50db8e9 100644
--- a/bin/libtelux_cv2x.sym
+++ b/bin/libtelux_cv2x.sym
@@ -103,6 +103,7 @@
-Wl,--defsym=_ZN5telux4cv2x16Cv2xRadioManagerD2Ev=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x17TrustedUEInfoListC1ERKS1_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x17TrustedUEInfoListC2ERKS1_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux4cv2x18Cv2xRxSubscription16setServiceIDListESt10shared_ptrISt6vectorIjSaIjEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x18Cv2xRxSubscription2IdE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x18Cv2xRxSubscription9closeSockEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x18Cv2xRxSubscriptionC1EiRK12sockaddr_in6=so_stub_for_libtelux_cv2x
@@ -249,7 +250,7 @@
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio19updateTrustedUEListERKNS0_17TrustedUEInfoListESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20DEFAULT_DEST_IP_ADDRB5cxx11E=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20closeTxEventFlowSyncESt10shared_ptrINS0_11ICv2xTxFlowEESt8functionIFvS4_NS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
--Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20createRxSubscriptionENS0_13TrafficIpTypeEtSt8functionIFvSt10shared_ptrINS0_19ICv2xRxSubscriptionEENS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20createRxSubscriptionENS0_13TrafficIpTypeEtSt8functionIFvSt10shared_ptrINS0_19ICv2xRxSubscriptionEENS_6common9ErrorCodeEEES4_ISt6vectorIjSaIjEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20setInitializedStatusENS_6common6StatusE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio20unsubscribeAllRxSubsEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio21changeSpsFlowInfoSyncESt10shared_ptrINS0_11ICv2xTxFlowEERKNS0_11SpsFlowInfoESt8functionIFvS4_NS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
@@ -269,11 +270,11 @@
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio23deregisterEventFlowSyncESt10shared_ptrINS0_11ICv2xTxFlowEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio23requestCapabilitiesSyncESt8functionIFvRKNS0_21Cv2xRadioCapabilitiesENS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio23updateTrustedUEListSyncERKNS0_17TrustedUEInfoListESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
--Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio24createRxSubscriptionSyncENS0_13TrafficIpTypeEtSt8functionIFvSt10shared_ptrINS0_19ICv2xRxSubscriptionEENS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio24createRxSubscriptionSyncENS0_13TrafficIpTypeEtSt8functionIFvSt10shared_ptrINS0_19ICv2xRxSubscriptionEENS_6common9ErrorCodeEEES4_ISt6vectorIjSaIjEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio24deregisterEventFlowsSyncENS0_13TrafficIpTypeER38wds_v2x_non_sps_flow_dereg_req_msg_v01=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio25initCv2xRadioCapabilitiesERNS0_21Cv2xRadioCapabilitiesE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio26requestDataSessionSettingsESt8functionIFvRKNS0_19DataSessionSettingsENS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
--Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio29unsubscribeRxSubscriptionSyncENS0_13TrafficIpTypeE=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio29unsubscribeRxSubscriptionSyncENS0_13TrafficIpTypeESt10shared_ptrISt6vectorIjSaIjEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio30requestDataSessionSettingsSyncESt8functionIFvRKNS0_19DataSessionSettingsENS_6common9ErrorCodeEEE=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio4initEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux4cv2x9Cv2xRadio6getMTUENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERj=so_stub_for_libtelux_cv2x
@@ -303,6 +304,7 @@
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_PcS4_tEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_EEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_PcEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_hS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_S4_iEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_cv2x
@@ -322,6 +324,7 @@
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_PcS4_tEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_EEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_PcEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_hS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_S4_iEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_cv2x
@@ -353,6 +356,7 @@
-Wl,--defsym=_ZNK5telux4cv2x15Cv2xTxEventFlow9getIpTypeEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription10getPortNumEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription11getSockAddrEv=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription16getServiceIDListEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription17getSubscriptionIdEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription7getSockEv=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNK5telux4cv2x18Cv2xRxSubscription9getIpTypeEv=so_stub_for_libtelux_cv2x
@@ -372,6 +376,8 @@
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x15Cv2xTxEventFlowELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJRNS1_13TrafficIpTypeERjRiR12sockaddr_in6EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x15Cv2xTxEventFlowELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIRNS1_13TrafficIpTypeERjRiR12sockaddr_in6EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x15Cv2xTxEventFlowELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EJRNS1_13TrafficIpTypeERjRiR12sockaddr_in6EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x19ICv2xRxSubscriptionELN9__gnu_cxx12_Lock_policyE2EEC1ERKS5_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x19ICv2xRxSubscriptionELN9__gnu_cxx12_Lock_policyE2EEC2ERKS5_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x21QmiNasIndsRegCallbackELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EIEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x21QmiNasIndsRegCallbackELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x21QmiNasIndsRegCallbackELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
@@ -404,6 +410,8 @@
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x37QmiRequestDataSessionSettingsCallbackELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x37QmiRequestDataSessionSettingsCallbackELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12__shared_ptrIN5telux4cv2x37QmiRequestDataSessionSettingsCallbackELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EJEEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC1ERKS5_=so_stub_for_libtelux_cv2x
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC2ERKS5_=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12future_errorC1ESt10error_code=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt12future_errorC2ESt10error_code=so_stub_for_libtelux_cv2x
-Wl,--defsym=_ZNSt13__future_base13_State_baseV210wait_untilINSt6chrono3_V212system_clockENS2_8durationIxSt5ratioILx1ELx1000000000EEEEEESt13future_statusRKNS2_10time_pointIT_T0_EE=so_stub_for_libtelux_cv2x
diff --git a/bin/libtelux_data.sym b/bin/libtelux_data.sym
index c04f32a..32f554f 100644
--- a/bin/libtelux_data.sym
+++ b/bin/libtelux_data.sym
@@ -17,6 +17,8 @@
-Wl,--defsym=_ZN5telux3qmi15IQmiWdsListenerD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux3qmi16QmiProfileParamsD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux3qmi16QmiProfileParamsD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data10DataHelper14convertAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data10DataHelper18converAddrToStringEiPjPc=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data10DataHelper18isValidIpv4AddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data10DataHelper18isValidIpv6AddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data10DataHelper18logDataCallDetailsENS0_14DataCallStatusEiNS0_17DataCallEndReasonENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS4_4listINS0_10IpAddrInfoESaISB_EEENS0_20DataBearerTechnologyE=so_stub_for_libtelux_data
@@ -27,10 +29,14 @@
-Wl,--defsym=_ZN5telux4data10IpAddrInfoD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data10IpAddrInfoD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactory11getInstanceEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data11DataFactory13getNatManagerENS0_13OperationTypeE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data11DataFactory14getNewIpFilterEh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data11DataFactory14getVlanManagerENS0_13OperationTypeE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data11DataFactory18getFirewallManagerENS0_13OperationTypeE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data11DataFactory19getNewFirewallEntryEhNS0_9DirectionENS0_12IpFamilyTypeE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactory20getDataFilterManagerEi=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactory21getDataProfileManagerEi=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactory24getDataConnectionManagerEi=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data11DataFactory24getNewDataRestrictFilterENS0_12ProtocolTypeE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactoryC1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactoryC2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data11DataFactoryD1Ev=so_stub_for_libtelux_data
@@ -79,6 +85,46 @@
-Wl,--defsym=_ZN5telux4data12EventHandler4postERKSt10shared_ptrINS0_15DsiCallbackDataEESt8functionIFvS6_EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data12EventHandler4stopEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data12EventHandler5startEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl11getIPv4InfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl11getIPv6InfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl11setIPv4InfoERKNS0_8IPv4InfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl11setIPv6InfoERKNS0_8IPv6InfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl13getIpProtocolEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl15getFilterHandleEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImpl15setFilterHandleEj=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImplC1Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImplC2Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data12IpFilterImplD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImpl10getEspInfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImpl10setEspInfoERKNS0_7EspInfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImplC1Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImplC2Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13EspFilterImplD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImpl10getTcpInfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImpl10setTcpInfoERKNS0_7TcpInfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImplC1Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImplC2Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13TcpFilterImplD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImpl10getUdpInfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImpl10setUdpInfoERKNS0_7UdpInfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImplC1Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImplC2Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data13UdpFilterImplD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImpl11getIcmpInfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImpl11setIcmpInfoERKNS0_8IcmpInfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImplC1Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImplC2Eh=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data14IcmpFilterImplD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data16ProfileRetriever12queryProfileERKNS0_13ProfileParamsESt10shared_ptrINS0_24IDataProfileListCallbackEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data16ProfileRetriever14filterProfilesEPNS0_15ProfileUserDataERSt6vectorISt10shared_ptrINS0_11DataProfileEESaIS7_EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data16ProfileRetriever14requestProfileEhNS0_14TechPreferenceESt10shared_ptrINS0_20IDataProfileCallbackEE=so_stub_for_libtelux_data
@@ -118,12 +164,13 @@
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl13setReadyStateEb=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl16registerListenerESt8weak_ptrINS0_19IDataFilterListenerEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl18deregisterListenerESt8weak_ptrINS0_19IDataFilterListenerEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl19setDataRestrictModeENS0_16DataRestrictModeEiNS0_12IpFamilyTypeESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl21addDataRestrictFilterERSt10shared_ptrINS0_19IDataRestrictFilterEEiNS0_12IpFamilyTypeESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl19setDataRestrictModeENS0_16DataRestrictModeESt8functionIFvNS_6common9ErrorCodeEEEiNS0_12IpFamilyTypeE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl21addDataRestrictFilterERSt10shared_ptrINS0_9IIpFilterEESt8functionIFvNS_6common9ErrorCodeEEEiNS0_12IpFamilyTypeE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl21getAvailableListenersERSt6vectorISt10shared_ptrINS0_19IDataFilterListenerEESaIS5_EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl21waitForInitializationEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl23requestDataRestrictModeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvNS0_16DataRestrictModeENS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl24onDataRestrictModeChangeENS0_16DataRestrictModeE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl28removeAllDataRestrictFiltersEiNS0_12IpFamilyTypeESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl28removeAllDataRestrictFiltersESt8functionIFvNS_6common9ErrorCodeEEEiNS0_12IpFamilyTypeE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl4initEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl7cleanupEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImpl7isReadyEv=so_stub_for_libtelux_data
@@ -134,26 +181,6 @@
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImplD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data21DataFilterManagerImplD2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImpl13getSourcePortEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImpl13setSourcePortENS0_8PortInfoE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImpl18getDestinationPortEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImpl18setDestinationPortENS0_8PortInfoE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImpl8getValidEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImplC1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImplC2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21TcpRestrictFilterImplD2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImpl13getSourcePortEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImpl13setSourcePortENS0_8PortInfoE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImpl18getDestinationPortEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImpl18setDestinationPortENS0_8PortInfoE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImpl8getValidEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImplC1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImplC2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data21UdpRestrictFilterImplD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImpl11updateReadyEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImpl12queryProfileERKNS0_13ProfileParamsESt10shared_ptrINS0_24IDataProfileListCallbackEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImpl13createProfileERKNS0_13ProfileParamsESt10shared_ptrINS0_26IDataCreateProfileCallbackEE=so_stub_for_libtelux_data
@@ -185,23 +212,6 @@
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImplD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data22DataProfileManagerImplD2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl12getIPv4ValidEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl12getIPv6ValidEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl14getIPv4SrcAddrB5cxx11Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl14getIPv6SrcAddrB5cxx11Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl14setIPv4SrcAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl14setIPv6SrcAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15getIPv4DestAddrB5cxx11Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15getIPv6DestAddrB5cxx11Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15getProtocolTypeEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15setIPv4DestAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15setIPv6DestAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImpl15setProtocolTypeENS0_12ProtocolTypeE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImplC1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImplC2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data22DataRestrictFilterImplD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data23IDataConnectionListener21onDataCallInfoChangedERKSt10shared_ptrINS0_9IDataCallEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data23IDataConnectionListenerD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data23IDataConnectionListenerD1Ev=so_stub_for_libtelux_data
@@ -229,16 +239,25 @@
-Wl,--defsym=_ZN5telux4data25DataConnectionManagerImplD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data25DataConnectionManagerImplD2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data26IDataCreateProfileCallback10onResponseEiNS_6common9ErrorCodeE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv4InfoC1ERKS1_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv4InfoC2ERKS1_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv4InfoD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv4InfoD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv6InfoD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data8IPv6InfoD2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data9DsiClient11getDataCallENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient11getDataCallEii=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient12getDsiClientEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data9DsiClient12getDsiHandleEii=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient12stopDataCallEiiSt8functionIFvRKSt10shared_ptrINS0_9IDataCallEENS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux4data9DsiClient13addDataFilterEiiRSt10shared_ptrINS0_19IDataRestrictFilterEESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data9DsiClient13addDataFilterEiiRSt10shared_ptrINS0_9IIpFilterEESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient13startDataCallEiiSt8functionIFvRKSt10shared_ptrINS0_9IDataCallEENS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient14updateDataCallEPv13dsi_net_evt_tRSt10shared_ptrINS0_12DataCallImplEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient16formatSocketAddrEP16sockaddr_storagejbPcib=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient16registerListenerESt8weak_ptrINS0_23IDataConnectionListenerEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient16releaseDsiHandleEPv=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient16updateIpAddrInfoEP15dsi_addr_info_siRSt10shared_ptrINS0_12DataCallImplEE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux4data9DsiClient17getDataFilterModeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvNS0_16DataRestrictModeENS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient17setDataCallParamsERKPvii=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient17setDataFilterModeEiihhSt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux4data9DsiClient18deregisterListenerESt8weak_ptrINS0_23IDataConnectionListenerEE=so_stub_for_libtelux_data
@@ -279,6 +298,7 @@
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcPcEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_EEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_PvEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIIPKcS4_hS4_iEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_data
@@ -297,6 +317,7 @@
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcPcEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_EEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvNS0_8LogLevelERKSA_SD_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_PvEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_DpT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log10logMessageIJPKcS4_hS4_iEEEvNS0_8LogLevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_DpT_=so_stub_for_libtelux_data
@@ -318,8 +339,8 @@
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvT_DpT0_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIS4_St10shared_ptrINS_4data9IDataCallEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIS4_iS4_iS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcIiS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
@@ -328,8 +349,8 @@
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvT_DpT0_=so_stub_for_libtelux_data
+-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_SA_S4_SA_S4_SA_EEEvT_DpT0_=so_stub_for_libtelux_data
--Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJS4_St10shared_ptrINS_4data9IDataCallEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iS4_iS4_iEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJS4_iS4_iS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
-Wl,--defsym=_ZN5telux6common3Log16constructMessageIPKcJiS4_iS4_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvT_DpT0_=so_stub_for_libtelux_data
@@ -408,6 +429,30 @@
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libtelux_data
@@ -457,7 +502,6 @@
-Wl,--defsym=_ZNSt5dequeISt13shared_futureIvESaIS1_EE8_M_eraseESt15_Deque_iteratorIS1_RS1_PS1_E=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt5dequeISt13shared_futureIvESaIS1_EED1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt5dequeISt13shared_futureIvESaIS1_EED2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZNSt5mutex4lockEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt6futureIbE3getEv=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt6vectorISt10shared_ptrIN5telux4data11DataProfileEESaIS4_EE19_M_emplace_back_auxIIRKS4_EEEvDpOT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt6vectorISt10shared_ptrIN5telux4data11DataProfileEESaIS4_EE19_M_emplace_back_auxIJRKS4_EEEvDpOT_=so_stub_for_libtelux_data
@@ -492,14 +536,15 @@
-Wl,--defsym=_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZNSt7__cxx114listIN5telux4data10IpAddrInfoESaIS3_EE9_M_insertIIRKS3_EEEvSt14_List_iteratorIS3_EDpOT_=so_stub_for_libtelux_data
--Wl,--defsym=_ZNSt7__cxx114listIN5telux4data10IpAddrInfoESaIS3_EE9_M_insertIJRKS3_EEEvSt14_List_iteratorIS3_EDpOT_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt7__cxx114listIN5telux4data10IpAddrInfoESaIS3_EEC1ERKS5_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt7__cxx114listIN5telux4data10IpAddrInfoESaIS3_EEC2ERKS5_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt7__cxx114listIN5telux4data10IpAddrInfoESaIS3_EEaSERKS5_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt8_Rb_treeI13dsi_net_evt_tSt4pairIKS0_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS9_ESt4lessIS0_ESaIS9_EE24_M_get_insert_unique_posERS2_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt8_Rb_treeI13dsi_net_evt_tSt4pairIKS0_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS9_ESt4lessIS0_ESaIS9_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS9_ERS2_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt8_Rb_treeI13dsi_net_evt_tSt4pairIKS0_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS9_ESt4lessIS0_ESaIS9_EE8_M_eraseEPSt13_Rb_tree_nodeIS9_E=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt8_Rb_treeIN5telux4data13OperationTypeESt4pairIKS2_St10shared_ptrINS1_3net11INatManagerEEESt10_Select1stIS9_ESt4lessIS2_ESaIS9_EE8_M_eraseEPSt13_Rb_tree_nodeIS9_E=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt8_Rb_treeIN5telux4data13OperationTypeESt4pairIKS2_St10shared_ptrINS1_3net12IVlanManagerEEESt10_Select1stIS9_ESt4lessIS2_ESaIS9_EE8_M_eraseEPSt13_Rb_tree_nodeIS9_E=so_stub_for_libtelux_data
+-Wl,--defsym=_ZNSt8_Rb_treeIN5telux4data13OperationTypeESt4pairIKS2_St10shared_ptrINS1_3net16IFirewallManagerEEESt10_Select1stIS9_ESt4lessIS2_ESaIS9_EE8_M_eraseEPSt13_Rb_tree_nodeIS9_E=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt8functionIFvRKSt10shared_ptrIN5telux4data9IDataCallEENS1_6common9ErrorCodeEEEC1ERKSA_=so_stub_for_libtelux_data
-Wl,--defsym=_ZNSt8functionIFvRKSt10shared_ptrIN5telux4data9IDataCallEENS1_6common9ErrorCodeEEEC2ERKSA_=so_stub_for_libtelux_data
-Wl,--defsym=_ZSt13move_backwardISt13shared_futureIvEESt15_Deque_iteratorIT_RS3_PS3_ES2_IS3_RKS3_PS7_ESA_S6_=so_stub_for_libtelux_data
@@ -515,24 +560,28 @@
-Wl,--defsym=_ZTIN5telux3qmi28IQmiWdsCreateProfileCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux3qmi29IQmiWdsGetProfileListCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux3qmi33IQmiWdsGetProfileSettingsCallbackE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data10IEspFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data10ITcpFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data10IUdpFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data11IIcmpFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data12DataCallImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data12IpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data13EspFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data13TcpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data13UdpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data14IcmpFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data16ProfileRetrieverE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data18IDataFilterManagerE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data18ITcpRestrictFilterE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data18IUdpRestrictFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data19IDataFilterListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data19IDataProfileManagerE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data19IDataRestrictFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data21DataFilterManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data21TcpRestrictFilterImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data21UdpRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data22DataProfileManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTIN5telux4data22DataRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data22IDataConnectionManagerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data23IDataConnectionListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data25DataConnectionManagerImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data25IProfileRetrieverCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux4data9IDataCallE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTIN5telux4data9IIpFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux6common16ICommandCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTIN5telux6common22IServiceStatusListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTINSt13__future_base13_State_baseV2E=so_stub_for_libtelux_data
@@ -550,6 +599,10 @@
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data11DataProfileESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data12DataCallImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data16ProfileRetrieverESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceIN5telux4data18DsiEventDispatcherESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
@@ -568,24 +621,28 @@
-Wl,--defsym=_ZTSN5telux3qmi28IQmiWdsCreateProfileCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux3qmi29IQmiWdsGetProfileListCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux3qmi33IQmiWdsGetProfileSettingsCallbackE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data10IEspFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data10ITcpFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data10IUdpFilterE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data11IIcmpFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data12DataCallImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data12IpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data13EspFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data13TcpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data13UdpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data14IcmpFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data16ProfileRetrieverE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data18IDataFilterManagerE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data18ITcpRestrictFilterE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data18IUdpRestrictFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data19IDataFilterListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data19IDataProfileManagerE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data19IDataRestrictFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data21DataFilterManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data21TcpRestrictFilterImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data21UdpRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data22DataProfileManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTSN5telux4data22DataRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data22IDataConnectionManagerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data23IDataConnectionListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data25DataConnectionManagerImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data25IProfileRetrieverCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux4data9IDataCallE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSN5telux4data9IIpFilterE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux6common16ICommandCallbackE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSN5telux6common22IServiceStatusListenerE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSNSt13__future_base13_State_baseV2E=so_stub_for_libtelux_data
@@ -603,6 +660,10 @@
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data11DataProfileESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data12DataCallImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data16ProfileRetrieverESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceIN5telux4data18DsiEventDispatcherESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
@@ -615,16 +676,20 @@
-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux4data22DataProfileManagerImplEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt23enable_shared_from_thisIN5telux4data25DataConnectionManagerImplEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTSSt5_BindIFSt7_Mem_fnIMN5telux4data18DsiEventDispatcherEFvRKSt10shared_ptrINS2_15DsiCallbackDataEEEEPS3_S6_EE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTTN5telux4data21TcpRestrictFilterImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTTN5telux4data21UdpRestrictFilterImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTTN5telux4data22DataRestrictFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTTN5telux4data12IpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTTN5telux4data13EspFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTTN5telux4data13TcpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTTN5telux4data13UdpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTTN5telux4data14IcmpFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVN5telux4data12DataCallImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVN5telux4data12IpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVN5telux4data13EspFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVN5telux4data13TcpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVN5telux4data13UdpFilterImplE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVN5telux4data14IcmpFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVN5telux4data16ProfileRetrieverE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVN5telux4data21DataFilterManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTVN5telux4data21TcpRestrictFilterImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTVN5telux4data21UdpRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVN5telux4data22DataProfileManagerImplE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTVN5telux4data22DataRestrictFilterImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVN5telux4data25DataConnectionManagerImplE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVNSt13__future_base13_State_baseV2E=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVNSt13__future_base21_Async_state_commonV2E=so_stub_for_libtelux_data
@@ -635,6 +700,10 @@
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data11DataProfileESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data12DataCallImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data12EventHandlerESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data13EspFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data13TcpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data13UdpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data14IcmpFilterImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data15DsiCallbackDataESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data16ProfileRetrieverESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceIN5telux4data18DsiEventDispatcherESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libtelux_data
@@ -649,16 +718,20 @@
-Wl,--defsym=_ZThn16_N5telux4data22DataProfileManagerImpl24onWdsServiceStatusChangeENS_6common13ServiceStatusE=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn16_N5telux4data22DataProfileManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn16_N5telux4data22DataProfileManagerImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13EspFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13EspFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13TcpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13TcpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13UdpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data13UdpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data14IcmpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZThn4_N5telux4data14IcmpFilterImplD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data16ProfileRetriever19profileListResponseEiiRKSt6vectorINS_3qmi15ProfileListInfoESaIS4_EEPv=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data16ProfileRetrieverD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data16ProfileRetrieverD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data21DataFilterManagerImpl24onDataRestrictModeChangeENS0_16DataRestrictModeE=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data21DataFilterManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data21DataFilterManagerImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZThn4_N5telux4data21TcpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZThn4_N5telux4data21TcpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZThn4_N5telux4data21UdpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZThn4_N5telux4data21UdpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data22DataProfileManagerImpl18onProfileRetrievedESt10shared_ptrINS0_16ProfileRetrieverEE=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data22DataProfileManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn4_N5telux4data22DataProfileManagerImplD1Ev=so_stub_for_libtelux_data
@@ -672,18 +745,18 @@
-Wl,--defsym=_ZThn8_N5telux4data25DataConnectionManagerImpl24onWdsServiceStatusChangeENS_6common13ServiceStatusE=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn8_N5telux4data25DataConnectionManagerImplD0Ev=so_stub_for_libtelux_data
-Wl,--defsym=_ZThn8_N5telux4data25DataConnectionManagerImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n12_N5telux4data22DataRestrictFilterImpl14getIPv4SrcAddrEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n16_N5telux4data22DataRestrictFilterImpl14setIPv4SrcAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n20_N5telux4data22DataRestrictFilterImpl15getIPv4DestAddrEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n24_N5telux4data22DataRestrictFilterImpl15setIPv4DestAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n28_N5telux4data22DataRestrictFilterImpl14getIPv6SrcAddrEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n32_N5telux4data22DataRestrictFilterImpl14setIPv6SrcAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n36_N5telux4data22DataRestrictFilterImpl15getIPv6DestAddrEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n40_N5telux4data22DataRestrictFilterImpl15setIPv6DestAddrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n44_N5telux4data22DataRestrictFilterImpl15getProtocolTypeEv=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data21TcpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data21TcpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data21UdpRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data21UdpRestrictFilterImplD1Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data22DataRestrictFilterImplD0Ev=so_stub_for_libtelux_data
--Wl,--defsym=_ZTv0_n48_N5telux4data22DataRestrictFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n12_N5telux4data12IpFilterImpl11getIPv4InfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n16_N5telux4data12IpFilterImpl11setIPv4InfoERKNS0_8IPv4InfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n20_N5telux4data12IpFilterImpl11getIPv6InfoEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n24_N5telux4data12IpFilterImpl11setIPv6InfoERKNS0_8IPv6InfoE=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n28_N5telux4data12IpFilterImpl13getIpProtocolEv=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data12IpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data12IpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13EspFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13EspFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13TcpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13TcpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13UdpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data13UdpFilterImplD1Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data14IcmpFilterImplD0Ev=so_stub_for_libtelux_data
+-Wl,--defsym=_ZTv0_n32_N5telux4data14IcmpFilterImplD1Ev=so_stub_for_libtelux_data
diff --git a/bin/libtelux_loc.sym b/bin/libtelux_loc.sym
index 7d7036d..35c9d81 100644
--- a/bin/libtelux_loc.sym
+++ b/bin/libtelux_loc.sym
@@ -469,6 +469,7 @@
-Wl,--defsym=_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev=so_stub_for_libtelux_loc
-Wl,--defsym=_ZNSt8_Rb_treeIN20location_integration17LocConfigTypeEnumESt4pairIKS1_11RequestInfoESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE16_M_insert_uniqueIS2_IS1_S4_EEES2_ISt17_Rb_tree_iteratorIS5_EbEOT_=so_stub_for_libtelux_loc
-Wl,--defsym=_ZNSt8_Rb_treeIN20location_integration17LocConfigTypeEnumESt4pairIKS1_11RequestInfoESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS3_=so_stub_for_libtelux_loc
+-Wl,--defsym=_ZNSt8_Rb_treeIN20location_integration17LocConfigTypeEnumESt4pairIKS1_11RequestInfoESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE5eraseERS3_=so_stub_for_libtelux_loc
-Wl,--defsym=_ZNSt8_Rb_treeIN20location_integration17LocConfigTypeEnumESt4pairIKS1_11RequestInfoESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E=so_stub_for_libtelux_loc
-Wl,--defsym=_ZNSt8_Rb_treeIN20location_integration17LocConfigTypeEnumESt4pairIKS1_jESt10_Select1stIS4_ESt4lessIS1_ESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E=so_stub_for_libtelux_loc
-Wl,--defsym=_ZNSt8functionIFvN15location_client16LocationResponseEEEC1ERKS3_=so_stub_for_libtelux_loc
diff --git a/bin/libtelux_qmi.sym b/bin/libtelux_qmi.sym
index a3a65af..d79d486 100644
--- a/bin/libtelux_qmi.sym
+++ b/bin/libtelux_qmi.sym
@@ -166,7 +166,7 @@
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient15sendStreamStartEjSt10shared_ptrINS0_23IQmiStreamStartCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient15sendStreamWriteEjP30audio_stream_write_req_msg_v01St10shared_ptrINS0_23IQmiStreamWriteCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient16notifyWriteReadyERK30audio_stream_write_ind_msg_v01=so_stub_for_libtelux_qmi
--Wl,--defsym=_ZN5telux3qmi14AudioQmiClient16sendCreateStreamEjjjjjjjPjPNS0_15QmiFormatParamsEjSt10shared_ptrINS0_24IQmiCreateStreamCallbackEEPv=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient16sendCreateStreamEjjjjjjjPjPNS0_15QmiFormatParamsEjjS2_St10shared_ptrINS0_24IQmiCreateStreamCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient16sendDeleteStreamEjjSt10shared_ptrINS0_24IQmiDeleteStreamCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient17handleToneGenRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient17indicationHandlerEP17qmi_client_structjPvjS4_=so_stub_for_libtelux_qmi
@@ -188,8 +188,10 @@
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient20asyncResponseHandlerEjPvjS2_iSt10shared_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient20handleStreamReadRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient20handleStreamStopRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient20sendCreateTranscoderEjNS0_24QmiTransCodeStreamConfigESt10shared_ptrINS0_28IQmiCreateTranscoderCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient21handleStreamStartRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient21handleStreamWriteRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient21sendTranscodeTearDownEjSt10shared_ptrINS0_30IQmiTranscoderTeardownCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient22handleCreateStreamRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient22handleDeleteStreamRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient23handleLoadSubsystemRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
@@ -204,7 +206,9 @@
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient25handleStreamGetVolumeRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient25handleStreamSetDeviceRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient25handleStreamSetVolumeRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient26handleCreateTranscoderRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient26handleWriteReadyIndicationEP17qmi_client_structPvj=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient28handleTranscoderTeardownRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient29handleDrainCompleteIndicationEP17qmi_client_structPvj=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient29handleDtmfDetectionIndicationEP17qmi_client_structPvj=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi14AudioQmiClient29handleGetSupportedDevicesRespEPvjS2_iSt8weak_ptrINS_6common16ICommandCallbackEE=so_stub_for_libtelux_qmi
@@ -440,6 +444,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI34tsens_service_register_req_msg_v0135tsens_service_register_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI34wds_bind_mux_data_port_req_msg_v0135wds_bind_mux_data_port_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI34wds_v2x_sps_flow_dereg_req_msg_v0135wds_v2x_sps_flow_dereg_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI35audio_create_transcoder_req_msg_v0136audio_create_transcoder_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI35audio_stream_get_device_req_msg_v0136audio_stream_get_device_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI35audio_stream_get_volume_req_msg_v0136audio_stream_get_volume_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI35audio_stream_set_device_req_msg_v0136audio_stream_set_device_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
@@ -457,6 +462,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI36wds_v2x_non_sps_flow_reg_req_msg_v0137wds_v2x_non_sps_flow_reg_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI36wds_v2x_send_config_file_req_msg_v0137wds_v2x_send_config_file_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI36wds_v2x_tunnel_mode_info_req_msg_v0137wds_v2x_tunnel_mode_info_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI37audio_teardown_transcoder_req_msg_v0138audio_teardown_transcoder_resp_msg_v01EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI37voice_get_ecall_oprt_mode_req_msg_v0238voice_get_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI37voice_indication_register_req_msg_v0238voice_indication_register_resp_msg_v02EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient11sendRequestI37voice_set_ecall_oprt_mode_req_msg_v0238voice_set_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusEijRT_RPT0_Pv=so_stub_for_libtelux_qmi
@@ -541,6 +547,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI34tsens_service_register_req_msg_v0135tsens_service_register_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI34wds_bind_mux_data_port_req_msg_v0135wds_bind_mux_data_port_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI34wds_v2x_sps_flow_dereg_req_msg_v0135wds_v2x_sps_flow_dereg_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI35audio_create_transcoder_req_msg_v0136audio_create_transcoder_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI35audio_stream_get_device_req_msg_v0136audio_stream_get_device_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI35audio_stream_get_volume_req_msg_v0136audio_stream_get_volume_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI35audio_stream_set_device_req_msg_v0136audio_stream_set_device_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
@@ -558,6 +565,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI36wds_v2x_non_sps_flow_reg_req_msg_v0137wds_v2x_non_sps_flow_reg_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI36wds_v2x_send_config_file_req_msg_v0137wds_v2x_send_config_file_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI36wds_v2x_tunnel_mode_info_req_msg_v0137wds_v2x_tunnel_mode_info_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI37audio_teardown_transcoder_req_msg_v0138audio_teardown_transcoder_resp_msg_v01EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI37voice_get_ecall_oprt_mode_req_msg_v0238voice_get_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI37voice_indication_register_req_msg_v0238voice_indication_register_resp_msg_v02EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient16sendAsyncRequestI37voice_set_ecall_oprt_mode_req_msg_v0238voice_set_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusEjRT_RPT0_St10shared_ptrINS5_16ICommandCallbackEEPv=so_stub_for_libtelux_qmi
@@ -596,7 +604,6 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI28uim_remote_reset_req_msg_v0129uim_remote_reset_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI28voice_set_config_req_msg_v0229voice_set_config_resp_msg_v02EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI29pdc_delete_config_req_msg_v0130pdc_delete_config_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
--Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI30audio_stream_drain_req_msg_v0131audio_stream_drain_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI30dms_get_device_cap_req_msg_v0131dms_get_device_cap_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI30nas_get_v2x_status_req_msg_v0131nas_get_v2x_status_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI30uim_sap_connection_req_msg_v0131uim_sap_connection_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
@@ -618,6 +625,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI33wds_bind_subscription_req_msg_v0134wds_bind_subscription_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI34dms_get_operating_mode_req_msg_v0135dms_get_operating_mode_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI34dms_set_operating_mode_req_msg_v0135dms_set_operating_mode_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI35audio_create_transcoder_req_msg_v0136audio_create_transcoder_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI35audio_stream_get_device_req_msg_v0136audio_stream_get_device_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI35audio_stream_get_volume_req_msg_v0136audio_stream_get_volume_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI35audio_stream_set_device_req_msg_v0136audio_stream_set_device_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
@@ -632,6 +640,7 @@
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI36wds_get_profile_settings_req_msg_v0137wds_get_profile_settings_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI36wds_get_runtime_settings_req_msg_v0137wds_get_runtime_settings_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI36wds_v2x_send_config_file_req_msg_v0137wds_v2x_send_config_file_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
+-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI37audio_teardown_transcoder_req_msg_v0138audio_teardown_transcoder_resp_msg_v01EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI37voice_get_ecall_oprt_mode_req_msg_v0238voice_get_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI37voice_indication_register_req_msg_v0238voice_indication_register_resp_msg_v02EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
-Wl,--defsym=_ZN5telux3qmi9QmiClient19mallocAndInitParamsI37voice_set_ecall_oprt_mode_req_msg_v0238voice_set_ecall_oprt_mode_resp_msg_v02EENS_6common6StatusERT_RPT0_=so_stub_for_libtelux_qmi
diff --git a/bin/libtelux_tel.sym b/bin/libtelux_tel.sym
index 06c6c90..7937f49 100644
--- a/bin/libtelux_tel.sym
+++ b/bin/libtelux_tel.sym
@@ -78,8 +78,6 @@
-Wl,--defsym=_ZN5telux3tel11CallManager10conferenceESt10shared_ptrINS0_5ICallEES4_S2_INS_6common24ICommandResponseCallbackEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager13onECallStatusEP30voice_ecall_status_ind_msg_v02=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager14addLatestCallsERSt6vectorINS0_8CallInfoESaIS3_EE=so_stub_for_libtelux_tel
--Wl,--defsym=_ZN5telux3tel11CallManager14makeVoiceECallEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_12ECallMsdDataEiSt10shared_ptrINS0_17IMakeCallCallbackEE=so_stub_for_libtelux_tel
--Wl,--defsym=_ZN5telux3tel11CallManager14makeVoiceECallEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIhSaIhEEiSt8functionIFvNS_6common9ErrorCodeESt10shared_ptrINS0_5ICallEEEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager14removeListenerESt10shared_ptrINS0_13ICallListenerEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager14updateECallMsdEiRKNS0_12ECallMsdDataESt10shared_ptrINS_6common24ICommandResponseCallbackEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager14updateECallMsdEiRKSt6vectorIhSaIhEESt8functionIFvNS_6common9ErrorCodeEEE=so_stub_for_libtelux_tel
@@ -116,6 +114,8 @@
-Wl,--defsym=_ZN5telux3tel11CallManager7cleanupEv=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager8initCallESt10shared_ptrINS0_4CallEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager8makeCallEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrINS0_17IMakeCallCallbackEE=so_stub_for_libtelux_tel
+-Wl,--defsym=_ZN5telux3tel11CallManager9makeECallEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_12ECallMsdDataEiSt10shared_ptrINS0_17IMakeCallCallbackEE=so_stub_for_libtelux_tel
+-Wl,--defsym=_ZN5telux3tel11CallManager9makeECallEiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIhSaIhEEiSt8functionIFvNS_6common9ErrorCodeESt10shared_ptrINS0_5ICallEEEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager9makeECallEiRKNS0_12ECallMsdDataEiiSt10shared_ptrINS0_17IMakeCallCallbackEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManager9makeECallEiRKSt6vectorIhSaIhEEiiSt8functionIFvNS_6common9ErrorCodeESt10shared_ptrINS0_5ICallEEEE=so_stub_for_libtelux_tel
-Wl,--defsym=_ZN5telux3tel11CallManagerC1Ev=so_stub_for_libtelux_tel
diff --git a/bin/libv2x_radio.sym b/bin/libv2x_radio.sym
index 001f083..fbb4270 100644
--- a/bin/libv2x_radio.sym
+++ b/bin/libv2x_radio.sym
@@ -39,6 +39,10 @@
-Wl,--defsym=_ZNKSt13__future_base13_State_baseV221_M_is_deferred_futureEv=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNKSt14__basic_futureIiE13_M_get_resultEv=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNKSt5ctypeIcE8do_widenEc=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EIRS2_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC1ISaIS2_EJRS2_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EIRS2_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt12__shared_ptrISt6vectorIjSaIjEELN9__gnu_cxx12_Lock_policyE2EEC2ISaIS2_EJRS2_EEESt19_Sp_make_shared_tagRKT_DpOT0_=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt12future_errorC1ESt10error_code=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt12future_errorC2ESt10error_code=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt13__future_base13_State_baseV216_M_break_promiseESt10unique_ptrINS_12_Result_baseENS2_8_DeleterEE=so_stub_for_libv2x_radio
@@ -91,6 +95,12 @@
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZNSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt3mapI11v2x_event_tNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC1ESt16initializer_listISB_ERKS8_RKSC_=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt3mapI11v2x_event_tNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC2ESt16initializer_listISB_ERKS8_RKSC_=so_stub_for_libv2x_radio
-Wl,--defsym=_ZNSt3mapI11v2x_event_tNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED1Ev=so_stub_for_libv2x_radio
@@ -167,6 +177,7 @@
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceI12Cv2xListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceI13RadioListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZTISt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTS12Cv2xListener=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTS13RadioListener=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTSFvSt10shared_ptrIN5telux4cv2x11ICv2xTxFlowEENS0_6common9ErrorCodeEE=so_stub_for_libv2x_radio
@@ -188,6 +199,7 @@
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceI12Cv2xListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceI13RadioListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZTSSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTV12Cv2xListener=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTV13RadioListener=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTVNSt13__future_base13_State_baseV2E=so_stub_for_libv2x_radio
@@ -198,6 +210,7 @@
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceI12Cv2xListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceI13RadioListenerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceINSt13__future_base13_State_baseV2ESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
+-Wl,--defsym=_ZTVSt23_Sp_counted_ptr_inplaceISt6vectorIjSaIjEESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE=so_stub_for_libv2x_radio
-Wl,--defsym=config_override_event_as_sps=so_stub_for_libv2x_radio
-Wl,--defsym=config_override_event_flow_prio=so_stub_for_libv2x_radio
-Wl,--defsym=cv2x_status_poll=so_stub_for_libv2x_radio
@@ -217,6 +230,7 @@
-Wl,--defsym=v2x_radio_init_v2=so_stub_for_libv2x_radio
-Wl,--defsym=v2x_radio_query_parameters=so_stub_for_libv2x_radio
-Wl,--defsym=v2x_radio_rx_sock_create_and_bind=so_stub_for_libv2x_radio
+-Wl,--defsym=v2x_radio_rx_sock_create_and_bind_v2=so_stub_for_libv2x_radio
-Wl,--defsym=v2x_radio_set_log_level=so_stub_for_libv2x_radio
-Wl,--defsym=v2x_radio_set_macphy=so_stub_for_libv2x_radio
-Wl,--defsym=v2x_radio_sock_close=so_stub_for_libv2x_radio
diff --git a/docs/api_samples/README.md b/docs/api_samples/README.md
index a54e4ff..f2524a7 100644
--- a/docs/api_samples/README.md
+++ b/docs/api_samples/README.md
@@ -40,4 +40,6 @@ that illustrate the use of various TelSDK APIs, it includes samples of
* [How to get and set data filter mode](data/get_and_set_data_filter_mode.md)
* [How to remove data filter mode](data/remove_data_filters.md)
* [How to add data filter](data/add_data_filter.md)
- * [How to perform transcoding from one audio format to another](data/audio_transcoding_operation.md)
+ * [How to perform transcoding from one audio format to another](audio/audio_transcoding_operation.md)
+ * [How to play compressed format audio on voice paths](audio/compressed_audio_format_playback_on_voice_paths.md)
+
diff --git a/docs/api_samples/audio/compressed_audio_format_playback_on_voice_paths.md b/docs/api_samples/audio/compressed_audio_format_playback_on_voice_paths.md
new file mode 100644
index 0000000..b91933b
--- /dev/null
+++ b/docs/api_samples/audio/compressed_audio_format_playback_on_voice_paths.md
@@ -0,0 +1,260 @@
+# Audio Manager APIs Sample Reference for compressed audio format playback on voice paths
+
+This Section demonstrates how to use the Audio Manager API for compressed audio format playback on voice paths.
+
+### 1. Get the AudioFactory and AudioManager instances
+
+ ~~~~~~{.cpp}
+ auto &audioFactory = audioFactory::getInstance();
+ auto audioManager = audioFactory.getAudioManager();
+ ~~~~~~
+
+### 2. Check if Audio subsystem is ready
+
+ ~~~~~~{.cpp}
+ bool subSystemStatus = audioManager->isSubsystemReady();
+ if (subSystemStatus) {
+ std::cout << "Audio Subsystem is ready." << std::endl;
+ } else {
+ std::cout << "Audio Subsystem is NOT ready." << std::endl;
+ }
+ ~~~~~~
+
+### 2.1 If Audio subsystem is not ready, wait for it to be ready
+
+Make sure that Audio subsystem is ready for services like audio voice and play.
+If subsystem is not ready, wait unconditionally (or) until a timeout.
+
+ ~~~~~~{.cpp}
+ std::future<bool> f = audioManager->onSubsystemReady();
+ #if // Timeout based wait
+ if (f.wait_for(std::chrono::seconds(timeoutSec)) == std::future_status::timeout) {
+ std::cout << "operation timed out." << std::endl;
+ } else {
+ subSystemsStatus = f.get();
+ if (subSystemsStatus) {
+ std::cout << "Audio Subsystem is ready." << std::endl;
+ }
+ }
+ #else // Unconditional wait
+ subSystemsStatus = f.get();
+ if (subSystemsStatus) {
+ std::cout << "Audio Subsystem is ready." << std::endl;
+ } else {
+ std::cout << "Audio Subsystem is NOT ready." << std::endl;
+ }
+ #endif
+ ~~~~~~
+
+### 3. Create an Audio Stream (Audio Voice Session)
+ ~~~~~~{.cpp}
+ StreamConfig config;
+ config.type = StreamType::VOICE_CALL;
+ config.modemSubId = 1;
+ config.sampleRate = 16000;
+ config.format = AudioFormat::PCM_16BIT_SIGNED;
+ config.channelTypeMask = ChannelType::LEFT;
+ config.deviceTypes.emplace_back(DeviceType::DEVICE_TYPE_SPEAKER);
+
+ std::promise<bool> p;
+ auto status = audioManager_->createStream(config,
+ [&p,this](std::shared_ptr<IAudioStream> &audioStream, ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ audioVoiceStream_ = std::dynamic_pointer_cast<IAudioVoiceStream>(audioStream);
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "failed to Create a stream" <<std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to create stream sent" << std::endl;
+ } else {
+ std::cout << "Request to create stream failed" << std::endl;
+ }
+
+ if (p.get_future().get()) {
+ std::cout<< "Audio Voice Stream is Created" << std::endl;
+ }
+ ~~~~~~
+
+### 3. Create an Audio Stream (Audio Playback Session) with Voice Paths direction
+ ~~~~~~{.cpp}
+ StreamConfig config;
+ config.type = StreamType::PLAY;
+ config.modemSubId = MODEM_SUB_ID;
+ config.sampleRate = SAMPLE_RATE;
+ config.format = AudioFormat::AMRWB_PLUS;
+ // here both channel selected, this can be selected according to requirement
+ config.channelTypeMask = (ChannelType::LEFT | ChannelType::RIGHT);
+ // Since the voice path is selected we dont need to provide any device
+ // Voice path direction TX is for Voice uplink while direction RX is for Voice downlink
+ config.voicePaths.emplace_back(Direction::TX);
+ // Passing Decoder Specific Configuration, refer header file for more details.
+ AmrwbpParams amrParams{};
+ if (config.format == AudioFormat::AMRWB_PLUS) {
+ amrParams.bitWidth = 16;
+ amrParams.frameFormat = AmrwbpFrameFormat::FILE_STORAGE_FORMAT;
+ config.formatParams = &amrParams;
+ } else {
+ config.formatParams = nullptr;
+ }
+
+ std::promise<bool> p;
+ auto status = audioManager_->createStream(config,
+ [&p,this](std::shared_ptr<IAudioStream> &audioStream, ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ audioPlayStream_ = std::dynamic_pointer_cast<IAudioPlayStream>(audioStream);
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "failed to Create a stream" <<std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to create stream sent" << std::endl;
+ } else {
+ std::cout << "Request to create stream failed" << std::endl;
+ }
+
+ if (p.get_future().get()) {
+ std::cout<< "Audio Play Stream is Created" << std::endl;
+ }
+ ~~~~~~
+
+### 4. Allocate Stream buffers for Playback operation
+ ~~~~~~{.cpp}
+ // Get an audio buffer (can get more than one)
+ auto streamBuffer = audioPlayStream->getStreamBuffer();
+ if (streamBuffer != nullptr) {
+ // Setting the size that is to be written to stream as the minimum size
+ // required by stream. In any case if size returned is 0, using the Maximum
+ // Buffer Size, any buffer size between min and max can be used
+ size = streamBuffer->getMinSize();
+ if (size == 0) {
+ size = streamBuffer->getMaxSize();
+ }
+ streamBuffer->setDataSize(size);
+ } else {
+ std::cout << "Failed to get Stream Buffer " << std::endl;
+ }
+ ~~~~~~
+
+### 5. Start write operation for playback to start
+ ~~~~~~{.cpp}
+ // Callback which provides response to write operation.
+ void writeCallback(std::shared_ptr<IStreamBuffer> buffer, uint32_t bytes, ErrorCode error)
+ {
+ if (error != ErrorCode::SUCCESS) {
+ std::cout << "write() returned with error " << static_cast<int>(error) << std::endl;
+ // Application needs to resend the Bitstream buffer from leftover position if bytes
+ // consumed are not equal to requested number of bytes to be written.
+ pipeLineEmpty_ = false;
+ }
+ buffer->reset();
+ return;
+ }
+
+ // Indiction Received only when callback returns with error that bytes written are not equal to
+ // bytes requested to write. It notifies that pipeline is ready to accept new buffer to write.
+ void onReadyForWrite() {
+ pipeLineEmpty_ = true;
+ }
+
+ // Write desired data into the buffer, the bytes sent as 0x1 for example purpose only.
+ // First write starts Playback Session.
+ memset(streamBuffer->getRawBuffer(),0x1,size);
+ auto status = audioPlayStream->write(streamBuffer, writeCallback);
+ if (status != telux::common::Status::SUCCESS) {
+ std::cout << "write() failed with error" << static_cast<int>(status) << std::endl;
+ } else {
+ std::cout << "Request to write to stream sent" << std::endl;
+ }
+ ~~~~~~
+### 6.1 Stop playback operation(STOP_AFTER_PLAY : Stops after playing pending buffers in pipeline)
+ ~~~~~~
+ std::promise<bool> p;
+ auto status = audioPlayStream_->stopAudio(StopType::STOP_AFTER_PLAY, [&p](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to stop after playing buffers" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to stop playback after pending buffers Sent" << std::endl;
+ } else {
+ std::cout << "Request to stop playback after pending buffers failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ std::cout << "Pending buffers played successful !!" << std::endl;
+ }
+ ~~~~~~
+
+### 6.2 Stop playback operation(FORCE_STOP : Stops immediately, all buffers in pipeline are flushed)
+ ~~~~~~
+ std::promise<bool> p;
+ auto status = audioPlayStream_->stopAudio(
+ StopType::FORCE_STOP, [&p](telux::common::ErrorCode error) {
+ if (error == telux::common::ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to force stop" << std::endl;
+ }
+ });
+ if(status == telux::common::Status::SUCCESS){
+ std::cout << "Request to force stop Sent" << std::endl;
+ } else {
+ std::cout << "Request to force stop failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ std::cout << "Force Stop successful !!" << std::endl;
+ }
+ ~~~~~~
+
+### 7. Delete an Audio Stream (Audio Playback Session), once reached end of operation.
+ ~~~~~~{.cpp}
+ std::promise<bool> p;
+ Status status = audioManager_-> deleteStream(
+ audioPlayStream_, [&p,this](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to delete a stream" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to delete stream sent" << std::endl;
+ } else {
+ std::cout << "Request to delete stream failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ audioPlayStream_= nullptr;
+ std::cout << "Audio Play Stream is Deleted" << std::endl;
+ }
+ ~~~~~~
+
+### 8. Delete an Audio Stream (Voice Session).
+ ~~~~~~{.cpp}
+ Status status = audioManager_-> deleteStream(
+ audioVoiceStream_, [&p,this](ErrorCode error) {
+ if (error == ErrorCode::SUCCESS) {
+ p.set_value(true);
+ } else {
+ p.set_value(false);
+ std::cout << "Failed to delete a stream" << std::endl;
+ }
+ });
+ if (status == Status::SUCCESS) {
+ std::cout << "Request to delete stream sent" << std::endl;
+ } else {
+ std::cout << "Request to delete stream failed" << std::endl;
+ }
+ if (p.get_future().get()) {
+ audioVoiceStream_= nullptr;
+ std::cout << "Audio Voice Stream is Deleted" << std::endl;
+ }
+ ~~~~~~
diff --git a/doxy/api_reference/call_flow_diagrams.dox b/doxy/api_reference/call_flow_diagrams.dox
index 25f529c..e0199db 100644
--- a/doxy/api_reference/call_flow_diagrams.dox
+++ b/doxy/api_reference/call_flow_diagrams.dox
@@ -1464,6 +1464,43 @@ This call flow diagram describes the sequence of steps for initialing the ICv2xR
14. Application receives synchronous status which indicates if the tearDown request was sent successfully.
15. Application is notified of the tearDown request status (either SUCCESS or FAILED) via the application-supplied callback.
+@subsection audio_playback_on_voice_paths_callflow Compressed audio format playback on Voice Paths Callflow
+
+@anchor fig_compressed_audio_format_playback_on_voice_paths_callflow
+@latexonly
+\begin{figure}[H]
+ \centering
+ \includegraphics[scale=0.38]{compressed_audio_format_playback_on_voice_paths_callflow.png}
+ \renewcommand{\thefigure}{\thechapter-\arabic{figure}}
+ \caption{Compressed audio format playback on Voice Paths Callflow}
+ \label{fig_compressed_audio_format_playback_on_voice_paths_callflow}
+\end{figure}
+@endlatexonly
+
+@html_image{audio_playback_on_voice_paths_callflow.png,Compressed audio format playback on Voice Paths Callflow,80,80,Compressed audio format playback on Voice Paths Callflow}
+
+1. Application requests Audio factory for an Audio Manager.
+2. Audio factory return IAudioManager object to application.
+3. On Readiness, Application requests to create a voice stream with streamType as VOICE_CALL.
+4. Application receives synchronous status which indicates if the createStream request was sent successfully.
+5. Application is notified of the createStream request status (either SUCCESS or FAILED) via the application-supplied callback, with pointer to stream interface refering to IAudioVoiceStream.
+6. On Readiness, Application requests to create a play stream with streamType as PLAY, voicePaths direction as TX or RX and no device is selected.
+7. Application receives synchronous status which indicates if the createStream request was sent successfully.
+8. Application is notified of the createStream request status (either SUCCESS or FAILED) via the application-supplied callback, with pointer to stream interface refering to IAudioPlayStream.
+9. Application requests to write buffer using write method on IAudioPlayStream.
+10. Application receives synchronous status which indicates if the write request was sent successfully.
+11. Application is notified of the write request status (either SUCCESS or FAILED) via the application-supplied callback along with number of bytes written.
+12. Application is notified of when pipeline is ready to accept new buffer if callback returns with error that number of bytes written are not equal to bytes requested.
+13. Application send request to stop playback using stopAudio method of IAudioPlayStream.
+14. Application receives synchronous status which indicates if the stopAudio request was sent successfully.
+15. Application is notified of the stopAudio request status (either SUCCESS or FAILED) via the application-supplied callback.
+16. Appication is notified via indication that playback is stopped if StopType is STOP_AFTER_PLAY.
+17. Application requests delete audio play stream using deleteStream method.
+18. Application receives synchronous Status which indicates if the deleteStream request was sent successfully.
+19. Application is notified of the deleteStream request status(either SUCCESS or FAILED) via the application-supplied callback.
+20. Application requests delete audio voice stream using deleteStream method.
+21. Application receives synchronous Status which indicates if the deleteStream request was sent successfully.
+22. Application is notified of the deleteStream request status(either SUCCESS or FAILED) via the application-supplied callback.
@section thermal_manager_call_flow Thermal manager call flow
diff --git a/doxy/api_reference/introduction.dox b/doxy/api_reference/introduction.dox
index e616e64..8d14ea5 100644
--- a/doxy/api_reference/introduction.dox
+++ b/doxy/api_reference/introduction.dox
@@ -44,6 +44,7 @@ when who what, where, why
10/22/19 SD Added location concurrent reports support to Telematics SDK
10/22/19 SD Added location constraint time uncertainty support to Telematics SDK
11/05/19 RV Added Audio Format Transcoding Support in Telematics SDK
+11/15/19 RV Added compressed audio format playback on voice paths support in Telematics SDK
NOTE: for an appendix, the label must match the filename
=============================================================================*/
diff --git a/doxy/api_reference/overview.dox b/doxy/api_reference/overview.dox
index 8ae28b9..9bc937e 100644
--- a/doxy/api_reference/overview.dox
+++ b/doxy/api_reference/overview.dox
@@ -233,6 +233,7 @@ AudioPlayStream along with inheriting AudioStream, provides additional APIs to m
- write audio samples
- Write audio samples for compressed audio format
- Stop Audio for compressed audio format
+ - Play compressed format audio on voice paths
AudioCaptureStream along with inheriting AudioStream, provides additional APIs to manage audio capture session as stated below.
- read audio samples
diff --git a/doxy/api_reference/revision_history.dox b/doxy/api_reference/revision_history.dox
index 5aed4ab..a46b579 100644
--- a/doxy/api_reference/revision_history.dox
+++ b/doxy/api_reference/revision_history.dox
@@ -68,7 +68,8 @@ when who what, where, why
@tr @td P @tdend @td Oct 2019 @tdend @tdlast Addition of Data Filter APIs and call flows @tdlastend @trend
@tr @td Q @tdend @td Oct 2019 @tdend @tdlast Addition of Location concurrent report APIs and call flows @tdlastend @trend
@tr @td R @tdend @td Oct 2019 @tdend @tdlast Addition of Location constraint time uncertainty APIs and call flows @tdlastend @trend
-@tr @td S @tdend @td Oct 2019 @tdend @tdlast Addition of Audio Format Transcoding APIs and call flows @tdlastend @trend
+@tr @td S @tdend @td Nov 2019 @tdend @tdlast Addition of Audio Format Transcoding APIs and call flows @tdlastend @trend
+@tr @td T @tdend @td Nov 2019 @tdend @tdlast Addition of Compressed audio format playback on voice paths APIs and call flows @tdlastend @trend
@tableend
@latexonly \rm @endlatexonly
diff --git a/doxy/images/compressed_audio_format_playback_on_voice_paths_callflow.png b/doxy/images/compressed_audio_format_playback_on_voice_paths_callflow.png
new file mode 100644
index 0000000..4b3a72c
--- /dev/null
+++ b/doxy/images/compressed_audio_format_playback_on_voice_paths_callflow.png
Binary files differ
diff --git a/doxy/user_guide/introduction.dox b/doxy/user_guide/introduction.dox
index 3be19bb..b2dbbaf 100644
--- a/doxy/user_guide/introduction.dox
+++ b/doxy/user_guide/introduction.dox
@@ -44,6 +44,7 @@ when who what, where, why
10/22/19 SD Added location concurrent reports support to Telematics SDK
10/22/19 SD Added location constraint time uncertainty support to Telematics SDK
11/05/19 RV Added Audio Format Transcoding Support in Telematics SDK
+11/15/19 RV Added compressed audio format playback on voice paths support in Telematics SDK
NOTE: for an appendix, the label must match the filename
=============================================================================*/
diff --git a/doxy/user_guide/revision_history.dox b/doxy/user_guide/revision_history.dox
index 73da480..bd4cfc8 100644
--- a/doxy/user_guide/revision_history.dox
+++ b/doxy/user_guide/revision_history.dox
@@ -68,7 +68,8 @@ when who what, where, why
@tr @td P @tdend @td Oct 2019 @tdend @tdlast Addition of Data Filter APIs and call flows @tdlastend @trend
@tr @td Q @tdend @td Oct 2019 @tdend @tdlast Addition of Location concurrent report APIs and call flows @tdlastend @trend
@tr @td R @tdend @td Oct 2019 @tdend @tdlast Addition of Location constraint time uncertainty APIs and call flows @tdlastend @trend
-@tr @td S @tdend @td Oct 2019 @tdend @tdlast Addition of Audio Format Transcoding APIs and call flows @tdlastend @trend
+@tr @td S @tdend @td Nov 2019 @tdend @tdlast Addition of Audio Format Transcoding APIs and call flows @tdlastend @trend
+@tr @td T @tdend @td Nov 2019 @tdend @tdlast Addition of Compressed audio format playback on voice paths APIs and call flows @tdlastend @trend
@tableend
diff --git a/include/telux/tel/CallManager.hpp b/include/telux/tel/CallManager.hpp
index c7d0316..dd982d8 100644
--- a/include/telux/tel/CallManager.hpp
+++ b/include/telux/tel/CallManager.hpp
@@ -157,7 +157,7 @@ public:
* create eCall Minimum Set of Data (MSD)
* @param [in] category @ref ECallCategory
* @param [in] callback Optional callback pointer to get the response of
- * makeVoiceECall request.
+ * makeECall request.
* Possible(not exhaustive) error codes for callback response
* - @ref telux::common::ErrorCode::SUCCESS
* - @ref telux::common::ErrorCode::RADIO_NOT_AVAILABLE
@@ -170,9 +170,12 @@ public:
* - @ref telux::common::ErrorCode::OPERATION_NOT_ALLOWED
* - @ref telux::common::ErrorCode::GENERIC_FAILURE
*
- * @returns Status of makeVoiceECall i.e. success or suitable status code.
+ * @returns Status of makeECall i.e. success or suitable status code.
+ *
+ * @note Eval: This is a new API and is being evaluated.It is subject to change and could
+ * break backwards compatibility.
*/
- virtual telux::common::Status makeVoiceECall(int phoneId, const std::string dialNumber,
+ virtual telux::common::Status makeECall(int phoneId, const std::string dialNumber,
const ECallMsdData &eCallMsdData, int category,
std::shared_ptr<IMakeCallCallback> callback = nullptr)
= 0;
@@ -217,7 +220,7 @@ public:
* @param [in] msdPdu Encoded MSD(Minimum Set of Data) PDU as per spec EN
* 15722 2015 or GOST R 54620-2011/33464-2015
* @param [in] category @ref ECallCategory
- * @param [in] callback Callback function to get the response of makeVoiceECall
+ * @param [in] callback Callback function to get the response of makeECall
* request.
* Possible(not exhaustive) error codes for callback response
* - @ref telux::common::ErrorCode::SUCCESS
@@ -231,9 +234,12 @@ public:
* - @ref telux::common::ErrorCode::OPERATION_NOT_ALLOWED
* - @ref telux::common::ErrorCode::GENERIC_FAILURE
*
- * @returns Status of makeVoiceECall i.e. success or suitable status code.
+ * @returns Status of makeECall i.e. success or suitable status code.
+ *
+ * @note Eval: This is a new API and is being evaluated.It is subject to change and could
+ * break backwards compatibility.
*/
- virtual telux::common::Status makeVoiceECall(int phoneId, const std::string dialNumber,
+ virtual telux::common::Status makeECall(int phoneId, const std::string dialNumber,
const std::vector<uint8_t> &msdPdu, int category,
MakeCallCallback callback = nullptr)
= 0;