1 use btstack::suspend::{ISuspend, ISuspendCallback, SuspendType}; 2 use btstack::RPCProxy; 3 4 use crate::dbus_arg::{DBusArg, DBusArgError}; 5 6 use dbus_macros::{dbus_method, dbus_proxy_obj, generate_dbus_exporter}; 7 8 use dbus_projection::{dbus_generated, impl_dbus_arg_enum, DisconnectWatcher}; 9 10 use dbus::nonblock::SyncConnection; 11 use dbus::strings::Path; 12 13 use num_traits::cast::{FromPrimitive, ToPrimitive}; 14 15 use std::sync::Arc; 16 17 impl_dbus_arg_enum!(SuspendType); 18 19 #[allow(dead_code)] 20 struct ISuspendDBus {} 21 22 #[generate_dbus_exporter(export_suspend_dbus_obj, "org.chromium.bluetooth.Suspend")] 23 impl ISuspend for ISuspendDBus { 24 #[dbus_method("RegisterCallback")] register_callback(&mut self, callback: Box<dyn ISuspendCallback + Send>) -> bool25 fn register_callback(&mut self, callback: Box<dyn ISuspendCallback + Send>) -> bool { 26 dbus_generated!() 27 } 28 29 #[dbus_method("UnregisterCallback")] unregister_callback(&mut self, callback_id: u32) -> bool30 fn unregister_callback(&mut self, callback_id: u32) -> bool { 31 dbus_generated!() 32 } 33 34 #[dbus_method("Suspend")] suspend(&self, suspend_type: SuspendType) -> u3235 fn suspend(&self, suspend_type: SuspendType) -> u32 { 36 dbus_generated!() 37 } 38 39 #[dbus_method("Resume")] resume(&self) -> bool40 fn resume(&self) -> bool { 41 dbus_generated!() 42 } 43 } 44 45 #[allow(dead_code)] 46 struct SuspendCallbackDBus {} 47 48 #[dbus_proxy_obj(SuspendCallback, "org.chromium.bluetooth.SuspendCallback")] 49 impl ISuspendCallback for SuspendCallbackDBus { 50 #[dbus_method("OnCallbackRegistered")] on_callback_registered(&self, callback_id: u32)51 fn on_callback_registered(&self, callback_id: u32) { 52 dbus_generated!() 53 } 54 #[dbus_method("OnSuspendReady")] on_suspend_ready(&self, suspend_id: u32)55 fn on_suspend_ready(&self, suspend_id: u32) { 56 dbus_generated!() 57 } 58 #[dbus_method("OnResumed")] on_resumed(&self, suspend_id: u32)59 fn on_resumed(&self, suspend_id: u32) { 60 dbus_generated!() 61 } 62 } 63