History log of /haiku/src/servers/input/AddOnManager.cpp
Revision Date Author Comments
# 12340679 03-Mar-2021 CodeforEvolution <secundaja@gmail.com>

input_server: Properly implement watch_input_devices() & add documentation

Allow for multiple programs to watch for changes in the state
of input devices connected to the system. Previously only one program
at a time could watch input devices. While this functionality was not
implemented in BeOS R5, it was at least documented in the BeBook.

Also added some API documentation where necessary for the function
and related constants.

Change-Id: Icd927998cffcab212bb63bcf10c64c620e9da9a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3872
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 696d127d 21-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Live update of Input preferences device list

- Implement watch_input_devices in input_server, as it was TODO. For
now, only one watcher is allowed at a time.
- Use it in Input preferences to get notified about added and removed
devices and update the device list accordingly.

Change-Id: I52018af53738e68271d6d63b5bea31fd7cab1b3b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2041
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 86749591 11-Jul-2014 John Scipione <jscipione@gmail.com>

Input Server: Fix double free.

CID610594


# b128ce7e 11-Jul-2014 John Scipione <jscipione@gmail.com>

Input Server: style fix, compare with 0 explicitly


# 916be2df 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# 4b7e2196 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# c143884f 27-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use incorrect use of BPathMonitor in input/midi/net server

The B_ENTRY_* constants aren't valid watch flags.


# c618b6cc 28-Aug-2012 Jérôme Duval <jerome.duval@gmail.com>

input_server: use a generated cookie instead of pointer

* fixed #8831


# 57ab0395 04-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit fixes for input_server.


# e791096b 02-Dec-2011 Michael Lotz <mmlr@mlotz.ch>

Fix unintentional change that broke input_server in safemode.

The change to this initial index for safemode was brought in with the
flat import of the package manager branch in 323b654 where presumably
more paths were used. With this value selecting either just safe mode
or disable user add-ons would lead to no input_server add-ons being
loaded at all, leading to a system without input.


# 323b6546 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 3dfd9cb9 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 078e1762 08-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

AddOnManager::MessageReceived(): ERROR() -> TRACE()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 509a3787 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Eliminate the second add-on monitor looper by inheriting AddOnManger
from AddOnMonitor. This solves a concurrency problem in the AddOnMonitorHandler
implementation which called into AddOnManager private methods on the wrong
looper thread without locking. Would have corrupted memory when unplugging
input devices during input_server initialization (so normally not encountered).
The code paths for adding devices were locking already, since those can be
called from other threads as well and this was anticipated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f1db8cf 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Brought the public methods in declaration order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a9f301a 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33959 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 944bc060 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* The way subdirectories for the input_server add-ons were defined was a bit
weird.
* Set fHandler to NULL in _UnregisterAddOns(), just in case it is called
twice (which it probably never is... but be defensive).
* If a B_NODE_MONITOR message does not contain all the necessary fields,
drop into the debugger when compiling in DEBUG mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28317 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d265d2a 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Removed some no longer used testing code.
* Fixed unloading the add-on image twice in error case of failing to
add the add-on info to the list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 23debb05 19-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote InputServerDevice.h header.
* Renamed _BDeviceAddOn_ to DeviceAddOn, and put it into the BPrivate namespace.
* Moved the DeviceManager functionality into the AddOnManager - this also
solves a locking issue, as BInputServerDevice::Control() was called in the
context of the DeviceManager before.
* The AddOnManager now uses the BPathMonitor to monitor the devices that
BInputServerDevices ask for - this greatly simplifies the code.
* Got rid of TList.h, and use ObjectList.h instead.
* Added PathList class that has a list of paths with reference count, used by
DeviceAddOn and the AddOnManager.
* DeviceAddOn got an actual implementation that lives in InputServerDevice.cpp.
* Added an experimental BInputServerDevice::AddDevices() that could be used
instead of recursing over devices manually. It replaces the functionality
that was found in the DeviceManager before (this was done implicitely for
all monitored devices).
* Greatly cleaned up and simplified the AddOnManager.
* Also fixed lots of potential errors/leaks when things go wrong.
* Removed the extra locker in AddOnManager - its BLooper lock is now used
instead.
* Replaced PRINT()/PRINTERR() macros in the AddOnManager with TRACE(), and
ERROR(), both now use debug_printf().
* Hopefully this fixes the problem that I don't have keyboard under VirtualBox
from time to time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f2be9ef 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f27f494c 06-May-2008 Jérôme Duval <korli@users.berlios.de>

