#include "common/logger.h"
#include "common/extension.h"
+#include "common/task-queue.h"
#include "radio/radio_instance.h"
PlatformResult result = data->manager_.SetFrequency(ToMHz(frequency));
if (result) {
- data->manager_.PostResultSuccess(data->callback_id_);
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostResultCallbackSuccess, &data->manager_,
+ data->callback_id_));
} else {
- data->manager_.PostResultFailure(data->callback_id_, result);
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostResultFailure, &data->manager_,
+ data->callback_id_, result));
}
delete data;
auto& obj = event.get<picojson::object>();
obj.insert(std::make_pair("frequency", picojson::value(ToMHz(frequency))));
obj.insert(std::make_pair("listenerId", picojson::value("FMRadio_Onfrequencyfound")));
- data->manager_.PostMessage(event.serialize());
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostMessage, &data->manager_, event.serialize()));
+}
+
+void PostAsyncSuccess(FMRadioManager& manager, double callbackId, picojson::value* event) {
+ manager.PostResultSuccess(callbackId, event);
+ delete event;
}
void ScanCompleteCallback(void* user_data) {
RadioScanData* data = static_cast<RadioScanData*>(user_data);
- picojson::value event{picojson::object()};
- auto& obj = event.get<picojson::object>();
+ picojson::value* event = new picojson::value(picojson::object());
+ auto& obj = event->get<picojson::object>();
obj.insert(std::make_pair("name", picojson::value("onfinished")));
picojson::array frequencies;
}
obj.insert(std::make_pair("frequencies", picojson::value(frequencies)));
- data->manager_.PostResultSuccess(data->callback_id_, &event);
+ common::TaskQueue::GetInstance().Async(std::bind(&PostAsyncSuccess,
+ data->manager_, data->callback_id_, event));
delete data;
}
LoggerD("Enter");
RadioData* data = static_cast<RadioData*>(user_data);
- data->manager_.PostResultSuccess(data->callback_id_);
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostResultCallbackSuccess, &data->manager_, data->callback_id_));
delete data;
}
}
FMRadioManager* manager = static_cast<FMRadioManager*>(user_data);
- manager->PostMessage(event.serialize());
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostMessage, manager, event.serialize()));
}
obj.insert(std::make_pair("listenerId", picojson::value("FMRadio_Antenna")));
FMRadioManager* manager = static_cast<FMRadioManager*>(user_data);
- manager->PostMessage(event.serialize());
+ common::TaskQueue::GetInstance().Async(std::bind(
+ &FMRadioManager::PostMessage, manager, event.serialize()));
}
} // namespace
PostMessage(event->serialize());
}
-void FMRadioManager::PostResultSuccess(double callbackId) const {
+void FMRadioManager::PostResultCallbackSuccess(double callbackId) const {
picojson::value event{picojson::object()};
PostResultSuccess(callbackId, &event);