diff --git a/Cargo.toml b/Cargo.toml index ccd4a23..5774a76 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ exclude = ["/images/*"] [dependencies] hidapi-alt-for-hidapi-issue-127 = "1.2.1" crossbeam-channel = "0.4.2" +lazy_static = "1.4.0" [dev-dependencies] doc-comment = "0.3.3" diff --git a/src/joycon/manager.rs b/src/joycon/manager.rs index 98a2db6..cd76f14 100644 --- a/src/joycon/manager.rs +++ b/src/joycon/manager.rs @@ -291,3 +291,13 @@ impl JoyConManager { } } +lazy_static! { + pub static ref JOYCON_RECEIVER: crossbeam_channel::Receiver>> = { + let manager = JoyConManager::get_instance(); + let manager = match manager.lock() { + Ok(manager) => manager, + Err(e) => e.into_inner(), + }; + manager.new_devices() + }; +} diff --git a/src/joycon/mod.rs b/src/joycon/mod.rs index 79222ce..fad99eb 100644 --- a/src/joycon/mod.rs +++ b/src/joycon/mod.rs @@ -15,7 +15,7 @@ pub use driver::{ lights, device_info, }; -pub use manager::JoyConManager; +pub use manager::{JoyConManager, JOYCON_RECEIVER}; use std::sync::Arc; use std::fmt::{Debug, Formatter}; diff --git a/src/lib.rs b/src/lib.rs index 630d49b..3e8392e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -145,6 +145,8 @@ //! [Deal with LED (Player lights)]: joycon/lights/index.html //! [Vibration (Rumble)]:joycon/struct.Rumble.html extern crate hidapi_alt_for_hidapi_issue_127 as hidapi; +#[macro_use] +extern crate lazy_static; pub mod joycon;