implemented republishing of devices with a 2.5sec delay. However, the new device isn't noticed by input server, don't know why.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20891 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
3b8715d804
commit
ad6c0f399b
src/add-ons/kernel/bus_managers/ps2
@ -25,6 +25,7 @@ typedef struct
|
||||
enum
|
||||
{
|
||||
PS2_SERVICE_NOTIFY_DEVICE_ADDED = 1,
|
||||
PS2_SERVICE_NOTIFY_DEVICE_REPUBLISH,
|
||||
PS2_SERVICE_NOTIFY_DEVICE_REMOVED,
|
||||
};
|
||||
|
||||
@ -45,6 +46,23 @@ ps2_service_notify_device_added(ps2_dev *dev)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ps2_service_notify_device_republish(ps2_dev *dev)
|
||||
{
|
||||
ps2_service_cmd cmd;
|
||||
|
||||
TRACE("ps2: ps2_service_notify_device_republish %s\n", dev->name);
|
||||
|
||||
cmd.id = PS2_SERVICE_NOTIFY_DEVICE_REPUBLISH;
|
||||
cmd.dev = dev;
|
||||
|
||||
packet_buffer_write(sServiceCmdBuffer, (const uint8 *)&cmd, sizeof(cmd));
|
||||
release_sem_etc(sServiceSem, 1, B_DO_NOT_RESCHEDULE);
|
||||
|
||||
TRACE("ps2: ps2_service_notify_device_republish done\n");
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ps2_service_notify_device_removed(ps2_dev *dev)
|
||||
{
|
||||
@ -82,6 +100,13 @@ ps2_service_thread(void *arg)
|
||||
TRACE("ps2: PS2_SERVICE_NOTIFY_DEVICE_ADDED %s\n", cmd.dev->name);
|
||||
ps2_dev_publish(cmd.dev);
|
||||
break;
|
||||
|
||||
case PS2_SERVICE_NOTIFY_DEVICE_REPUBLISH:
|
||||
TRACE("ps2: PS2_SERVICE_NOTIFY_DEVICE_REPUBLISH %s\n", cmd.dev->name);
|
||||
ps2_dev_unpublish(cmd.dev);
|
||||
snooze(2500000);
|
||||
ps2_dev_publish(cmd.dev);
|
||||
break;
|
||||
|
||||
case PS2_SERVICE_NOTIFY_DEVICE_REMOVED:
|
||||
TRACE("ps2: PS2_SERVICE_NOTIFY_DEVICE_REMOVED %s\n", cmd.dev->name);
|
||||
|
@ -17,6 +17,7 @@ status_t ps2_service_init(void);
|
||||
void ps2_service_exit(void);
|
||||
|
||||
void ps2_service_notify_device_added(ps2_dev *dev);
|
||||
void ps2_service_notify_device_republish(ps2_dev *dev);
|
||||
void ps2_service_notify_device_removed(ps2_dev *dev);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user