#include "ble_plugin.h" #include #define BLE_PLUGIN(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj), ble_plugin_get_type(), BlePlugin)) struct _BlePlugin { GObject parent_instance; }; G_DEFINE_TYPE(BlePlugin, ble_plugin, g_object_get_type()) static void ble_plugin_handle_method_call(BlePlugin* self, FlMethodCall* method_call) { g_autoptr(FlMethodResponse) response = nullptr; const gchar* method = fl_method_call_get_name(method_call); if (strcmp(method, "isSupported") == 0) { g_autoptr(FlValue) result = fl_value_new_bool(FALSE); response = FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } else { response = FL_METHOD_RESPONSE( fl_method_success_response_new(fl_value_new_null())); } fl_method_call_respond(method_call, response, nullptr); } static void method_call_cb(FlMethodChannel* channel, FlMethodCall* method_call, gpointer user_data) { BlePlugin* plugin = BLE_PLUGIN(user_data); ble_plugin_handle_method_call(plugin, method_call); } void ble_plugin_register_with_registrar(FlPluginRegistrar* registrar) { BlePlugin* plugin = BLE_PLUGIN(g_object_new(ble_plugin_get_type(), nullptr)); g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new(); g_autoptr(FlMethodChannel) channel = fl_method_channel_new( fl_plugin_registrar_get_messenger(registrar), "com.dalimaster.ble", FL_METHOD_CODEC(codec)); fl_method_channel_set_method_call_handler(channel, method_call_cb, g_object_ref(plugin), g_object_unref); g_object_unref(plugin); } static void ble_plugin_class_init(BlePluginClass* klass) {} static void ble_plugin_init(BlePlugin* self) {}