From 7ef1d3ac012443faf2b369aabc3dc209cf5042ea Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 7 Jul 2004 16:41:31 +0000 Subject: Add support for virtual cable unplug --- hidd/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hidd/main.c b/hidd/main.c index c265848b..b05e15cd 100644 --- a/hidd/main.c +++ b/hidd/main.c @@ -409,6 +409,7 @@ static void usage(void) "\t--server Start HID server\n" "\t--search Search for HID devices\n" "\t--connect Connect remote HID device\n" + "\t--unplug Unplug the HID connection\n" "\t--kill Terminate HID connection\n" "\t--killall Terminate all connections\n" "\t--show List current HID connections\n" @@ -432,6 +433,7 @@ static struct option main_options[] = { { "release", 1, 0, 'k' }, { "kill", 1, 0, 'k' }, { "killall", 0, 0, 'K' }, + { "unplug", 1, 0, 'u' }, { 0, 0, 0, 0 } }; @@ -439,6 +441,7 @@ int main(int argc, char *argv[]) { struct sigaction sa; bdaddr_t bdaddr, dev; + uint32_t flags = 0; char addr[18]; int log_option = LOG_NDELAY | LOG_PID; int opt, fd, ctl, csk, isk; @@ -446,7 +449,7 @@ int main(int argc, char *argv[]) bacpy(&bdaddr, BDADDR_ANY); - while ((opt = getopt_long(argc, argv, "+i:nt:ldsc:k:Kh", main_options, NULL)) != -1) { + while ((opt = getopt_long(argc, argv, "+i:nt:ldsc:k:Ku:h", main_options, NULL)) != -1) { switch(opt) { case 'i': if (!strncasecmp(optarg, "hci", 3)) @@ -481,6 +484,11 @@ int main(int argc, char *argv[]) bacpy(&dev, BDADDR_ALL); mode = 4; break; + case 'u': + str2ba(optarg, &dev); + flags = (1 << HIDP_VIRTUAL_CABLE_UNPLUG); + mode = 4; + break; case 'h': usage(); exit(0); @@ -526,7 +534,7 @@ int main(int argc, char *argv[]) exit(0); case 4: - do_kill(ctl, &dev, 0); + do_kill(ctl, &dev, flags); close(ctl); exit(0); -- cgit