%define tizen_feature_datasync_support 1
%define tizen_feature_download_support 0
%define tizen_feature_exif_support 0
-%define tizen_feature_fm_radio_support 0
+%define tizen_feature_fm_radio_support 1
%define tizen_feature_gamepad_support 0
%define tizen_feature_ham_support 0
%define tizen_feature_messaging_email_support 1
BuildRequires: pkgconfig(capi-network-nfc)
%endif
+%if 0%{?tizen_feature_fm_radio_support}
+BuildRequires: pkgconfig(capi-media-radio)
+%endif
+
%description
Tizen Web APIs implemented.
--- /dev/null
+{
+ 'includes':[
+ '../common/common.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'tizen_fmradio',
+ 'type': 'loadable_module',
+ 'sources': [
+ 'radio_api.js',
+ 'radio_extension.cc',
+ 'radio_extension.h',
+ 'radio_instance.cc',
+ 'radio_instance.h'
+ ],
+ 'conditions': [
+ ['tizen == 1', {
+ 'variables': {
+ 'packages': [
+ 'vconf',
+ 'capi-media-radio',
+ ]
+ },
+ }],
+ ],
+ },
+ ],
+}
--- /dev/null
+/* global xwalk, extension, tizen */
+
+// Copyright 2014 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.
+
+var validator_ = xwalk.utils.validator;
+var types_ = validator_.Types;
+var native_ = new xwalk.utils.NativeManager(extension);
+
+var RadioState = {
+ PLAYING : 'PLAYING',
+ SCANNING : 'SCANNING',
+ READY : 'READY'
+};
+
+function FMRadioManager() {
+ Object.defineProperties(this, {
+ 'frequency': { value: 'TEST', writable: false,enumerable: true },
+ 'frequencyUpperBound': { value: 'TEST',writable: false,enumerable: true },
+ 'frequencyLowerBound': { value: 'TEST',writable: false,enumerable: true },
+ 'signalStrength': { value: 'TEST',writable: false,enumerable: true },
+ 'state': { value: 'TEST',writable: false,enumerable: true },
+ 'isAntennaConnected': { value: 'TEST',writable: false,enumerable: true },
+ 'mute': {value: 'TEST', writable: false,enumerable: true }
+ });
+}
+
+FMRadioManager.prototype.seekUp = function() {
+ var ret = native_.call('FMRadio_SeekUp');
+ return 'SeekUp';
+};
+
+FMRadioManager.prototype.seekDown = function() {
+ var ret = native_.call('FMRadio_SeekDown');
+ return 'SeekDown'
+};
+
+FMRadioManager.prototype.scanStart = function() {
+ var ret = native_.call('FMRadio_ScanStart');
+ return 'scanStart'
+};
+
+FMRadioManager.prototype.scanStop = function() {
+ var ret = native_.call('FMRadio_ScanStop');
+ return 'scanStop'
+};
+
+FMRadioManager.prototype.setFMRadioInterruptedListener = function() {
+ var ret = native_.callSync('FMRadio_SetFMRadioInterruptedListener');
+ return 'setFMRadioInterruptedListener'
+};
+
+FMRadioManager.prototype.unsetFMRadioInterruptedListener = function() {
+ var ret = native_.callSync('FMRadio_UnsetFMRadioInterruptedListener');
+ return 'unsetFMRadioInterruptedListener'
+};
+
+FMRadioManager.prototype.setAntennaChangeListener = function() {
+ var ret = native_.callSync('FMRadio_SetAntennaChangeListener');
+ return 'setAntennaChangeListener'
+};
+
+FMRadioManager.prototype.unsetAntennaChangeListener = function() {
+ var ret = native_.callSync('FMRadio_UnsetAntennaChangeListener');
+ return 'unsetAntennaChangeListener'
+};
+
+exports = new FMRadioManager();
+
--- /dev/null
+// Copyright 2014 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 "radio/radio_extension.h"
+#include "radio/radio_instance.h"
+
+#include <common/logger.h>
+
+// This will be generated from radio_api.js
+extern const char kSource_radio_api[];
+
+common::Extension* CreateExtension() {
+ return new RadioExtension;
+}
+
+RadioExtension::RadioExtension() {
+ SetExtensionName("tizen.fmradio");
+ SetJavaScriptAPI(kSource_radio_api);
+ LoggerD("RadioExtension()");
+}
+
+RadioExtension::~RadioExtension() {}
+
+common::Instance* RadioExtension::CreateInstance() {
+ return new extension::radio::RadioInstance;
+}
--- /dev/null
+// Copyright 2014 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 RADIO_RADIO_EXTENSION_H_
+#define RADIO_RADIO_EXTENSION_H_
+
+#include "common/extension.h"
+
+class RadioExtension : public common::Extension {
+ public:
+ RadioExtension();
+ virtual ~RadioExtension();
+
+ private:
+ virtual common::Instance* CreateInstance();
+};
+
+#endif
+
--- /dev/null
+// Copyright 2014 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 "radio/radio_instance.h"
+
+#include <functional>
+
+#include "common/picojson.h"
+#include "common/logger.h"
+#include "common/platform_exception.h"
+
+#include <radio.h>
+
+namespace extension {
+namespace radio {
+
+ using namespace common;
+ using namespace extension::radio;
+
+ RadioInstance::RadioInstance() {
+ using namespace std::placeholders;
+ #define REGISTER_SYNC(c,x) \
+ RegisterSyncHandler(c, std::bind(&RadioInstance::x, this, _1, _2));
+ REGISTER_SYNC("FMRadio_Start", Start);
+ REGISTER_SYNC("FMRadio_Stop", Stop);
+ REGISTER_SYNC("FMRadio_SetFMRadioInterruptedListener", SetFMRadioInterruptedListener);
+ REGISTER_SYNC("FMRadio_UnsetFMRadioInterruptedListener", UnsetFMRadioInterruptedListener);
+ REGISTER_SYNC("FMRadio_SetAntennaChangeListener", SetAntennaChangeListener);
+ REGISTER_SYNC("FMRadio_UnsetAntennaChangeListener", UnsetAntennaChangeListener);
+ #undef REGISTER_SYNC
+ #define REGISTER_ASYNC(c,x) \
+ RegisterHandler(c, std::bind(&RadioInstance::x, this, _1, _2));
+ REGISTER_ASYNC("FMRadio_SeekUp", SeekUp);
+ REGISTER_ASYNC("FMRadio_SeekDown", SeekDown);
+ REGISTER_ASYNC("FMRadio_ScanStart", ScanStart);
+ REGISTER_ASYNC("FMRadio_ScanStop", ScanStop);
+ #undef REGISTER_ASYNC
+
+ LoggerD("RadioInstance()");
+ }
+
+ RadioInstance::~RadioInstance() {
+ }
+
+ void RadioInstance::Start(const picojson::value& args,
+ picojson::object& out){
+ LoggerD(".cc Start()");
+ }
+
+ void RadioInstance::Stop(const picojson::value& args,
+ picojson::object& out){
+ LoggerD(".cc Stop()");
+ }
+
+ void RadioInstance::SeekUp(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc SeekUp()");
+ }
+ void RadioInstance::SeekDown(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc SeekDown()");
+ }
+ void RadioInstance::ScanStart(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc ScanStart()");
+ }
+ void RadioInstance::ScanStop(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc ScanStop()");
+ }
+ void RadioInstance::SetFMRadioInterruptedListener(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc SetFMRadioInterruptedListener()");
+ }
+ void RadioInstance::UnsetFMRadioInterruptedListener(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc UnsetFMRadioInterruptedListener()");
+ }
+ void RadioInstance::SetAntennaChangeListener(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc SetAntennaChangeListener()");
+ }
+ void RadioInstance::UnsetAntennaChangeListener(const picojson::value& args,
+ picojson::object& out) {
+ LoggerD(".cc UnsetAntennaChangeListener()");
+ }
+
+}
+}
--- /dev/null
+// Copyright 2014 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 RADIO_RADIO_INSTANCE_H_
+#define RADIO_RADIO_INSTANCE_H_
+
+#include "common/extension.h"
+
+
+namespace extension {
+namespace radio {
+
+class RadioInstance
+ : public common::ParsedInstance
+ {
+ public:
+ RadioInstance();
+ virtual ~RadioInstance();
+
+
+
+ private:
+ void Start(const picojson::value& args, picojson::object& out);
+ void Stop(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);
+ void ScanStop(const picojson::value& args, picojson::object& out);
+ void SetFMRadioInterruptedListener(const picojson::value& args, picojson::object& out);
+ void UnsetFMRadioInterruptedListener(const picojson::value& args, picojson::object& out);
+ void SetAntennaChangeListener(const picojson::value& args, picojson::object& out);
+ void UnsetAntennaChangeListener(const picojson::value& args, picojson::object& out);
+};
+
+}
+}
+
+#endif
'power/power.gyp:*',
'bookmark/bookmark.gyp:*',
'systeminfo/systeminfo.gyp:*',
+ 'radio/radio.gyp:*',
],
},
], # end mobile