when no input method is found but the replicant was loaded, we now unload it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25330 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cbcdf6e 04-Jan-2008 Jérôme Duval <korli@users.berlios.de>

added an error message when no replicant can be found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23240 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0d55096 10-May-2007 Jérôme Duval <korli@users.berlios.de>

remove filters and methods from their lists when unregistering
fixes bug #1215


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 499aacdd 15-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Fixed bugs #177 and #180 by adding code to notify the input_server that the
system is shutting down.

For the protocol between the Registrar and input_server I decided to just
re-use the message constant already defined in the input server headers
(SYSTEM_SHUTTING_DOWN.)

The code in the input server to notify the InputServerDevices about the
shutdown was pretty trivial.

For the code in the Registrar I'll let some gurus review it to make sure it
fits in with the rest of the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ee49d9f 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b64aa64 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

hopefully fixed iroster behavior


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9514d2e5 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* introduced a global gInputServer object, so that you don't need to cast the
be_app object anymore.
* fixed some missing locks for the input device list.
* moved the input device list into the InputServer object - didn't make a lot
of sense the way it was done before. Also moved registering/unregistering
into the InputerServer class.
* Made the InputDeviceListItem class a bit more useful and encapsulated.
* cleanup, removed empty function documentation stubs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14946 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f04728a 28-Apr-2005 Jérôme Duval <korli@users.berlios.de>

Reworked different build modes
Uncomment in Jamfile "#APPSERVER_TEST_MODE = 1 ;" to test app_server with input_server
Uncomment in InputServer.h "//#define R5_CURSOR_COMM" to enable cursor comm when appserver BPortlink comm is used
Default mode is R5 comm if TARGET != haiku
and appserver BPortLink comm when TARGET = haiku

For APPSERVER_TEST_MODE, make sure to change the ViewInputDevice path in AddOnManager.cpp
To test with app_server, enable LaunchCursorThread() in AppServer.cpp and uncomment "#define INPUTSERVER_TEST_MODE 1" in ViewHWInterface.cpp
Also make sure to change the input_server path in AppServer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5af2ee73 22-Jan-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, rollback, this stupid change was erronously still lying there...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10964 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a9677b8 22-Jan-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed the "unused frame variable" warning.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10963 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3c78ade 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Added input method key switching (alt+space)
Added code to enable deskbar replicant loading after input_server is started


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 215b876d 28-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Improved method support : method replicant is working
Readding of replicant or reset of method replicant menu still to be done


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f40fc44e 22-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added initial method addons support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9445 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca75e4d0 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a looper to handle devices related requests
Before it was deadlocking when an addon asks for a new keymap on a notification message


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a813abd 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Changed some printf to PRINT macro
Now uses BScreen to constrain mouse cursor
Now handles gracefully screen resolution changes
Yeah it works!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 935d9cfc 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

fixed a bug about safemode, noticed by John '[Beta]' Drinkwater. thanks.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33140fa0 29-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added file debug output for daemon mode
added some R5 app_server communication init


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9112 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907d729 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

now only system addons are loaded when safemode is true


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00740cc5 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Integrated MouseSettings and KeyboardSettings
update license info
clean up
removed node monitoring messages handling
fixed several message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97c19e92 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Complete DeviceManager, need testing though.
Fix crash with TeamMonitor when quitting.
Moved app signature to a common place


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b69a5532 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

reworked device manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6c0b53d 23-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added filtering. Commented now former unused addon code.
We now load and manage device and filter addons successfully.
Tested with nervous and InputRecorder devices and InputRecorder filter.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 173f7185 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

AddOnManager improved, initializations, message handling improved


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5359f0d4 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

added an addon manager directly from our media server, not finalized


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8674959175ead46ef143a0a60c59e34ce77294c0 11-Jul-2014 John Scipione <jscipione@gmail.com>

Input Server: Fix double free.

CID610594


# b128ce7eff2ec5f094d555690894448d60d7cf4f 11-Jul-2014 John Scipione <jscipione@gmail.com>

Input Server: style fix, compare with 0 explicitly


# 916be2df3c26f589bd422d22230f921e51e69bae 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# 4b7e219688450694efc9d1890f83f816758c16d3 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# c143884fdf03ec3a8b7a89c88baa477f8629395c 27-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use incorrect use of BPathMonitor in input/midi/net server

The B_ENTRY_* constants aren't valid watch flags.


# c618b6ccb1149daf91b89725e018ceab1175199d 28-Aug-2012 Jérôme Duval <jerome.duval@gmail.com>

input_server: use a generated cookie instead of pointer

* fixed #8831


