}
},
'signalStrength' : {
- value : 'TEST',
- writable : false,
- enumerable : true
+ enumerable : true,
+ get : signalStrengthGetter,
+ set : function() {
+ }
},
'state' : {
- value : 'READY',
- writable : false,
- enumerable : true
+ enumerable : true,
+ get : radioStateGetter,
+ set : function() {
+ }
},
'isAntennaConnected' : {
- value : 'TEST',
- writable : false,
- enumerable : true
+ enumerable : true,
+ get : isAntennaConnectedGetter,
+ set : function() {
+ }
},
'mute' : {
value : 'TEST',
}
});
+ function radioStateGetter() {
+ var ret = native_.callSync('FMRadio_RadioStateGetter');
+ return native_.getResultObject(ret);
+ }
+
+ function isAntennaConnectedGetter() {
+ var ret = native_.callSync('FMRadio_IsAntennaConnectedGetter');
+ return native_.getResultObject(ret);
+ }
+
+ function signalStrengthGetter() {
+ var ret = native_.callSync('FMRadio_SignalStrengthGetter');
+ return native_.getResultObject(ret);
+ }
+
function frequencyGetter() {
- // TODO
- return 1000;
+
+ var ret = native_.callSync('FMRadio_FrequencyGetter');
+ return native_.getResultObject(ret);
}
function frequencyUpperGetter() {
if (args.frequency) {
if (args.frequency < this.frequencyLowerBound
|| args.frequency > this.frequencyUpperBound)
- throw new tizen.WebAPIException(
- tizen.WebAPIException.INVALID_VALUES_ERR);
+ throw new tizen.WebAPIException(0,
+ tizen.WebAPIException.INVALID_VALUES_ERR,
+ 'Frequency out of bounds');
}
var result = native_.callSync('FMRadio_Start', {
'frequency' : args.frequency ? args.frequency
REGISTER_SYNC("FMRadio_UnsetFMRadioInterruptedListener", UnsetFMRadioInterruptedListener);
REGISTER_SYNC("FMRadio_SetAntennaChangeListener", SetAntennaChangeListener);
REGISTER_SYNC("FMRadio_UnsetAntennaChangeListener", UnsetAntennaChangeListener);
+ REGISTER_SYNC("FMRadio_FrequencyGetter", FrequencyGetter);
+ REGISTER_SYNC("FMRadio_SignalStrengthGetter", SignalStrengthGetter);
+ REGISTER_SYNC("FMRadio_IsAntennaConnectedGetter", AntenaGetter);
+ REGISTER_SYNC("FMRadio_RadioStateGetter", StateGetter);
#undef REGISTER_SYNC
#define REGISTER_ASYNC(c,x) \
RegisterHandler(c, std::bind(&RadioInstance::x, this, _1, _2));
return instance;
}
+ void RadioInstance::AntenaGetter(const picojson::value& args,
+ picojson::object& out){
+ }
+
+ void RadioInstance::StateGetter(const picojson::value& args,
+ picojson::object& out){
+ }
+
+ void RadioInstance::FrequencyGetter(const picojson::value& args,
+ picojson::object& out)
+ {
+ LoggerD(".cc FrequencyGetter()");
+ double freq = FMRadioManager::GetInstance()->FrequencyGetter();
+ ReportSuccess(picojson::value(freq),out);
+ }
+
+ void RadioInstance::SignalStrengthGetter(const picojson::value& args,
+ picojson::object& out)
+ {
+ LoggerD(".cc SignalStrengthGetter()");
+ double strength = FMRadioManager::GetInstance()->SignalStrengthGetter();
+ ReportSuccess(picojson::value(strength),out);
+ }
+
void RadioInstance::InstanceReportSuccess(picojson::object& out) {
LoggerD(".cc InstanceReportSuccess()");
}
FMRadioManager::GetInstance()->Start(args.get("frequency").get<double>());
}
catch(const PlatformException& e){
- LoggerE(".cc RadioInstance::Start() CATCH");
ReportError(e,out);
}
}
void RadioInstance::Stop(const picojson::value& args,
picojson::object& out) {
+ try{
LoggerD(".cc Stop()");
FMRadioManager::GetInstance()->Stop();
+ }
+ catch(const PlatformException& e){
+ ReportError(e,out);
+ }
}
void RadioInstance::ScanStart(const picojson::value& args,
void InstanceReportSuccess(picojson::object& out);
private:
+ void FrequencyGetter(const picojson::value& args,picojson::object& out);
+ void SignalStrengthGetter(const picojson::value& args,picojson::object& out);
+ void AntenaGetter(const picojson::value& args,picojson::object& out);
+ void StateGetter(const picojson::value& args,picojson::object& out);
void SeekUp(const picojson::value& args, picojson::object& out);
void SeekDown(const picojson::value& args, picojson::object& out);
void ScanStart(const picojson::value& args, picojson::object& out);
namespace extension {
namespace radio {
+static const double FREQ_LOWER = 87.5;
+
typedef struct RadioSeekCBstruct_
{
double cbid;
return 0;
}
+double FMRadioManager::FrequencyGetter()
+{
+ int freq;
+ LoggerD("FMRadioManager::FrequencyGetter()");
+ int err = radio_get_frequency(radio_instance,&freq);
+
+ if (RADIO_ERROR_NONE != err)
+ {
+ LoggerE("radio_get_frequency() error %d",err);
+ return FREQ_LOWER;
+ }
+ return static_cast<double>(freq/1000);
+}
+double FMRadioManager::SignalStrengthGetter()
+{
+ int stren;
+
+ LoggerD("FMRadioManager::SignalStrengthGetter()");
+ int err = radio_get_signal_strength(radio_instance,&stren);
+ if (RADIO_ERROR_NONE != err)
+ {
+ LoggerE("radio_get_signal_strength()");
+ return 0;
+ }
+ return static_cast<double>(stren);
+}
+
FMRadioManager::FMRadioManager() : radio_instance(NULL)
{
LoggerD("FMRadioManager::FMRadioManager()");
void SetAntennaChangeListener();
void UnsetAntennaChangeListener();
+ double FrequencyGetter();
+ double SignalStrengthGetter();
+
private:
static common::PlatformException GetException(char * name,int err);