[Sound] Manager stub
authorRyszard Matuszyk <r.matuszyk@samsung.com>
Thu, 5 Feb 2015 13:19:07 +0000 (14:19 +0100)
committerRyszard Matuszyk <r.matuszyk@samsung.com>
Fri, 6 Feb 2015 10:51:30 +0000 (19:51 +0900)
[Verification] Build required

Change-Id: I5da13f20875ee8d15be33b881b3e4283ab441694
Signed-off-by: Ryszard Matuszyk <r.matuszyk@samsung.com>
src/sound/sound.gyp
src/sound/sound_instance.cc
src/sound/sound_instance.h
src/sound/sound_manager.cc [new file with mode: 0644]
src/sound/sound_manager.h [new file with mode: 0644]

index 25cf67b..c67c331 100644 (file)
@@ -17,6 +17,8 @@
         'sound_extension.h',
         'sound_instance.cc',
         'sound_instance.h',
+        'sound_manager.cc',
+        'sound_manager.h',
       ],
       'conditions': [
         [ 'tizen == 1', {
index cd0d293..b9fb10e 100644 (file)
@@ -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
index d35f014..de5b681 100644 (file)
@@ -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 (file)
index 0000000..3145aef
--- /dev/null
@@ -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 <tizen/tizen.h>
+
+#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<std::string, sound_type_e> 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 (file)
index 0000000..becf94e
--- /dev/null
@@ -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 <sound_manager.h>
+
+#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<std::string, sound_type_e> 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_