# 57ab0395ad31761e27ef6d5aa3af68cc3e4d71b2 04-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit fixes for input_server.


# e791096b81d0ed6ef0ba8f07567b1c8aa0deb406 02-Dec-2011 Michael Lotz <mmlr@mlotz.ch>

Fix unintentional change that broke input_server in safemode.

The change to this initial index for safemode was brought in with the
flat import of the package manager branch in 323b654 where presumably
more paths were used. With this value selecting either just safe mode
or disable user add-ons would lead to no input_server add-ons being
loaded at all, leading to a system without input.


# 323b65468e5836bb27a5e373b14027d902349437 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 3dfd9cb95ce45f59160d50975210bc55e3fc0709 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# 078e1762a3dc18d196f6bd28e40632fc05dace11 08-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

AddOnManager::MessageReceived(): ERROR() -> TRACE()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 509a3787b1d2d3f8cd762ec47af4fcf96fbd04fe 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Eliminate the second add-on monitor looper by inheriting AddOnManger
from AddOnMonitor. This solves a concurrency problem in the AddOnMonitorHandler
implementation which called into AddOnManager private methods on the wrong
looper thread without locking. Would have corrupted memory when unplugging
input devices during input_server initialization (so normally not encountered).
The code paths for adding devices were locking already, since those can be
called from other threads as well and this was anticipated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f1db8cf7eef94a8acc3ab1405f06812d603723d 05-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Brought the public methods in declaration order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a9f301a596c57aa069d10dd21e3c0292c25c2a2 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33959 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 944bc060606c23abbf723d83ca3995be0c3336a9 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* The way subdirectories for the input_server add-ons were defined was a bit
weird.
* Set fHandler to NULL in _UnregisterAddOns(), just in case it is called
twice (which it probably never is... but be defensive).
* If a B_NODE_MONITOR message does not contain all the necessary fields,
drop into the debugger when compiling in DEBUG mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28317 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d265d2a5b86e34bdfe8b9dccac4ecc82a8bf200 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Removed some no longer used testing code.
* Fixed unloading the add-on image twice in error case of failing to
add the add-on info to the list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 23debb05d034dcc04cd6cb0735189609abe8e2d3 19-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote InputServerDevice.h header.
* Renamed _BDeviceAddOn_ to DeviceAddOn, and put it into the BPrivate namespace.
* Moved the DeviceManager functionality into the AddOnManager - this also
solves a locking issue, as BInputServerDevice::Control() was called in the
context of the DeviceManager before.
* The AddOnManager now uses the BPathMonitor to monitor the devices that
BInputServerDevices ask for - this greatly simplifies the code.
* Got rid of TList.h, and use ObjectList.h instead.
* Added PathList class that has a list of paths with reference count, used by
DeviceAddOn and the AddOnManager.
* DeviceAddOn got an actual implementation that lives in InputServerDevice.cpp.
* Added an experimental BInputServerDevice::AddDevices() that could be used
instead of recursing over devices manually. It replaces the functionality
that was found in the DeviceManager before (this was done implicitely for
all monitored devices).
* Greatly cleaned up and simplified the AddOnManager.
* Also fixed lots of potential errors/leaks when things go wrong.
* Removed the extra locker in AddOnManager - its BLooper lock is now used
instead.
* Replaced PRINT()/PRINTERR() macros in the AddOnManager with TRACE(), and
ERROR(), both now use debug_printf().
* Hopefully this fixes the problem that I don't have keyboard under VirtualBox
from time to time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f2be9ef82ab0bab66b8e686a2ef379374d3ee7f 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28229 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f27f494cb2fb037694727d55dfbe2e3495ef70ae 06-May-2008 Jérôme Duval <korli@users.berlios.de>

when no input method is found but the replicant was loaded, we now unload it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25330 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cbcdf6e54829c667f731bef75d994b4be0acfbd 04-Jan-2008 Jérôme Duval <korli@users.berlios.de>

added an error message when no replicant can be found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23240 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0d55096233d3f06246c25e0ce4c9bd5c6f24cc7 10-May-2007 Jérôme Duval <korli@users.berlios.de>

remove filters and methods from their lists when unregistering
fixes bug #1215


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 499aacdd0a020783a81e0d15a21bb2a4be4abeea 15-Nov-2006 Ryan Leavengood <leavengood@gmail.com>

Fixed bugs #177 and #180 by adding code to notify the input_server that the
system is shutting down.

For the protocol between the Registrar and input_server I decided to just
re-use the message constant already defined in the input server headers
(SYSTEM_SHUTTING_DOWN.)

The code in the input server to notify the InputServerDevices about the
shutdown was pretty trivial.

