// Autogenerated from Pigeon (v26.1.4), do not edit directly. // See also: https://pub.dev/packages/pigeon #undef _HAS_EXCEPTIONS #include "universal_ble.g.h" #include #include #include #include #include #include #include namespace universal_ble { using flutter::BasicMessageChannel; using flutter::CustomEncodableValue; using flutter::EncodableList; using flutter::EncodableMap; using flutter::EncodableValue; FlutterError CreateConnectionError(const std::string channel_name) { return FlutterError( "channel-error", "Unable to establish connection on channel: '" + channel_name + "'.", EncodableValue("")); } // UniversalBleScanResult UniversalBleScanResult::UniversalBleScanResult(const std::string& device_id) : device_id_(device_id) {} UniversalBleScanResult::UniversalBleScanResult( const std::string& device_id, const std::string* name, const bool* is_paired, const int64_t* rssi, const EncodableList* manufacturer_data_list, const EncodableMap* service_data, const EncodableList* services, const int64_t* timestamp) : device_id_(device_id), name_(name ? std::optional(*name) : std::nullopt), is_paired_(is_paired ? std::optional(*is_paired) : std::nullopt), rssi_(rssi ? std::optional(*rssi) : std::nullopt), manufacturer_data_list_(manufacturer_data_list ? std::optional(*manufacturer_data_list) : std::nullopt), service_data_(service_data ? std::optional(*service_data) : std::nullopt), services_(services ? std::optional(*services) : std::nullopt), timestamp_(timestamp ? std::optional(*timestamp) : std::nullopt) {} const std::string& UniversalBleScanResult::device_id() const { return device_id_; } void UniversalBleScanResult::set_device_id(std::string_view value_arg) { device_id_ = value_arg; } const std::string* UniversalBleScanResult::name() const { return name_ ? &(*name_) : nullptr; } void UniversalBleScanResult::set_name(const std::string_view* value_arg) { name_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_name(std::string_view value_arg) { name_ = value_arg; } const bool* UniversalBleScanResult::is_paired() const { return is_paired_ ? &(*is_paired_) : nullptr; } void UniversalBleScanResult::set_is_paired(const bool* value_arg) { is_paired_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_is_paired(bool value_arg) { is_paired_ = value_arg; } const int64_t* UniversalBleScanResult::rssi() const { return rssi_ ? &(*rssi_) : nullptr; } void UniversalBleScanResult::set_rssi(const int64_t* value_arg) { rssi_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_rssi(int64_t value_arg) { rssi_ = value_arg; } const EncodableList* UniversalBleScanResult::manufacturer_data_list() const { return manufacturer_data_list_ ? &(*manufacturer_data_list_) : nullptr; } void UniversalBleScanResult::set_manufacturer_data_list(const EncodableList* value_arg) { manufacturer_data_list_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_manufacturer_data_list(const EncodableList& value_arg) { manufacturer_data_list_ = value_arg; } const EncodableMap* UniversalBleScanResult::service_data() const { return service_data_ ? &(*service_data_) : nullptr; } void UniversalBleScanResult::set_service_data(const EncodableMap* value_arg) { service_data_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_service_data(const EncodableMap& value_arg) { service_data_ = value_arg; } const EncodableList* UniversalBleScanResult::services() const { return services_ ? &(*services_) : nullptr; } void UniversalBleScanResult::set_services(const EncodableList* value_arg) { services_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_services(const EncodableList& value_arg) { services_ = value_arg; } const int64_t* UniversalBleScanResult::timestamp() const { return timestamp_ ? &(*timestamp_) : nullptr; } void UniversalBleScanResult::set_timestamp(const int64_t* value_arg) { timestamp_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleScanResult::set_timestamp(int64_t value_arg) { timestamp_ = value_arg; } EncodableList UniversalBleScanResult::ToEncodableList() const { EncodableList list; list.reserve(8); list.push_back(EncodableValue(device_id_)); list.push_back(name_ ? EncodableValue(*name_) : EncodableValue()); list.push_back(is_paired_ ? EncodableValue(*is_paired_) : EncodableValue()); list.push_back(rssi_ ? EncodableValue(*rssi_) : EncodableValue()); list.push_back(manufacturer_data_list_ ? EncodableValue(*manufacturer_data_list_) : EncodableValue()); list.push_back(service_data_ ? EncodableValue(*service_data_) : EncodableValue()); list.push_back(services_ ? EncodableValue(*services_) : EncodableValue()); list.push_back(timestamp_ ? EncodableValue(*timestamp_) : EncodableValue()); return list; } UniversalBleScanResult UniversalBleScanResult::FromEncodableList(const EncodableList& list) { UniversalBleScanResult decoded( std::get(list[0])); auto& encodable_name = list[1]; if (!encodable_name.IsNull()) { decoded.set_name(std::get(encodable_name)); } auto& encodable_is_paired = list[2]; if (!encodable_is_paired.IsNull()) { decoded.set_is_paired(std::get(encodable_is_paired)); } auto& encodable_rssi = list[3]; if (!encodable_rssi.IsNull()) { decoded.set_rssi(std::get(encodable_rssi)); } auto& encodable_manufacturer_data_list = list[4]; if (!encodable_manufacturer_data_list.IsNull()) { decoded.set_manufacturer_data_list(std::get(encodable_manufacturer_data_list)); } auto& encodable_service_data = list[5]; if (!encodable_service_data.IsNull()) { decoded.set_service_data(std::get(encodable_service_data)); } auto& encodable_services = list[6]; if (!encodable_services.IsNull()) { decoded.set_services(std::get(encodable_services)); } auto& encodable_timestamp = list[7]; if (!encodable_timestamp.IsNull()) { decoded.set_timestamp(std::get(encodable_timestamp)); } return decoded; } // UniversalBleService UniversalBleService::UniversalBleService(const std::string& uuid) : uuid_(uuid) {} UniversalBleService::UniversalBleService( const std::string& uuid, const EncodableList* characteristics) : uuid_(uuid), characteristics_(characteristics ? std::optional(*characteristics) : std::nullopt) {} const std::string& UniversalBleService::uuid() const { return uuid_; } void UniversalBleService::set_uuid(std::string_view value_arg) { uuid_ = value_arg; } const EncodableList* UniversalBleService::characteristics() const { return characteristics_ ? &(*characteristics_) : nullptr; } void UniversalBleService::set_characteristics(const EncodableList* value_arg) { characteristics_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void UniversalBleService::set_characteristics(const EncodableList& value_arg) { characteristics_ = value_arg; } EncodableList UniversalBleService::ToEncodableList() const { EncodableList list; list.reserve(2); list.push_back(EncodableValue(uuid_)); list.push_back(characteristics_ ? EncodableValue(*characteristics_) : EncodableValue()); return list; } UniversalBleService UniversalBleService::FromEncodableList(const EncodableList& list) { UniversalBleService decoded( std::get(list[0])); auto& encodable_characteristics = list[1]; if (!encodable_characteristics.IsNull()) { decoded.set_characteristics(std::get(encodable_characteristics)); } return decoded; } // UniversalBleCharacteristic UniversalBleCharacteristic::UniversalBleCharacteristic( const std::string& uuid, const EncodableList& properties, const EncodableList& descriptors) : uuid_(uuid), properties_(properties), descriptors_(descriptors) {} const std::string& UniversalBleCharacteristic::uuid() const { return uuid_; } void UniversalBleCharacteristic::set_uuid(std::string_view value_arg) { uuid_ = value_arg; } const EncodableList& UniversalBleCharacteristic::properties() const { return properties_; } void UniversalBleCharacteristic::set_properties(const EncodableList& value_arg) { properties_ = value_arg; } const EncodableList& UniversalBleCharacteristic::descriptors() const { return descriptors_; } void UniversalBleCharacteristic::set_descriptors(const EncodableList& value_arg) { descriptors_ = value_arg; } EncodableList UniversalBleCharacteristic::ToEncodableList() const { EncodableList list; list.reserve(3); list.push_back(EncodableValue(uuid_)); list.push_back(EncodableValue(properties_)); list.push_back(EncodableValue(descriptors_)); return list; } UniversalBleCharacteristic UniversalBleCharacteristic::FromEncodableList(const EncodableList& list) { UniversalBleCharacteristic decoded( std::get(list[0]), std::get(list[1]), std::get(list[2])); return decoded; } // UniversalBleDescriptor UniversalBleDescriptor::UniversalBleDescriptor(const std::string& uuid) : uuid_(uuid) {} const std::string& UniversalBleDescriptor::uuid() const { return uuid_; } void UniversalBleDescriptor::set_uuid(std::string_view value_arg) { uuid_ = value_arg; } EncodableList UniversalBleDescriptor::ToEncodableList() const { EncodableList list; list.reserve(1); list.push_back(EncodableValue(uuid_)); return list; } UniversalBleDescriptor UniversalBleDescriptor::FromEncodableList(const EncodableList& list) { UniversalBleDescriptor decoded( std::get(list[0])); return decoded; } // AndroidOptions AndroidOptions::AndroidOptions() {} AndroidOptions::AndroidOptions( const bool* request_location_permission, const AndroidScanMode* scan_mode, const int64_t* report_delay_millis) : request_location_permission_(request_location_permission ? std::optional(*request_location_permission) : std::nullopt), scan_mode_(scan_mode ? std::optional(*scan_mode) : std::nullopt), report_delay_millis_(report_delay_millis ? std::optional(*report_delay_millis) : std::nullopt) {} const bool* AndroidOptions::request_location_permission() const { return request_location_permission_ ? &(*request_location_permission_) : nullptr; } void AndroidOptions::set_request_location_permission(const bool* value_arg) { request_location_permission_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void AndroidOptions::set_request_location_permission(bool value_arg) { request_location_permission_ = value_arg; } const AndroidScanMode* AndroidOptions::scan_mode() const { return scan_mode_ ? &(*scan_mode_) : nullptr; } void AndroidOptions::set_scan_mode(const AndroidScanMode* value_arg) { scan_mode_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void AndroidOptions::set_scan_mode(const AndroidScanMode& value_arg) { scan_mode_ = value_arg; } const int64_t* AndroidOptions::report_delay_millis() const { return report_delay_millis_ ? &(*report_delay_millis_) : nullptr; } void AndroidOptions::set_report_delay_millis(const int64_t* value_arg) { report_delay_millis_ = value_arg ? std::optional(*value_arg) : std::nullopt; } void AndroidOptions::set_report_delay_millis(int64_t value_arg) { report_delay_millis_ = value_arg; } EncodableList AndroidOptions::ToEncodableList() const { EncodableList list; list.reserve(3); list.push_back(request_location_permission_ ? EncodableValue(*request_location_permission_) : EncodableValue()); list.push_back(scan_mode_ ? CustomEncodableValue(*scan_mode_) : EncodableValue()); list.push_back(report_delay_millis_ ? EncodableValue(*report_delay_millis_) : EncodableValue()); return list; } AndroidOptions AndroidOptions::FromEncodableList(const EncodableList& list) { AndroidOptions decoded; auto& encodable_request_location_permission = list[0]; if (!encodable_request_location_permission.IsNull()) { decoded.set_request_location_permission(std::get(encodable_request_location_permission)); } auto& encodable_scan_mode = list[1]; if (!encodable_scan_mode.IsNull()) { decoded.set_scan_mode(std::any_cast(std::get(encodable_scan_mode))); } auto& encodable_report_delay_millis = list[2]; if (!encodable_report_delay_millis.IsNull()) { decoded.set_report_delay_millis(std::get(encodable_report_delay_millis)); } return decoded; } // UniversalScanConfig UniversalScanConfig::UniversalScanConfig() {} UniversalScanConfig::UniversalScanConfig(const AndroidOptions* android) : android_(android ? std::make_unique(*android) : nullptr) {} UniversalScanConfig::UniversalScanConfig(const UniversalScanConfig& other) : android_(other.android_ ? std::make_unique(*other.android_) : nullptr) {} UniversalScanConfig& UniversalScanConfig::operator=(const UniversalScanConfig& other) { android_ = other.android_ ? std::make_unique(*other.android_) : nullptr; return *this; } const AndroidOptions* UniversalScanConfig::android() const { return android_.get(); } void UniversalScanConfig::set_android(const AndroidOptions* value_arg) { android_ = value_arg ? std::make_unique(*value_arg) : nullptr; } void UniversalScanConfig::set_android(const AndroidOptions& value_arg) { android_ = std::make_unique(value_arg); } EncodableList UniversalScanConfig::ToEncodableList() const { EncodableList list; list.reserve(1); list.push_back(android_ ? CustomEncodableValue(*android_) : EncodableValue()); return list; } UniversalScanConfig UniversalScanConfig::FromEncodableList(const EncodableList& list) { UniversalScanConfig decoded; auto& encodable_android = list[0]; if (!encodable_android.IsNull()) { decoded.set_android(std::any_cast(std::get(encodable_android))); } return decoded; } // UniversalScanFilter UniversalScanFilter::UniversalScanFilter( const EncodableList& with_services, const EncodableList& with_name_prefix, const EncodableList& with_manufacturer_data) : with_services_(with_services), with_name_prefix_(with_name_prefix), with_manufacturer_data_(with_manufacturer_data) {} const EncodableList& UniversalScanFilter::with_services() const { return with_services_; } void UniversalScanFilter::set_with_services(const EncodableList& value_arg) { with_services_ = value_arg; } const EncodableList& UniversalScanFilter::with_name_prefix() const { return with_name_prefix_; } void UniversalScanFilter::set_with_name_prefix(const EncodableList& value_arg) { with_name_prefix_ = value_arg; } const EncodableList& UniversalScanFilter::with_manufacturer_data() const { return with_manufacturer_data_; } void UniversalScanFilter::set_with_manufacturer_data(const EncodableList& value_arg) { with_manufacturer_data_ = value_arg; } EncodableList UniversalScanFilter::ToEncodableList() const { EncodableList list; list.reserve(3); list.push_back(EncodableValue(with_services_)); list.push_back(EncodableValue(with_name_prefix_)); list.push_back(EncodableValue(with_manufacturer_data_)); return list; } UniversalScanFilter UniversalScanFilter::FromEncodableList(const EncodableList& list) { UniversalScanFilter decoded( std::get(list[0]), std::get(list[1]), std::get(list[2])); return decoded; } // UniversalManufacturerDataFilter UniversalManufacturerDataFilter::UniversalManufacturerDataFilter(int64_t company_identifier) : company_identifier_(company_identifier) {} UniversalManufacturerDataFilter::UniversalManufacturerDataFilter( int64_t company_identifier, const std::vector* data, const std::vector* mask) : company_identifier_(company_identifier), data_(data ? std::optional>(*data) : std::nullopt), mask_(mask ? std::optional>(*mask) : std::nullopt) {} int64_t UniversalManufacturerDataFilter::company_identifier() const { return company_identifier_; } void UniversalManufacturerDataFilter::set_company_identifier(int64_t value_arg) { company_identifier_ = value_arg; } const std::vector* UniversalManufacturerDataFilter::data() const { return data_ ? &(*data_) : nullptr; } void UniversalManufacturerDataFilter::set_data(const std::vector* value_arg) { data_ = value_arg ? std::optional>(*value_arg) : std::nullopt; } void UniversalManufacturerDataFilter::set_data(const std::vector& value_arg) { data_ = value_arg; } const std::vector* UniversalManufacturerDataFilter::mask() const { return mask_ ? &(*mask_) : nullptr; } void UniversalManufacturerDataFilter::set_mask(const std::vector* value_arg) { mask_ = value_arg ? std::optional>(*value_arg) : std::nullopt; } void UniversalManufacturerDataFilter::set_mask(const std::vector& value_arg) { mask_ = value_arg; } EncodableList UniversalManufacturerDataFilter::ToEncodableList() const { EncodableList list; list.reserve(3); list.push_back(EncodableValue(company_identifier_)); list.push_back(data_ ? EncodableValue(*data_) : EncodableValue()); list.push_back(mask_ ? EncodableValue(*mask_) : EncodableValue()); return list; } UniversalManufacturerDataFilter UniversalManufacturerDataFilter::FromEncodableList(const EncodableList& list) { UniversalManufacturerDataFilter decoded( std::get(list[0])); auto& encodable_data = list[1]; if (!encodable_data.IsNull()) { decoded.set_data(std::get>(encodable_data)); } auto& encodable_mask = list[2]; if (!encodable_mask.IsNull()) { decoded.set_mask(std::get>(encodable_mask)); } return decoded; } // UniversalManufacturerData UniversalManufacturerData::UniversalManufacturerData( int64_t company_identifier, const std::vector& data) : company_identifier_(company_identifier), data_(data) {} int64_t UniversalManufacturerData::company_identifier() const { return company_identifier_; } void UniversalManufacturerData::set_company_identifier(int64_t value_arg) { company_identifier_ = value_arg; } const std::vector& UniversalManufacturerData::data() const { return data_; } void UniversalManufacturerData::set_data(const std::vector& value_arg) { data_ = value_arg; } EncodableList UniversalManufacturerData::ToEncodableList() const { EncodableList list; list.reserve(2); list.push_back(EncodableValue(company_identifier_)); list.push_back(EncodableValue(data_)); return list; } UniversalManufacturerData UniversalManufacturerData::FromEncodableList(const EncodableList& list) { UniversalManufacturerData decoded( std::get(list[0]), std::get>(list[1])); return decoded; } PigeonInternalCodecSerializer::PigeonInternalCodecSerializer() {} EncodableValue PigeonInternalCodecSerializer::ReadValueOfType( uint8_t type, flutter::ByteStreamReader* stream) const { switch (type) { case 129: { const auto& encodable_enum_arg = ReadValue(stream); const int64_t enum_arg_value = encodable_enum_arg.IsNull() ? 0 : encodable_enum_arg.LongValue(); return encodable_enum_arg.IsNull() ? EncodableValue() : CustomEncodableValue(static_cast(enum_arg_value)); } case 130: { const auto& encodable_enum_arg = ReadValue(stream); const int64_t enum_arg_value = encodable_enum_arg.IsNull() ? 0 : encodable_enum_arg.LongValue(); return encodable_enum_arg.IsNull() ? EncodableValue() : CustomEncodableValue(static_cast(enum_arg_value)); } case 131: { const auto& encodable_enum_arg = ReadValue(stream); const int64_t enum_arg_value = encodable_enum_arg.IsNull() ? 0 : encodable_enum_arg.LongValue(); return encodable_enum_arg.IsNull() ? EncodableValue() : CustomEncodableValue(static_cast(enum_arg_value)); } case 132: { return CustomEncodableValue(UniversalBleScanResult::FromEncodableList(std::get(ReadValue(stream)))); } case 133: { return CustomEncodableValue(UniversalBleService::FromEncodableList(std::get(ReadValue(stream)))); } case 134: { return CustomEncodableValue(UniversalBleCharacteristic::FromEncodableList(std::get(ReadValue(stream)))); } case 135: { return CustomEncodableValue(UniversalBleDescriptor::FromEncodableList(std::get(ReadValue(stream)))); } case 136: { return CustomEncodableValue(AndroidOptions::FromEncodableList(std::get(ReadValue(stream)))); } case 137: { return CustomEncodableValue(UniversalScanConfig::FromEncodableList(std::get(ReadValue(stream)))); } case 138: { return CustomEncodableValue(UniversalScanFilter::FromEncodableList(std::get(ReadValue(stream)))); } case 139: { return CustomEncodableValue(UniversalManufacturerDataFilter::FromEncodableList(std::get(ReadValue(stream)))); } case 140: { return CustomEncodableValue(UniversalManufacturerData::FromEncodableList(std::get(ReadValue(stream)))); } default: return flutter::StandardCodecSerializer::ReadValueOfType(type, stream); } } void PigeonInternalCodecSerializer::WriteValue( const EncodableValue& value, flutter::ByteStreamWriter* stream) const { if (const CustomEncodableValue* custom_value = std::get_if(&value)) { if (custom_value->type() == typeid(UniversalBleLogLevel)) { stream->WriteByte(129); WriteValue(EncodableValue(static_cast(std::any_cast(*custom_value))), stream); return; } if (custom_value->type() == typeid(AndroidScanMode)) { stream->WriteByte(130); WriteValue(EncodableValue(static_cast(std::any_cast(*custom_value))), stream); return; } if (custom_value->type() == typeid(UniversalBleErrorCode)) { stream->WriteByte(131); WriteValue(EncodableValue(static_cast(std::any_cast(*custom_value))), stream); return; } if (custom_value->type() == typeid(UniversalBleScanResult)) { stream->WriteByte(132); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalBleService)) { stream->WriteByte(133); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalBleCharacteristic)) { stream->WriteByte(134); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalBleDescriptor)) { stream->WriteByte(135); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(AndroidOptions)) { stream->WriteByte(136); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalScanConfig)) { stream->WriteByte(137); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalScanFilter)) { stream->WriteByte(138); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalManufacturerDataFilter)) { stream->WriteByte(139); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } if (custom_value->type() == typeid(UniversalManufacturerData)) { stream->WriteByte(140); WriteValue(EncodableValue(std::any_cast(*custom_value).ToEncodableList()), stream); return; } } flutter::StandardCodecSerializer::WriteValue(value, stream); } /// The codec used by UniversalBlePlatformChannel. const flutter::StandardMessageCodec& UniversalBlePlatformChannel::GetCodec() { return flutter::StandardMessageCodec::GetInstance(&PigeonInternalCodecSerializer::GetInstance()); } // Sets up an instance of `UniversalBlePlatformChannel` to handle messages through the `binary_messenger`. void UniversalBlePlatformChannel::SetUp( flutter::BinaryMessenger* binary_messenger, UniversalBlePlatformChannel* api) { UniversalBlePlatformChannel::SetUp(binary_messenger, api, ""); } void UniversalBlePlatformChannel::SetUp( flutter::BinaryMessenger* binary_messenger, UniversalBlePlatformChannel* api, const std::string& message_channel_suffix) { const std::string prepended_suffix = message_channel_suffix.length() > 0 ? std::string(".") + message_channel_suffix : ""; { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getBluetoothAvailabilityState" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { api->GetBluetoothAvailabilityState([reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.hasPermissions" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_with_android_fine_location_arg = args.at(0); if (encodable_with_android_fine_location_arg.IsNull()) { reply(WrapError("with_android_fine_location_arg unexpectedly null.")); return; } const auto& with_android_fine_location_arg = std::get(encodable_with_android_fine_location_arg); ErrorOr output = api->HasPermissions(with_android_fine_location_arg); if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.requestPermissions" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_with_android_fine_location_arg = args.at(0); if (encodable_with_android_fine_location_arg.IsNull()) { reply(WrapError("with_android_fine_location_arg unexpectedly null.")); return; } const auto& with_android_fine_location_arg = std::get(encodable_with_android_fine_location_arg); api->RequestPermissions(with_android_fine_location_arg, [reply](std::optional&& output) { if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.enableBluetooth" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { api->EnableBluetooth([reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.disableBluetooth" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { api->DisableBluetooth([reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.startScan" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_filter_arg = args.at(0); const auto* filter_arg = encodable_filter_arg.IsNull() ? nullptr : &(std::any_cast(std::get(encodable_filter_arg))); const auto& encodable_config_arg = args.at(1); const auto* config_arg = encodable_config_arg.IsNull() ? nullptr : &(std::any_cast(std::get(encodable_config_arg))); std::optional output = api->StartScan(filter_arg, config_arg); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.stopScan" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { std::optional output = api->StopScan(); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isScanning" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { ErrorOr output = api->IsScanning(); if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.connect" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_auto_connect_arg = args.at(1); const auto* auto_connect_arg = std::get_if(&encodable_auto_connect_arg); std::optional output = api->Connect(device_id_arg, auto_connect_arg); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.disconnect" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); std::optional output = api->Disconnect(device_id_arg); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.setNotifiable" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_service_arg = args.at(1); if (encodable_service_arg.IsNull()) { reply(WrapError("service_arg unexpectedly null.")); return; } const auto& service_arg = std::get(encodable_service_arg); const auto& encodable_characteristic_arg = args.at(2); if (encodable_characteristic_arg.IsNull()) { reply(WrapError("characteristic_arg unexpectedly null.")); return; } const auto& characteristic_arg = std::get(encodable_characteristic_arg); const auto& encodable_ble_input_property_arg = args.at(3); if (encodable_ble_input_property_arg.IsNull()) { reply(WrapError("ble_input_property_arg unexpectedly null.")); return; } const int64_t ble_input_property_arg = encodable_ble_input_property_arg.LongValue(); api->SetNotifiable(device_id_arg, service_arg, characteristic_arg, ble_input_property_arg, [reply](std::optional&& output) { if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.discoverServices" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_with_descriptors_arg = args.at(1); if (encodable_with_descriptors_arg.IsNull()) { reply(WrapError("with_descriptors_arg unexpectedly null.")); return; } const auto& with_descriptors_arg = std::get(encodable_with_descriptors_arg); api->DiscoverServices(device_id_arg, with_descriptors_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.readValue" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_service_arg = args.at(1); if (encodable_service_arg.IsNull()) { reply(WrapError("service_arg unexpectedly null.")); return; } const auto& service_arg = std::get(encodable_service_arg); const auto& encodable_characteristic_arg = args.at(2); if (encodable_characteristic_arg.IsNull()) { reply(WrapError("characteristic_arg unexpectedly null.")); return; } const auto& characteristic_arg = std::get(encodable_characteristic_arg); api->ReadValue(device_id_arg, service_arg, characteristic_arg, [reply](ErrorOr>&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.requestMtu" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_expected_mtu_arg = args.at(1); if (encodable_expected_mtu_arg.IsNull()) { reply(WrapError("expected_mtu_arg unexpectedly null.")); return; } const int64_t expected_mtu_arg = encodable_expected_mtu_arg.LongValue(); api->RequestMtu(device_id_arg, expected_mtu_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.writeValue" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); const auto& encodable_service_arg = args.at(1); if (encodable_service_arg.IsNull()) { reply(WrapError("service_arg unexpectedly null.")); return; } const auto& service_arg = std::get(encodable_service_arg); const auto& encodable_characteristic_arg = args.at(2); if (encodable_characteristic_arg.IsNull()) { reply(WrapError("characteristic_arg unexpectedly null.")); return; } const auto& characteristic_arg = std::get(encodable_characteristic_arg); const auto& encodable_value_arg = args.at(3); if (encodable_value_arg.IsNull()) { reply(WrapError("value_arg unexpectedly null.")); return; } const auto& value_arg = std::get>(encodable_value_arg); const auto& encodable_ble_output_property_arg = args.at(4); if (encodable_ble_output_property_arg.IsNull()) { reply(WrapError("ble_output_property_arg unexpectedly null.")); return; } const int64_t ble_output_property_arg = encodable_ble_output_property_arg.LongValue(); api->WriteValue(device_id_arg, service_arg, characteristic_arg, value_arg, ble_output_property_arg, [reply](std::optional&& output) { if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.isPaired" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); api->IsPaired(device_id_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.pair" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); api->Pair(device_id_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.unPair" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); std::optional output = api->UnPair(device_id_arg); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getSystemDevices" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_with_services_arg = args.at(0); if (encodable_with_services_arg.IsNull()) { reply(WrapError("with_services_arg unexpectedly null.")); return; } const auto& with_services_arg = std::get(encodable_with_services_arg); api->GetSystemDevices(with_services_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.getConnectionState" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); ErrorOr output = api->GetConnectionState(device_id_arg); if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.readRssi" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_device_id_arg = args.at(0); if (encodable_device_id_arg.IsNull()) { reply(WrapError("device_id_arg unexpectedly null.")); return; } const auto& device_id_arg = std::get(encodable_device_id_arg); api->ReadRssi(device_id_arg, [reply](ErrorOr&& output) { if (output.has_error()) { reply(WrapError(output.error())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue(std::move(output).TakeValue())); reply(EncodableValue(std::move(wrapped))); }); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } { BasicMessageChannel<> channel(binary_messenger, "dev.flutter.pigeon.universal_ble.UniversalBlePlatformChannel.setLogLevel" + prepended_suffix, &GetCodec()); if (api != nullptr) { channel.SetMessageHandler([api](const EncodableValue& message, const flutter::MessageReply& reply) { try { const auto& args = std::get(message); const auto& encodable_log_level_arg = args.at(0); if (encodable_log_level_arg.IsNull()) { reply(WrapError("log_level_arg unexpectedly null.")); return; } const auto& log_level_arg = std::any_cast(std::get(encodable_log_level_arg)); std::optional output = api->SetLogLevel(log_level_arg); if (output.has_value()) { reply(WrapError(output.value())); return; } EncodableList wrapped; wrapped.push_back(EncodableValue()); reply(EncodableValue(std::move(wrapped))); } catch (const std::exception& exception) { reply(WrapError(exception.what())); } }); } else { channel.SetMessageHandler(nullptr); } } } EncodableValue UniversalBlePlatformChannel::WrapError(std::string_view error_message) { return EncodableValue(EncodableList{ EncodableValue(std::string(error_message)), EncodableValue("Error"), EncodableValue() }); } EncodableValue UniversalBlePlatformChannel::WrapError(const FlutterError& error) { return EncodableValue(EncodableList{ EncodableValue(error.code()), EncodableValue(error.message()), error.details() }); } // Generated class from Pigeon that represents Flutter messages that can be called from C++. UniversalBleCallbackChannel::UniversalBleCallbackChannel(flutter::BinaryMessenger* binary_messenger) : binary_messenger_(binary_messenger), message_channel_suffix_("") {} UniversalBleCallbackChannel::UniversalBleCallbackChannel( flutter::BinaryMessenger* binary_messenger, const std::string& message_channel_suffix) : binary_messenger_(binary_messenger), message_channel_suffix_(message_channel_suffix.length() > 0 ? std::string(".") + message_channel_suffix : "") {} const flutter::StandardMessageCodec& UniversalBleCallbackChannel::GetCodec() { return flutter::StandardMessageCodec::GetInstance(&PigeonInternalCodecSerializer::GetInstance()); } void UniversalBleCallbackChannel::OnAvailabilityChanged( int64_t state_arg, std::function&& on_success, std::function&& on_error) { const std::string channel_name = "dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onAvailabilityChanged" + message_channel_suffix_; BasicMessageChannel<> channel(binary_messenger_, channel_name, &GetCodec()); EncodableValue encoded_api_arguments = EncodableValue(EncodableList{ EncodableValue(state_arg), }); channel.Send(encoded_api_arguments, [channel_name, on_success = std::move(on_success), on_error = std::move(on_error)](const uint8_t* reply, size_t reply_size) { std::unique_ptr response = GetCodec().DecodeMessage(reply, reply_size); const auto& encodable_return_value = *response; const auto* list_return_value = std::get_if(&encodable_return_value); if (list_return_value) { if (list_return_value->size() > 1) { on_error(FlutterError(std::get(list_return_value->at(0)), std::get(list_return_value->at(1)), list_return_value->at(2))); } else { on_success(); } } else { on_error(CreateConnectionError(channel_name)); } }); } void UniversalBleCallbackChannel::OnPairStateChange( const std::string& device_id_arg, bool is_paired_arg, const std::string* error_arg, std::function&& on_success, std::function&& on_error) { const std::string channel_name = "dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onPairStateChange" + message_channel_suffix_; BasicMessageChannel<> channel(binary_messenger_, channel_name, &GetCodec()); EncodableValue encoded_api_arguments = EncodableValue(EncodableList{ EncodableValue(device_id_arg), EncodableValue(is_paired_arg), error_arg ? EncodableValue(*error_arg) : EncodableValue(), }); channel.Send(encoded_api_arguments, [channel_name, on_success = std::move(on_success), on_error = std::move(on_error)](const uint8_t* reply, size_t reply_size) { std::unique_ptr response = GetCodec().DecodeMessage(reply, reply_size); const auto& encodable_return_value = *response; const auto* list_return_value = std::get_if(&encodable_return_value); if (list_return_value) { if (list_return_value->size() > 1) { on_error(FlutterError(std::get(list_return_value->at(0)), std::get(list_return_value->at(1)), list_return_value->at(2))); } else { on_success(); } } else { on_error(CreateConnectionError(channel_name)); } }); } void UniversalBleCallbackChannel::OnScanResult( const UniversalBleScanResult& result_arg, std::function&& on_success, std::function&& on_error) { const std::string channel_name = "dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onScanResult" + message_channel_suffix_; BasicMessageChannel<> channel(binary_messenger_, channel_name, &GetCodec()); EncodableValue encoded_api_arguments = EncodableValue(EncodableList{ CustomEncodableValue(result_arg), }); channel.Send(encoded_api_arguments, [channel_name, on_success = std::move(on_success), on_error = std::move(on_error)](const uint8_t* reply, size_t reply_size) { std::unique_ptr response = GetCodec().DecodeMessage(reply, reply_size); const auto& encodable_return_value = *response; const auto* list_return_value = std::get_if(&encodable_return_value); if (list_return_value) { if (list_return_value->size() > 1) { on_error(FlutterError(std::get(list_return_value->at(0)), std::get(list_return_value->at(1)), list_return_value->at(2))); } else { on_success(); } } else { on_error(CreateConnectionError(channel_name)); } }); } void UniversalBleCallbackChannel::OnValueChanged( const std::string& device_id_arg, const std::string& characteristic_id_arg, const std::vector& value_arg, const int64_t* timestamp_arg, std::function&& on_success, std::function&& on_error) { const std::string channel_name = "dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onValueChanged" + message_channel_suffix_; BasicMessageChannel<> channel(binary_messenger_, channel_name, &GetCodec()); EncodableValue encoded_api_arguments = EncodableValue(EncodableList{ EncodableValue(device_id_arg), EncodableValue(characteristic_id_arg), EncodableValue(value_arg), timestamp_arg ? EncodableValue(*timestamp_arg) : EncodableValue(), }); channel.Send(encoded_api_arguments, [channel_name, on_success = std::move(on_success), on_error = std::move(on_error)](const uint8_t* reply, size_t reply_size) { std::unique_ptr response = GetCodec().DecodeMessage(reply, reply_size); const auto& encodable_return_value = *response; const auto* list_return_value = std::get_if(&encodable_return_value); if (list_return_value) { if (list_return_value->size() > 1) { on_error(FlutterError(std::get(list_return_value->at(0)), std::get(list_return_value->at(1)), list_return_value->at(2))); } else { on_success(); } } else { on_error(CreateConnectionError(channel_name)); } }); } void UniversalBleCallbackChannel::OnConnectionChanged( const std::string& device_id_arg, bool connected_arg, const std::string* error_arg, std::function&& on_success, std::function&& on_error) { const std::string channel_name = "dev.flutter.pigeon.universal_ble.UniversalBleCallbackChannel.onConnectionChanged" + message_channel_suffix_; BasicMessageChannel<> channel(binary_messenger_, channel_name, &GetCodec()); EncodableValue encoded_api_arguments = EncodableValue(EncodableList{ EncodableValue(device_id_arg), EncodableValue(connected_arg), error_arg ? EncodableValue(*error_arg) : EncodableValue(), }); channel.Send(encoded_api_arguments, [channel_name, on_success = std::move(on_success), on_error = std::move(on_error)](const uint8_t* reply, size_t reply_size) { std::unique_ptr response = GetCodec().DecodeMessage(reply, reply_size); const auto& encodable_return_value = *response; const auto* list_return_value = std::get_if(&encodable_return_value); if (list_return_value) { if (list_return_value->size() > 1) { on_error(FlutterError(std::get(list_return_value->at(0)), std::get(list_return_value->at(1)), list_return_value->at(2))); } else { on_success(); } } else { on_error(CreateConnectionError(channel_name)); } }); } } // namespace universal_ble