diff options
author | bland <bland@FreeBSD.org> | 2005-04-27 12:00:26 +0800 |
---|---|---|
committer | bland <bland@FreeBSD.org> | 2005-04-27 12:00:26 +0800 |
commit | 951ca65b5f7b279998eba779cac5425bd9f00f38 (patch) | |
tree | 6b24e4f5336f17786b6140a855acba04157b8be9 /palm/gnome-pilot | |
parent | f1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc (diff) | |
download | freebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.tar.gz freebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.tar.zst freebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.zip |
Add USB devices support for 5.x.
Submitted by: Corey Smith <corsmith@qmail.com>
Diffstat (limited to 'palm/gnome-pilot')
-rw-r--r-- | palm/gnome-pilot/Makefile | 2 | ||||
-rw-r--r-- | palm/gnome-pilot/files/patch-gpilotd__gpilotd.c | 87 |
2 files changed, 88 insertions, 1 deletions
diff --git a/palm/gnome-pilot/Makefile b/palm/gnome-pilot/Makefile index 7831945094c..3946678249d 100644 --- a/palm/gnome-pilot/Makefile +++ b/palm/gnome-pilot/Makefile @@ -7,7 +7,7 @@ PORTNAME= gnomepilot2 PORTVERSION= 2.0.13 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= palm comms gnome MASTER_SITES= ${MASTER_SITE_GNOME} MASTER_SITE_SUBDIR= sources/gnome-pilot/2.0 diff --git a/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c b/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c new file mode 100644 index 00000000000..b856f0a4af6 --- /dev/null +++ b/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c @@ -0,0 +1,87 @@ +--- gpilotd/gpilotd.c.orig Thu Sep 2 11:43:47 2004 ++++ gpilotd/gpilotd.c Sun Apr 24 15:56:14 2005 +@@ -27,6 +27,8 @@ + #include "config.h" + #endif + ++#define freebsd ++ + /* for crypt () */ + #ifdef USE_XOPEN_SOURCE + #ifndef _XOPEN_SOURCE +@@ -903,7 +905,7 @@ + } + + fclose (f); +- ++ + if (visor_exists) { + l = context->devices; + while (l) { +@@ -928,6 +930,49 @@ + } + + #endif ++#ifdef freebsd ++static gboolean ++visor_devices_timeout (gpointer data) ++{ ++ GPilotContext *context = data; ++ GPilotDevice *device; ++ GList *l; ++ int i; ++ gboolean visor_exists = FALSE, visor_net = TRUE; ++ ++ g_assert (context != NULL); ++ ++ if (context->paused) ++ return FALSE; ++ ++ l = context->devices; ++ while (l) { ++ device = l->data; ++ ++ struct stat dummy; ++ ++ /* Make sure usb device exists */ ++ if (stat(device->port, &dummy) == 0) { ++ if (device->type == PILOT_DEVICE_USB_VISOR) { ++ if (!visor_net) ++ device->type = PILOT_DEVICE_SERIAL; ++ ++ /* just try to synch. Until I can talk to ++ * the kernel guys this is the best way to ++ * go. */ ++ sync_device (device, context); ++ if (!visor_net) ++ device->type = PILOT_DEVICE_USB_VISOR; ++ } ++ } ++ l = l->next; ++ ++ } ++ ++ return TRUE; ++} ++ ++#endif + #endif + + void monitor_channel (GPilotDevice *dev,GPilotContext *context) +@@ -959,16 +1004,12 @@ + #endif /* WITH_NETWORK */ + } if (dev->type == PILOT_DEVICE_USB_VISOR) { + #ifdef WITH_USB_VISOR +-#ifdef linux + /* We want to watch the /proc/bus/usb/devices file once + * per context, and then check all devices each time it is + * woken up. */ + if (visor_timeout_id == -1) { + visor_timeout_id = g_timeout_add (2000, visor_devices_timeout, context); + } +-#else /* linux*/ +- g_assert_not_reached (); +-#endif /* linux */ + #endif /* WITH_USB_VISOR */ + dev->device_exists = FALSE; + } |