summaryrefslogtreecommitdiff
path: root/src/components/media_manager/src/media_manager_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/media_manager/src/media_manager_impl.cc')
-rw-r--r--src/components/media_manager/src/media_manager_impl.cc161
1 files changed, 96 insertions, 65 deletions
diff --git a/src/components/media_manager/src/media_manager_impl.cc b/src/components/media_manager/src/media_manager_impl.cc
index 61b2c5bb92..e531894b27 100644
--- a/src/components/media_manager/src/media_manager_impl.cc
+++ b/src/components/media_manager/src/media_manager_impl.cc
@@ -30,13 +30,12 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config_profile/profile.h"
#include "media_manager/media_manager_impl.h"
#include "media_manager/audio/from_mic_recorder_listener.h"
#include "media_manager/streamer_listener.h"
#include "application_manager/message_helper.h"
#include "application_manager/application.h"
-#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_manager.h"
#include "application_manager/application_impl.h"
#include "protocol_handler/protocol_handler.h"
#include "utils/file_system.h"
@@ -50,19 +49,22 @@
#include "media_manager/audio/socket_audio_streamer_adapter.h"
#include "media_manager/video/pipe_video_streamer_adapter.h"
#include "media_manager/audio/pipe_audio_streamer_adapter.h"
-#include "media_manager/video/video_stream_to_file_adapter.h"
+#include "media_manager/video/file_video_streamer_adapter.h"
+#include "media_manager/audio/file_audio_streamer_adapter.h"
+#include "media_manager/media_manager_settings.h"
namespace media_manager {
-using profile::Profile;
-using timer::TimerThread;
+CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManager")
-CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManagerImpl")
-
-MediaManagerImpl::MediaManagerImpl()
- : protocol_handler_(NULL)
- , a2dp_player_(NULL)
- , from_mic_recorder_(NULL) {
+MediaManagerImpl::MediaManagerImpl(
+ application_manager::ApplicationManager& application_manager,
+ const MediaManagerSettings& settings)
+ : settings_(settings)
+ , protocol_handler_(NULL)
+ , a2dp_player_(NULL)
+ , from_mic_recorder_(NULL)
+ , application_manager_(application_manager) {
Init();
}
@@ -78,36 +80,69 @@ MediaManagerImpl::~MediaManagerImpl() {
}
}
+#ifdef BUILD_TESTS
+void MediaManagerImpl::set_mock_a2dp_player(MediaAdapter* media_adapter) {
+ a2dp_player_ = media_adapter;
+}
+
+void MediaManagerImpl::set_mock_mic_listener(MediaListenerPtr media_listener) {
+ from_mic_listener_ = media_listener;
+}
+
+#ifdef EXTENDED_MEDIA_MODE
+void MediaManagerImpl::set_mock_mic_recorder(MediaAdapterImpl* media_adapter) {
+ from_mic_recorder_ = media_adapter;
+}
+
+#endif // EXTENDED_MEDIA_MODE
+
+void MediaManagerImpl::set_mock_streamer(protocol_handler::ServiceType stype,
+ MediaAdapterImpl* mock_stream) {
+ streamer_[stype] = mock_stream;
+}
+
+void MediaManagerImpl::set_mock_streamer_listener(
+ protocol_handler::ServiceType stype, MediaAdapterListener* mock_stream) {
+ streamer_listener_[stype] = mock_stream;
+}
+
+#endif // BUILD_TESTS
+
void MediaManagerImpl::Init() {
using namespace protocol_handler;
LOG4CXX_INFO(logger_, "MediaManagerImpl::Init()");
#if defined(EXTENDED_MEDIA_MODE)
LOG4CXX_INFO(logger_, "Called Init with default configuration.");
- a2dp_player_ = new A2DPSourcePlayerAdapter();
+ a2dp_player_ =
+ new A2DPSourcePlayerAdapter(protocol_handler_->get_session_observer());
from_mic_recorder_ = new FromMicRecorderAdapter();
#endif
- if ("socket" == profile::Profile::instance()->video_server_type()) {
- streamer_[ServiceType::kMobileNav] = new SocketVideoStreamerAdapter();
- } else if ("pipe" == profile::Profile::instance()->video_server_type()) {
- streamer_[ServiceType::kMobileNav] = new PipeVideoStreamerAdapter();
- } else if ("file" == profile::Profile::instance()->video_server_type()) {
- streamer_[ServiceType::kMobileNav] = new VideoStreamToFileAdapter(
- profile::Profile::instance()->video_stream_file());
+ if ("socket" == settings().video_server_type()) {
+ streamer_[ServiceType::kMobileNav] = new SocketVideoStreamerAdapter(
+ settings().server_address(), settings().video_streaming_port());
+ } else if ("pipe" == settings().video_server_type()) {
+ streamer_[ServiceType::kMobileNav] = new PipeVideoStreamerAdapter(
+ settings().named_video_pipe_path(), settings().app_storage_folder());
+ } else if ("file" == settings().video_server_type()) {
+ streamer_[ServiceType::kMobileNav] = new FileVideoStreamerAdapter(
+ settings().video_stream_file(), settings().app_storage_folder());
}
- if ("socket" == profile::Profile::instance()->audio_server_type()) {
- streamer_[ServiceType::kAudio] = new SocketAudioStreamerAdapter();
- } else if ("pipe" == profile::Profile::instance()->audio_server_type()) {
- streamer_[ServiceType::kAudio] = new PipeAudioStreamerAdapter();
- } else if ("file" == profile::Profile::instance()->audio_server_type()) {
- streamer_[ServiceType::kAudio] = new VideoStreamToFileAdapter(
- profile::Profile::instance()->audio_stream_file());
+ if ("socket" == settings().audio_server_type()) {
+ streamer_[ServiceType::kAudio] = new SocketAudioStreamerAdapter(
+ settings().server_address(), settings().audio_streaming_port());
+ } else if ("pipe" == settings().audio_server_type()) {
+ streamer_[ServiceType::kAudio] = new PipeAudioStreamerAdapter(
+ settings().named_audio_pipe_path(), settings().app_storage_folder());
+ } else if ("file" == settings().audio_server_type()) {
+ streamer_[ServiceType::kAudio] = new FileAudioStreamerAdapter(
+ settings().audio_stream_file(), settings().app_storage_folder());
}
- streamer_listener_[ServiceType::kMobileNav] = new StreamerListener();
- streamer_listener_[ServiceType::kAudio] = new StreamerListener();
+ streamer_listener_[ServiceType::kMobileNav] = new StreamerListener(*this);
+ streamer_listener_[ServiceType::kAudio] = new StreamerListener(*this);
if (streamer_[ServiceType::kMobileNav]) {
streamer_[ServiceType::kMobileNav]->AddListener(
@@ -134,27 +169,25 @@ void MediaManagerImpl::StopA2DPSource(int32_t application_key) {
}
}
-void MediaManagerImpl::StartMicrophoneRecording(
- int32_t application_key,
- const std::string& output_file,
- int32_t duration) {
- LOG4CXX_INFO(logger_, "MediaManagerImpl::StartMicrophoneRecording to "
- << output_file);
+void MediaManagerImpl::StartMicrophoneRecording(int32_t application_key,
+ const std::string& output_file,
+ int32_t duration) {
+ LOG4CXX_INFO(logger_,
+ "MediaManagerImpl::StartMicrophoneRecording to " << output_file);
application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()->
- application(application_key);
- std::string file_path =
- profile::Profile::instance()->app_storage_folder();
+ application_manager_.application(application_key);
+ std::string file_path = settings().app_storage_folder();
file_path += "/";
file_path += output_file;
- from_mic_listener_ = new FromMicRecorderListener(file_path);
-#if defined(EXTENDED_MEDIA_MODE)
+ from_mic_listener_ =
+ new FromMicRecorderListener(file_path, application_manager_);
+#ifdef EXTENDED_MEDIA_MODE
if (from_mic_recorder_) {
from_mic_recorder_->AddListener(from_mic_listener_);
(static_cast<FromMicRecorderAdapter*>(from_mic_recorder_))
- ->set_output_file(file_path);
+ ->set_output_file(file_path);
(static_cast<FromMicRecorderAdapter*>(from_mic_recorder_))
- ->set_duration(duration);
+ ->set_duration(duration);
from_mic_recorder_->StartActivity(application_key);
}
#else
@@ -162,25 +195,23 @@ void MediaManagerImpl::StartMicrophoneRecording(
LOG4CXX_INFO(logger_, "File " << output_file << " exists, removing");
if (file_system::DeleteFile(file_path)) {
LOG4CXX_INFO(logger_, "File " << output_file << " removed");
- }
- else {
+ } else {
LOG4CXX_WARN(logger_, "Could not remove file " << output_file);
}
}
- const std::string record_file_source =
- profile::Profile::instance()->app_resourse_folder() + "/" +
- profile::Profile::instance()->recording_file_source();
+ const std::string record_file_source = settings().app_resource_folder() +
+ "/" +
+ settings().recording_file_source();
std::vector<uint8_t> buf;
if (file_system::ReadBinaryFile(record_file_source, buf)) {
if (file_system::Write(file_path, buf)) {
LOG4CXX_INFO(logger_,
- "File " << record_file_source << " copied to " << output_file);
- }
- else {
+ "File " << record_file_source << " copied to "
+ << output_file);
+ } else {
LOG4CXX_WARN(logger_, "Could not write to file " << output_file);
}
- }
- else {
+ } else {
LOG4CXX_WARN(logger_, "Could not read file " << record_file_source);
}
#endif
@@ -223,7 +254,7 @@ void MediaManagerImpl::StopStreaming(
}
void MediaManagerImpl::SetProtocolHandler(
- protocol_handler::ProtocolHandler* protocol_handler) {
+ protocol_handler::ProtocolHandler* protocol_handler) {
protocol_handler_ = protocol_handler;
}
@@ -238,21 +269,19 @@ void MediaManagerImpl::OnMessageReceived(
const ServiceType service_type = message->service_type();
if (Compare<ServiceType, NEQ, ALL>(
- service_type, ServiceType::kMobileNav, ServiceType::kAudio)) {
+ service_type, ServiceType::kMobileNav, ServiceType::kAudio)) {
LOG4CXX_DEBUG(logger_, "Unsupported service type in MediaManager");
return;
}
- ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
- DCHECK_OR_RETURN_VOID(app_mgr);
-
- if (!app_mgr->CanAppStream(streaming_app_id, service_type)) {
- app_mgr->ForbidStreaming(streaming_app_id);
- LOG4CXX_ERROR(logger_, "The application trying to stream when it should not.");
+ if (!application_manager_.CanAppStream(streaming_app_id, service_type)) {
+ application_manager_.ForbidStreaming(streaming_app_id);
+ LOG4CXX_ERROR(logger_,
+ "The application trying to stream when it should not.");
return;
}
- ApplicationSharedPtr app = app_mgr->application(streaming_app_id);
+ ApplicationSharedPtr app = application_manager_.application(streaming_app_id);
if (app) {
app->WakeUpStreaming(service_type);
streamer_[service_type]->SendData(streaming_app_id, message);
@@ -260,15 +289,17 @@ void MediaManagerImpl::OnMessageReceived(
}
void MediaManagerImpl::OnMobileMessageSent(
- const ::protocol_handler::RawMessagePtr message) {
-}
+ const ::protocol_handler::RawMessagePtr message) {}
void MediaManagerImpl::FramesProcessed(int32_t application_key,
int32_t frame_number) {
if (protocol_handler_) {
- protocol_handler_->SendFramesNumber(application_key,
- frame_number);
+ protocol_handler_->SendFramesNumber(application_key, frame_number);
}
}
+const MediaManagerSettings& MediaManagerImpl::settings() const {
+ return settings_;
+}
+
} // namespace media_manager