Something went wrong. Try again.
Buttplug sex toy control library
Something went wrong. Try again.
16 kB · 584 lines
Rust
at dev
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585use std::{collections::HashMap, sync::Arc};
use crate::device::protocol::ProtocolIdentifierFactory;
// Utility modspub mod fleshlight_launch_helper;
// Since users can pick and choose protocols, we need all of these to be public.pub mod activejoy;pub mod adrienlastic;pub mod amorelie_joy;pub mod aneros;pub mod ankni;pub mod bananasome;pub mod cachito;pub mod cowgirl;pub mod cowgirl_cone;pub mod cupido;pub mod deepsire;pub mod feelingso;pub mod fleshy_thrust;pub mod foreo;pub mod fox;pub mod fredorch;pub mod fredorch_rotary;pub mod galaku;pub mod galaku_pump;pub mod hgod;pub mod hismith;pub mod hismith_mini;pub mod htk_bm;pub mod itoys;pub mod jejoue;pub mod joyhub;pub mod kgoal_boost;pub mod kiiroo_powershot;pub mod kiiroo_prowand;pub mod kiiroo_spot;pub mod kiiroo_v2;pub mod kiiroo_v21;pub mod kiiroo_v21_initialized;pub mod kiiroo_v2_vibrator;pub mod kiiroo_v3;pub mod kizuna;pub mod lelo_harmony;pub mod lelof1s;pub mod lelof1sv2;pub mod leten;pub mod libo_elle;pub mod libo_shark;pub mod libo_vibes;pub mod lioness;pub mod loob;pub mod lovedistance;pub mod lovehoney_desire;pub mod lovense;// pub mod lovense_connect_service;pub mod lovenuts;pub mod luvmazer;pub mod magic_motion_v1;pub mod magic_motion_v2;pub mod magic_motion_v3;pub mod magic_motion_v4;pub mod mannuo;pub mod maxpro;pub mod meese;pub mod mizzzee;pub mod mizzzee_v2;pub mod mizzzee_v3;pub mod monsterpub;pub mod motorbunny;pub mod mysteryvibe;pub mod mysteryvibe_v2;pub mod nextlevelracing;pub mod nexus_revo;pub mod nintendo_joycon;pub mod nobra;pub mod omobo;pub mod patoo;pub mod picobong;pub mod pink_punch;pub mod prettylove;pub mod raw_protocol;pub mod realov;pub mod sakuraneko;pub mod satisfyer;pub mod sensee;pub mod sensee_capsule;pub mod sensee_v2;pub mod serveu;pub mod sexverse_lg389;pub mod sexverse_v1;pub mod sexverse_v2;pub mod sexverse_v3;pub mod sexverse_v4;pub mod sexverse_v5;pub mod svakom;pub mod synchro;pub mod tcode_v03;pub mod thehandy;pub mod tryfun;pub mod tryfun_blackhole;pub mod tryfun_meta2;pub mod vibcrafter;pub mod vibratissimo;pub mod vorze_sa;pub mod wetoy;pub mod wevibe;pub mod wevibe8bit;pub mod wevibe_chorus;pub mod xibao;pub mod xinput;pub mod xiuxiuda;pub mod xuanhuan;pub mod youcups;pub mod youou;pub mod zalo;
pub fn get_default_protocol_map() -> HashMap<String, Arc<dyn ProtocolIdentifierFactory>> { let mut map = HashMap::new(); fn add_to_protocol_map<T>( map: &mut HashMap<String, Arc<dyn ProtocolIdentifierFactory>>, factory: T, ) where T: ProtocolIdentifierFactory + 'static, { let factory = Arc::new(factory); map.insert(factory.identifier().to_owned(), factory); }
add_to_protocol_map( &mut map, activejoy::setup::ActiveJoyIdentifierFactory::default(), ); add_to_protocol_map( &mut map, adrienlastic::setup::AdrienLasticIdentifierFactory::default(), ); add_to_protocol_map( &mut map, amorelie_joy::setup::AmorelieJoyIdentifierFactory::default(), ); add_to_protocol_map(&mut map, aneros::setup::AnerosIdentifierFactory::default()); add_to_protocol_map(&mut map, ankni::setup::AnkniIdentifierFactory::default()); add_to_protocol_map( &mut map, bananasome::setup::BananasomeIdentifierFactory::default(), ); add_to_protocol_map( &mut map, cachito::setup::CachitoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, cowgirl::setup::CowgirlIdentifierFactory::default(), ); add_to_protocol_map( &mut map, cowgirl_cone::setup::CowgirlConeIdentifierFactory::default(), ); add_to_protocol_map(&mut map, cupido::setup::CupidoIdentifierFactory::default()); add_to_protocol_map( &mut map, deepsire::setup::DeepSireIdentifierFactory::default(), ); add_to_protocol_map( &mut map, hismith::setup::HismithIdentifierFactory::default(), ); add_to_protocol_map( &mut map, hismith_mini::setup::HismithMiniIdentifierFactory::default(), ); add_to_protocol_map(&mut map, htk_bm::setup::HtkBmIdentifierFactory::default()); add_to_protocol_map( &mut map, thehandy::setup::TheHandyIdentifierFactory::default(), );
add_to_protocol_map( &mut map, feelingso::setup::FeelingSoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, fleshy_thrust::setup::FleshyThrustIdentifierFactory::default(), ); add_to_protocol_map(&mut map, foreo::setup::ForeoIdentifierFactory::default()); add_to_protocol_map(&mut map, fox::setup::FoxIdentifierFactory::default()); add_to_protocol_map( &mut map, fredorch::setup::FredorchIdentifierFactory::default(), ); add_to_protocol_map( &mut map, fredorch_rotary::setup::FredorchRotaryIdentifierFactory::default(), );
add_to_protocol_map(&mut map, hgod::setup::HgodIdentifierFactory::default());
add_to_protocol_map( &mut map, galaku_pump::setup::GalakuPumpIdentifierFactory::default(), );
add_to_protocol_map(&mut map, galaku::setup::GalakuIdentifierFactory::default());
add_to_protocol_map(&mut map, itoys::setup::IToysIdentifierFactory::default()); add_to_protocol_map(&mut map, jejoue::setup::JeJoueIdentifierFactory::default()); add_to_protocol_map( &mut map, joyhub::joyhub::setup::JoyHubIdentifierFactory::default(), ); add_to_protocol_map( &mut map, joyhub::joyhub_v2::setup::JoyHubV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, joyhub::joyhub_v3::setup::JoyHubV3IdentifierFactory::default(), );
add_to_protocol_map( &mut map, joyhub::joyhub_v4::setup::JoyHubV4IdentifierFactory::default(), ); add_to_protocol_map( &mut map, joyhub::joyhub_v5::setup::JoyHubV5IdentifierFactory::default(), ); add_to_protocol_map( &mut map, joyhub::joyhub_v6::setup::JoyHubV6IdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_powershot::setup::KiirooPowerShotIdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_prowand::setup::KiirooProWandIdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_spot::setup::KiirooSpotIdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_v2::setup::KiirooV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_v3::setup::KiirooV3IdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_v2_vibrator::setup::KiirooV2VibratorIdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_v21::setup::KiirooV21IdentifierFactory::default(), ); add_to_protocol_map( &mut map, kiiroo_v21_initialized::setup::KiirooV21InitializedIdentifierFactory::default(), ); add_to_protocol_map(&mut map, kizuna::setup::KizunaIdentifierFactory::default()); add_to_protocol_map( &mut map, lelof1s::setup::LeloF1sIdentifierFactory::default(), ); add_to_protocol_map( &mut map, lelof1sv2::setup::LeloF1sV2IdentifierFactory::default(), ); add_to_protocol_map(&mut map, leten::setup::LetenIdentifierFactory::default()); add_to_protocol_map( &mut map, lelo_harmony::setup::LeloHarmonyIdentifierFactory::default(), ); add_to_protocol_map( &mut map, libo_elle::setup::LiboElleIdentifierFactory::default(), ); add_to_protocol_map( &mut map, libo_shark::setup::LiboSharkIdentifierFactory::default(), ); add_to_protocol_map( &mut map, libo_vibes::setup::LiboVibesIdentifierFactory::default(), ); add_to_protocol_map( &mut map, lioness::setup::LionessIdentifierFactory::default(), ); add_to_protocol_map(&mut map, loob::setup::LoobIdentifierFactory::default()); add_to_protocol_map( &mut map, lovehoney_desire::setup::LovehoneyDesireIdentifierFactory::default(), ); add_to_protocol_map( &mut map, lovedistance::setup::LoveDistanceIdentifierFactory::default(), ); add_to_protocol_map( &mut map, lovense::setup::LovenseIdentifierFactory::default(), );
// add_to_protocol_map( // &mut map, // lovense_connect_service::setup::LovenseConnectServiceIdentifierFactory::default(), // ); add_to_protocol_map( &mut map, lovenuts::setup::LoveNutsIdentifierFactory::default(), ); add_to_protocol_map( &mut map, luvmazer::setup::LuvmazerIdentifierFactory::default(), ); add_to_protocol_map( &mut map, magic_motion_v1::setup::MagicMotionV1IdentifierFactory::default(), ); add_to_protocol_map( &mut map, magic_motion_v2::setup::MagicMotionV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, magic_motion_v3::setup::MagicMotionV3IdentifierFactory::default(), ); add_to_protocol_map( &mut map, magic_motion_v4::setup::MagicMotionV4IdentifierFactory::default(), ); add_to_protocol_map(&mut map, mannuo::setup::ManNuoIdentifierFactory::default()); add_to_protocol_map(&mut map, maxpro::setup::MaxproIdentifierFactory::default()); add_to_protocol_map(&mut map, meese::setup::MeeseIdentifierFactory::default()); add_to_protocol_map( &mut map, mizzzee::setup::MizzZeeIdentifierFactory::default(), ); add_to_protocol_map( &mut map, mizzzee_v2::setup::MizzZeeV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, mizzzee_v3::setup::MizzZeeV3IdentifierFactory::default(), ); add_to_protocol_map( &mut map, monsterpub::setup::MonsterPubIdentifierFactory::default(), ); add_to_protocol_map( &mut map, motorbunny::setup::MotorbunnyIdentifierFactory::default(), ); add_to_protocol_map( &mut map, mysteryvibe::setup::MysteryVibeIdentifierFactory::default(), ); add_to_protocol_map( &mut map, mysteryvibe_v2::setup::MysteryVibeV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, nexus_revo::setup::NexusRevoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, nextlevelracing::setup::NextLevelRacingIdentifierFactory::default(), ); add_to_protocol_map( &mut map, nintendo_joycon::setup::NintendoJoyconIdentifierFactory::default(), ); add_to_protocol_map(&mut map, nobra::setup::NobraIdentifierFactory::default()); add_to_protocol_map(&mut map, omobo::setup::OmoboIdentifierFactory::default()); add_to_protocol_map(&mut map, patoo::setup::PatooIdentifierFactory::default()); add_to_protocol_map( &mut map, picobong::setup::PicobongIdentifierFactory::default(), ); add_to_protocol_map( &mut map, pink_punch::setup::PinkPunchIdentifierFactory::default(), ); add_to_protocol_map( &mut map, prettylove::setup::PrettyLoveIdentifierFactory::default(), ); add_to_protocol_map( &mut map, raw_protocol::setup::RawProtocolIdentifierFactory::default(), ); add_to_protocol_map(&mut map, realov::setup::RealovIdentifierFactory::default()); add_to_protocol_map( &mut map, sakuraneko::setup::SakuranekoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, satisfyer::setup::SatisfyerIdentifierFactory::default(), ); add_to_protocol_map(&mut map, sensee::setup::SenseeIdentifierFactory::default()); add_to_protocol_map( &mut map, sensee_capsule::setup::SenseeCapsuleIdentifierFactory::default(), ); add_to_protocol_map( &mut map, sensee_v2::setup::SenseeV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_lg389::setup::SexverseLG389IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_v1::setup::SexverseV1IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_v2::setup::SexverseV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_v3::setup::SexverseV3IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_v4::setup::SexverseV4IdentifierFactory::default(), ); add_to_protocol_map( &mut map, sexverse_v5::setup::SexverseV5IdentifierFactory::default(), ); add_to_protocol_map(&mut map, serveu::setup::ServeUIdentifierFactory::default()); add_to_protocol_map( &mut map, svakom::svakom_avaneo::setup::SvakomAvaNeoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_alex::setup::SvakomAlexIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_alex_v2::setup::SvakomAlexV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_barnard::setup::SvakomBarnardIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_barney::setup::SvakomBarneyIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_dice::setup::SvakomDiceIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_dt250a::setup::SvakomDT250AIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_iker::setup::SvakomIkerIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_jordan::setup::SvakomJordanIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_pulse::setup::SvakomPulseIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_sam::setup::SvakomSamIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_sam2::setup::SvakomSam2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_suitcase::setup::SvakomSuitcaseIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_tarax::setup::SvakomTaraXIdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v1::setup::SvakomV1IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v2::setup::SvakomV2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v3::setup::SvakomV3IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v4::setup::SvakomV4IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v5::setup::SvakomV5IdentifierFactory::default(), ); add_to_protocol_map( &mut map, svakom::svakom_v6::setup::SvakomV6IdentifierFactory::default(), ); add_to_protocol_map( &mut map, synchro::setup::SynchroIdentifierFactory::default(), ); add_to_protocol_map(&mut map, tryfun::setup::TryFunIdentifierFactory::default()); add_to_protocol_map( &mut map, tryfun_blackhole::setup::TryFunBlackHoleIdentifierFactory::default(), ); add_to_protocol_map( &mut map, tryfun_meta2::setup::TryFunMeta2IdentifierFactory::default(), ); add_to_protocol_map( &mut map, tcode_v03::setup::TCodeV03IdentifierFactory::default(), ); add_to_protocol_map( &mut map, vibcrafter::setup::VibCrafterIdentifierFactory::default(), ); add_to_protocol_map( &mut map, vibratissimo::setup::VibratissimoIdentifierFactory::default(), ); add_to_protocol_map( &mut map, vorze_sa::setup::VorzeSAIdentifierFactory::default(), ); add_to_protocol_map(&mut map, wetoy::setup::WeToyIdentifierFactory::default()); add_to_protocol_map(&mut map, wevibe::setup::WeVibeIdentifierFactory::default()); add_to_protocol_map( &mut map, wevibe8bit::setup::WeVibe8BitIdentifierFactory::default(), ); add_to_protocol_map( &mut map, wevibe_chorus::setup::WeVibeChorusIdentifierFactory::default(), ); add_to_protocol_map(&mut map, xibao::setup::XibaoIdentifierFactory::default()); add_to_protocol_map(&mut map, xinput::setup::XInputIdentifierFactory::default()); add_to_protocol_map( &mut map, xiuxiuda::setup::XiuxiudaIdentifierFactory::default(), ); add_to_protocol_map( &mut map, xuanhuan::setup::XuanhuanIdentifierFactory::default(), ); add_to_protocol_map( &mut map, youcups::setup::YoucupsIdentifierFactory::default(), ); add_to_protocol_map(&mut map, youou::setup::YououIdentifierFactory::default()); add_to_protocol_map(&mut map, zalo::setup::ZaloIdentifierFactory::default()); add_to_protocol_map( &mut map, kgoal_boost::setup::KGoalBoostIdentifierFactory::default(), ); map}