2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "radio/radio_instance.h"
20 #include "common/logger.h"
25 using namespace common;
26 using namespace extension::radio;
28 RadioInstance::RadioInstance() : manager_(*this) {
30 using std::placeholders::_1;
31 using std::placeholders::_2;
33 #define REGISTER_METHOD(M) \
34 RegisterSyncHandler(#M, std::bind(&RadioInstance::M, this, _1, _2))
35 REGISTER_METHOD(FMRadioStart);
36 REGISTER_METHOD(FMRadioStop);
37 REGISTER_METHOD(SetFMRadioInterruptedListener);
38 REGISTER_METHOD(UnsetFMRadioInterruptedListener);
39 REGISTER_METHOD(FMRadioSetAntennaChangeListener);
40 REGISTER_METHOD(FMRadioUnsetAntennaChangeListener);
41 REGISTER_METHOD(FMRadioFrequencyGetter);
42 REGISTER_METHOD(FMRadioSignalStrengthGetter);
43 REGISTER_METHOD(FMRadioIsAntennaConnectedGetter);
44 REGISTER_METHOD(FMRadioRadioStateGetter);
45 REGISTER_METHOD(FMRadioMuteSetter);
46 REGISTER_METHOD(FMRadioMuteGetter);
48 REGISTER_METHOD(FMRadioSeekUp);
49 REGISTER_METHOD(FMRadioSeekDown);
50 REGISTER_METHOD(FMRadioScanStart);
51 REGISTER_METHOD(FMRadioScanStop);
52 #undef REGISTER_METHOD
55 RadioInstance::~RadioInstance() {
59 void RadioInstance::FMRadioMuteGetter(const picojson::value& args, picojson::object& out) {
61 ReportSuccess(picojson::value(manager_.IsMuted()), out);
64 void RadioInstance::FMRadioMuteSetter(const picojson::value& args, picojson::object& out) {
66 manager_.SetMute(args.get("mute").get<bool>());
70 void RadioInstance::FMRadioIsAntennaConnectedGetter(const picojson::value& args, picojson::object& out) {
72 ReportSuccess(picojson::value(manager_.HasAntenna()), out);
75 void RadioInstance::FMRadioRadioStateGetter(const picojson::value& args, picojson::object& out) {
77 ReportSuccess(picojson::value(manager_.GetState()), out);
80 void RadioInstance::FMRadioFrequencyGetter(const picojson::value& args, picojson::object& out) {
82 ReportSuccess(picojson::value(manager_.GetFrequency()), out);
85 void RadioInstance::FMRadioSignalStrengthGetter(const picojson::value& args, picojson::object& out) {
87 ReportSuccess(picojson::value(manager_.GetSignalStrength()), out);
90 void RadioInstance::FMRadioSeekUp(const picojson::value& args, picojson::object& out) {
92 manager_.SeekUp(args.get("callbackId").get<double>());
96 void RadioInstance::FMRadioSeekDown(const picojson::value& args, picojson::object& out) {
98 manager_.SeekDown(args.get("callbackId").get<double>());
102 void RadioInstance::FMRadioStart(const picojson::value& args, picojson::object& out) {
105 PlatformResult result = manager_.Start(args.get("frequency").get<double>());
110 LogAndReportError(result, &out);
114 void RadioInstance::FMRadioStop(const picojson::value& args, picojson::object& out) {
117 PlatformResult result = manager_.Stop();
122 LogAndReportError(result, &out);
126 void RadioInstance::FMRadioScanStart(const picojson::value& args, picojson::object& out) {
128 manager_.ScanStart(args.get("callbackId").get<double>());
132 void RadioInstance::FMRadioScanStop(const picojson::value& args, picojson::object& out) {
134 manager_.ScanStop(args.get("callbackId").get<double>());
138 void RadioInstance::SetFMRadioInterruptedListener(const picojson::value& args,
139 picojson::object& out) {
142 PlatformResult result = manager_.SetFMRadioInterruptedListener();
147 LogAndReportError(result, &out);
151 void RadioInstance::UnsetFMRadioInterruptedListener(const picojson::value& args,
152 picojson::object& out) {
155 PlatformResult result = manager_.UnsetFMRadioInterruptedListener();
160 LogAndReportError(result, &out);
164 void RadioInstance::FMRadioSetAntennaChangeListener(const picojson::value& args, picojson::object& out) {
167 PlatformResult result = manager_.SetAntennaChangeListener();
172 LogAndReportError(result, &out);
176 void RadioInstance::FMRadioUnsetAntennaChangeListener(const picojson::value& args, picojson::object& out) {
179 PlatformResult result = manager_.UnsetAntennaChangeListener();
184 LogAndReportError(result, &out);
189 } // namespace extension