/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #![feature(proc_macro)] extern crate ipc_channel; extern crate regex; #[macro_use] extern crate serde_derive; extern crate util; pub mod blacklist; pub mod scanfilter; use ipc_channel::ipc::IpcSender; use scanfilter::RequestDeviceoptions; #[derive(Deserialize, Serialize)] pub enum BluetoothError { Type(String), Network, NotFound, NotSupported, Security, InvalidState, } #[derive(Deserialize, Serialize)] pub struct BluetoothDeviceMsg { // Bluetooth Device properties pub id: String, pub name: Option, // Advertisiong Data properties pub appearance: Option, pub tx_power: Option, pub rssi: Option, } #[derive(Deserialize, Serialize)] pub struct BluetoothServiceMsg { pub uuid: String, pub is_primary: bool, pub instance_id: String, } #[derive(Deserialize, Serialize)] pub struct BluetoothCharacteristicMsg { // Characteristic pub uuid: String, pub instance_id: String, // Characteristic properties pub broadcast: bool, pub read: bool, pub write_without_response: bool, pub write: bool, pub notify: bool, pub indicate: bool, pub authenticated_signed_writes: bool, pub reliable_write: bool, pub writable_auxiliaries: bool, } #[derive(Deserialize, Serialize)] pub struct BluetoothDescriptorMsg { pub uuid: String, pub instance_id: String, } pub type BluetoothServicesMsg = Vec; pub type BluetoothCharacteristicsMsg = Vec; pub type BluetoothDescriptorsMsg = Vec; pub type BluetoothResult = Result; #[derive(Deserialize, Serialize)] pub enum BluetoothMethodMsg { RequestDevice(RequestDeviceoptions, IpcSender>), GATTServerConnect(String, IpcSender>), GATTServerDisconnect(String, IpcSender>), GetPrimaryService(String, String, IpcSender>), GetPrimaryServices(String, Option, IpcSender>), GetIncludedService(String, String, IpcSender>), GetIncludedServices(String, Option, IpcSender>), GetCharacteristic(String, String, IpcSender>), GetCharacteristics(String, Option, IpcSender>), GetDescriptor(String, String, IpcSender>), GetDescriptors(String, Option, IpcSender>), ReadValue(String, IpcSender>>), WriteValue(String, Vec, IpcSender>), Test(String, IpcSender>), Exit, }