[FMRadio] Function start() and stop() adjusted to the documentation.
authorTomasz Marciniak <t.marciniak@samsung.com>
Fri, 4 Sep 2015 11:29:41 +0000 (13:29 +0200)
committerTomasz Marciniak <t.marciniak@samsung.com>
Fri, 4 Sep 2015 11:29:41 +0000 (13:29 +0200)
[Verification] Code compiles. TCT pass rate did not changed.

Change-Id: I02be324c37de4b068d458599c383d747a777fd54
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/radio/radio_manager.cc

index 5b5a301325bd2cf5bab6aac9839844e80d382b82..e75970e19ff42dcb914b1f277d4ab009ab5a8ccc 100755 (executable)
@@ -358,6 +358,21 @@ FMRadioManager::~FMRadioManager() {
 PlatformResult FMRadioManager::Start(double frequency) {
   LoggerD("Enter, frequency: %f", frequency);
 
+  radio_state_e state;
+  const auto err = radio_get_state(radio_instance_, &state);
+
+  if (RADIO_ERROR_NONE != err) {
+    LoggerE("radio_get_state() failed: %d", err);
+    return GetPlatformResult("radio_get_state() failed.", err);
+  }
+
+  if (RADIO_STATE_READY != state) {
+    if (RADIO_STATE_PLAYING == state) {
+      return PlatformResult(ErrorCode::NO_ERROR);
+    }
+    return PlatformResult(ErrorCode::INVALID_STATE_ERR, "Invalid radio state.");
+  }
+
   PlatformResult result = SetFrequency(frequency);
 
   if (!result) {
@@ -370,6 +385,18 @@ PlatformResult FMRadioManager::Start(double frequency) {
 PlatformResult FMRadioManager::Stop() {
   LoggerD("Enter");
 
+  radio_state_e state;
+  const auto err = radio_get_state(radio_instance_, &state);
+
+  if (RADIO_ERROR_NONE != err) {
+    LoggerE("radio_get_state() failed: %d", err);
+    return GetPlatformResult("radio_get_state() failed.", err);
+  }
+
+  if (RADIO_STATE_PLAYING != state) {
+    return PlatformResult(ErrorCode::INVALID_STATE_ERR, "Invalid radio state.");
+  }
+
   return CheckError("radio_stop", radio_stop(radio_instance_));
 }