For the code in the Registrar I'll let some gurus review it to make sure it
fits in with the rest of the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ee49d9f646112a845e1a512b9231682be4e81c8 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b64aa64721fbedc3c3a354778d259aecf9d4389 28-Nov-2005 Jérôme Duval <korli@users.berlios.de>

hopefully fixed iroster behavior


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15199 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9514d2e5e6d5f285d06e3628b0062ea945ee6d21 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* introduced a global gInputServer object, so that you don't need to cast the
be_app object anymore.
* fixed some missing locks for the input device list.
* moved the input device list into the InputServer object - didn't make a lot
of sense the way it was done before. Also moved registering/unregistering
into the InputerServer class.
* Made the InputDeviceListItem class a bit more useful and encapsulated.
* cleanup, removed empty function documentation stubs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14946 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f04728a75161798697cd374012fad4d60540bfe 28-Apr-2005 Jérôme Duval <korli@users.berlios.de>

Reworked different build modes
Uncomment in Jamfile "#APPSERVER_TEST_MODE = 1 ;" to test app_server with input_server
Uncomment in InputServer.h "//#define R5_CURSOR_COMM" to enable cursor comm when appserver BPortlink comm is used
Default mode is R5 comm if TARGET != haiku
and appserver BPortLink comm when TARGET = haiku

For APPSERVER_TEST_MODE, make sure to change the ViewInputDevice path in AddOnManager.cpp
To test with app_server, enable LaunchCursorThread() in AppServer.cpp and uncomment "#define INPUTSERVER_TEST_MODE 1" in ViewHWInterface.cpp
Also make sure to change the input_server path in AppServer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5af2ee7384dea562289a9aff47abd999e66d9fef 22-Jan-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, rollback, this stupid change was erronously still lying there...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10964 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a9677b8edef35aca03656adc21e0f5901521e43 22-Jan-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed the "unused frame variable" warning.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10963 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3c78aded74b54ae683822c453d0a7989264e40f 10-Jan-2005 Jérôme Duval <korli@users.berlios.de>

Added input method key switching (alt+space)
Added code to enable deskbar replicant loading after input_server is started


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 215b876d6ed58d8eae4e4207cb613854ed41b2e3 28-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Improved method support : method replicant is working
Readding of replicant or reset of method replicant menu still to be done


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f40fc44ef4583ecfa08c45c6b02dacce687b7b00 22-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added initial method addons support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9445 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca75e4d057d1ccc7b8cf60a0e7035bb30d59cd62 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a looper to handle devices related requests
Before it was deadlocking when an addon asks for a new keymap on a notification message


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a813abdc948f9acea87374aecacead8e174bbaa 05-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Changed some printf to PRINT macro
Now uses BScreen to constrain mouse cursor
Now handles gracefully screen resolution changes
Yeah it works!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9213 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 935d9cfc2df0dfa6c2c98ae006341a18403a4946 03-Oct-2004 Jérôme Duval <korli@users.berlios.de>

fixed a bug about safemode, noticed by John '[Beta]' Drinkwater. thanks.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9172 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33140fa00143419ea8a525a6972fc62a376b8d9e 29-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added file debug output for daemon mode
added some R5 app_server communication init


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9112 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907d7292af7f0247786148e2bb2ad559ee74267 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

now only system addons are loaded when safemode is true


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00740cc502b4158b05917e6773cf949f9514106f 29-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Integrated MouseSettings and KeyboardSettings
update license info
clean up
removed node monitoring messages handling
fixed several message handlers


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8710 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97c19e92aac7938131090f96904116c0d768d0ef 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Complete DeviceManager, need testing though.
Fix crash with TeamMonitor when quitting.
Moved app signature to a common place


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b69a5532aee3a9b3e410c09e9353886df6972da3 27-Aug-2004 Jérôme Duval <korli@users.berlios.de>

reworked device manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6c0b53ddc2f5d877499395c9aa15b262339c67d 23-Aug-2004 Jérôme Duval <korli@users.berlios.de>

Added filtering. Commented now former unused addon code.
We now load and manage device and filter addons successfully.
Tested with nervous and InputRecorder devices and InputRecorder filter.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 173f7185f40ac1e71a48c1d0de9c5523afb993ff 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

AddOnManager improved, initializations, message handling improved


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5359f0d4ccab8979024dcbb7435ed6f272f2a677 19-Aug-2004 Jérôme Duval <korli@users.berlios.de>

added an addon manager directly from our media server, not finalized


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8609 a95241bf-73f2-0310-859d-f6bbb57e9c96