From 5b7c08eb6d5103d74f03e0334863a1013bab8498 Mon Sep 17 00:00:00 2001 From: Ryszard Matuszyk Date: Thu, 5 Feb 2015 14:19:07 +0100 Subject: [PATCH] [Sound] Manager stub [Verification] Build required Change-Id: I5da13f20875ee8d15be33b881b3e4283ab441694 Signed-off-by: Ryszard Matuszyk --- src/sound/sound.gyp | 2 ++ src/sound/sound_instance.cc | 4 ++- src/sound/sound_instance.h | 5 +++- src/sound/sound_manager.cc | 70 +++++++++++++++++++++++++++++++++++++++++++++ src/sound/sound_manager.h | 40 ++++++++++++++++++++++++++ 5 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 src/sound/sound_manager.cc create mode 100644 src/sound/sound_manager.h diff --git a/src/sound/sound.gyp b/src/sound/sound.gyp index 25cf67b..c67c331 100644 --- a/src/sound/sound.gyp +++ b/src/sound/sound.gyp @@ -17,6 +17,8 @@ 'sound_extension.h', 'sound_instance.cc', 'sound_instance.h', + 'sound_manager.cc', + 'sound_manager.h', ], 'conditions': [ [ 'tizen == 1', { diff --git a/src/sound/sound_instance.cc b/src/sound/sound_instance.cc index cd0d293..b9fb10e 100644 --- a/src/sound/sound_instance.cc +++ b/src/sound/sound_instance.cc @@ -34,6 +34,8 @@ SoundInstance::SoundInstance() { REGISTER_SYNC("SoundManager_setVolumeChangeListener", SoundManagerSetVolumeChangeListener); REGISTER_SYNC("SoundManager_getSoundMode", SoundManagerGetSoundMode); #undef REGISTER_SYNC + + manager_ = SoundManager::GetInstance(); } SoundInstance::~SoundInstance() { @@ -138,4 +140,4 @@ void SoundInstance::SoundManagerUnsetVolumeChangeListener(const picojson::value& #undef CHECK_EXIST } // namespace sound -} // namespace extension \ No newline at end of file +} // namespace extension diff --git a/src/sound/sound_instance.h b/src/sound/sound_instance.h index d35f014..de5b681 100644 --- a/src/sound/sound_instance.h +++ b/src/sound/sound_instance.h @@ -6,6 +6,7 @@ #define SOUND_SOUND_INSTANCE_H_ #include "common/extension.h" +#include "sound_manager.h" namespace extension { namespace sound { @@ -16,6 +17,8 @@ class SoundInstance : public common::ParsedInstance { virtual ~SoundInstance(); private: + SoundManager* manager_; + void SoundManagerSetVolume(const picojson::value& args, picojson::object& out); void SoundManagerUnsetSoundModeChangeListener(const picojson::value& args, picojson::object& out); void SoundManagerGetVolume(const picojson::value& args, picojson::object& out); @@ -28,4 +31,4 @@ class SoundInstance : public common::ParsedInstance { } // namespace sound } // namespace extension -#endif // SOUND_SOUND_INSTANCE_H_ \ No newline at end of file +#endif // SOUND_SOUND_INSTANCE_H_ diff --git a/src/sound/sound_manager.cc b/src/sound/sound_manager.cc new file mode 100644 index 0000000..3145aef --- /dev/null +++ b/src/sound/sound_manager.cc @@ -0,0 +1,70 @@ +// Copyright 2015 Samsung Electronics Co, Ltd. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "sound/sound_manager.h" + +#include + +#include "sound/sound_instance.h" +#include "common/logger.h" +#include "common/converter.h" +#include "common/platform_exception.h" + +using namespace common; + +namespace extension { +namespace sound { + +const std::map SoundManager::platform_enum_map_ = { + {"SYSTEM", SOUND_TYPE_SYSTEM}, + {"NOTIFICATION", SOUND_TYPE_NOTIFICATION}, + {"ALARM", SOUND_TYPE_ALARM}, + {"MEDIA", SOUND_TYPE_MEDIA}, + {"VOICE", SOUND_TYPE_VOICE}, + {"RINGTONE", SOUND_TYPE_RINGTONE}}; + +sound_type_e SoundManager::StrToPlatformEnum(const std::string& key) { + if (platform_enum_map_.find(key) == platform_enum_map_.end()) { + std::string message = "Platform enum value not found for key " + key; + // TODO: throw InvalidValuesException(message); + } + + return platform_enum_map_.at(key); +} + +std::string SoundManager::PlatformEnumToStr(const sound_type_e value) { + for (auto& item : platform_enum_map_) { + if (item.second == value) return item.first; + } + + std::string message = + "Platform enum value " + std::to_string(value) + " not found"; + // TODO: throw InvalidValuesException(message); +} + +SoundManager::SoundManager() {} + +SoundManager::~SoundManager() {} + +SoundManager* SoundManager::GetInstance() { + static SoundManager instance; + return &instance; +} + +int SoundManager::GetSoundMode() {} + +void SoundManager::SetVolume(const picojson::object& args) {} + +double SoundManager::GetVolume(const picojson::object& args) {} + +void SoundManager::SetSoundModeChangeListener(const picojson::object& args) {} + +void SoundManager::UnsetSoundModeChangeListener() {} + +void SoundManager::SetVolumeChangeListener(const picojson::object& args) {} + +void SoundManager::UnsetVolumeChangeListener() {} + +} // namespace sound +} // namespace extension diff --git a/src/sound/sound_manager.h b/src/sound/sound_manager.h new file mode 100644 index 0000000..becf94e --- /dev/null +++ b/src/sound/sound_manager.h @@ -0,0 +1,40 @@ +// Copyright 2015 Samsung Electronics Co, Ltd. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SOUND_SOUND_MANAGER_H_ +#define SOUND_SOUND_MANAGER_H_ + +#include + +#include "common/picojson.h" + +namespace extension { +namespace sound { + +class SoundManager { + public: + static SoundManager* GetInstance(); + + int GetSoundMode(); + void SetVolume(const picojson::object& args); + double GetVolume(const picojson::object& args); + void SetSoundModeChangeListener(const picojson::object& args); + void UnsetSoundModeChangeListener(); + void SetVolumeChangeListener(const picojson::object& args); + void UnsetVolumeChangeListener(); + + private: + SoundManager(); + virtual ~SoundManager(); + + static const std::map platform_enum_map_; + + static sound_type_e StrToPlatformEnum(const std::string& key); + static std::string PlatformEnumToStr(const sound_type_e value); +}; + +} // namespace sound +} // namespace extension + +#endif // SOUND_SOUND_MANAGER_H_ -- 2.7.4