From a5d549b5bf4140851eafcb99777e3fa3660adf0e Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Fri, 4 Sep 2015 13:29:41 +0200 Subject: [PATCH] [FMRadio] Function start() and stop() adjusted to the documentation. [Verification] Code compiles. TCT pass rate did not changed. Change-Id: I02be324c37de4b068d458599c383d747a777fd54 Signed-off-by: Tomasz Marciniak --- src/radio/radio_manager.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/radio/radio_manager.cc b/src/radio/radio_manager.cc index 5b5a3013..e75970e1 100755 --- a/src/radio/radio_manager.cc +++ b/src/radio/radio_manager.cc @@ -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_)); } -- 2.34.1