(More recent updates can be found in the Git commit comments.) 2010-07-15 Russell M. Taylor II * vrpn_Types.h : Making the "Need to compile with C++ error message more verbose. 2010-07-15 Russell M. Taylor II * vrpn_Button.C : Change to make this compile under Visual Studio 6.0 submitted by Andrei State. * vrpn_Mouse.C : Same. 2010-07-02 Russell M. Taylor II * vrpn_Tracker_isense.C : Modified to compile with the latest version of the Intersense library based on comments from Andrew Roth at York University, Toronto based on info from Rand Kmiec at Intersense. * vrpn_Tracker_isense.h : Same. 2010-06-25 David Marshburn * vrpn_Connection.C (get_log_names): does not attempt to return names for NULL input parameters. * vrpn_FunctionGenerator.h/c: uses vrpn_Callback_List. 2010-03-16 David Marshburn * vrpn_FunctionGenerator.C: correctly NULL-terminates decoded script and description strings. 2010-03-08 David Marshburn * vrpn_FunctionGenerator.h (vrpn_FunctionGenerator_function_script::getConstScript): new, const accessor for the script string. * vrpn_FunctionGenerator.C (vrpn_FunctionGenerator_Remote::encode_channel): encodes the correct, desired channel. 2010-02-18 David Marshburn * vrpn_FunctionGenerator.h/C: a few tweaks and additions, including: the ability for servers to keep up with the number of channels they're really using, the ability to copy functions, and some additional, correct const-ing. 2010-01-15 Russell M. Taylor II * CMakeLists.txt : Added -fPIC option submitted by Sheldon Andrews from McGill to non-Windows builds. This was important for his 64-bit Java code. * vrpn_DreamCheeky.C : Makes it not try to compile except under Windows, Cygwin, Apple. * vrpn_DreamCheaky.h : Same. 2010-01-14 David Marshburn * vrpn_FunctionGenerator.h/C: various bug fixes and additions, mostly involved with sending and receiving channel messages. 2010-01-05 David Marshburn * vrpn_FunctionGenerator.h/C: added error-reporting handlers for remote objects. also, explicitly defined value for the enumeration of error codes. 2009-12-30 David Marshburn * vrpn_FunctionGenerator.h/C: added error-reporting capabilities for servers (intended to be used for script malfunctions). 2009-12-29 David Marshburn * vrpn_FunctionGenerator.h/C: added another constructor to vrpn_FunctionGenerator_function_script and removed the pure-virtual specifier from the method generateValues. 2009-12-27 Russell M. Taylor II * vrpn_DreamCheeky.h : Added support for the Dream Cheeky USB roll-up drum kit, which is a HID device. * vrpn_DreamCheeky.C : Same. * CMakeLists.txt : Same. * Makefile : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. 2009-12-19 Russell M. Taylor II All changes here are from Ryan Pavlik. I'm just adding them in. * CMakeLists.txt : Adds vrpn_Configure.h into developer files. * README.Compiling : Describes building using Cmake. * vrpn_Configure.h : Added note telling about Cmake build/config. * vrpn_Configure.h.cmake_in : Same. * vrpn_HumanInterface.h : Adds default for non-Cmake compilation. 2009-12-15 Russell M. Taylor II * CmakeLists.txt : Major version number now 7.25. * vrpn_Connection.C : Same. 2009-12-15 Russell M. Taylor II * CmakeLists.txt : Improved version from Ryan Pavlik. 2009-12-15 Russell M. Taylor II * vrpn_Configure.h : Removed #pragmas calling for linking with the libraries because it breaks things when running Cmake. All app builds will need to explicitly link with VRPN now. * vrpn_Configure.h.cmake_in : Same. 2009-12-15 Russell M. Taylor II * CMakeLists.txt : Remove un-needed vrpn_TypeDispatcher.[hC] * vrpn_TypeDispatcher.h : Removed (included in vrpn_Connection.h). * vrpn_TypeDispatcher.C : Removed (included in vrpn_Connection.C). 2009-12-15 Russell M. Taylor II * CMakeLists.txt : Improved version from Ryan Pavlik. Refactored to make them cleaner and updated them to more modern Cmake usage. Also added CPack descriptions. * cmake : New directory in support of the above. * FindDirectShow.cmake : Moved to cmake/ subdirectory. * FindHDAPI.cmake : Same. * Findquatlib.cmake : Same. * vrpn_Atmel.C : Added newline at end of file. * vrpn_Configure.h : Commented definition of VRPN_USE_PHANTOM_SERVER. * vrpn_HumanInterface.C : Mac version-agnostic type definition. * vrpn_Nidaq.C : Turns off inclusion of function when USE_NIDAQ not there. * vrpn_Nidaq.h : Same. 2009-11-27 Russell M. Taylor II * vrpn_3DConnexion.C : Replaced MACOSX with __APPLE__ to make things compile on more Mac platforms. * Findquatlib.cmake : Knows to look one directory up from the present one to find quatlib. * vrpn_Button.C : Patch from Hans Labermont to make it compile under 64-bit Windows. 2009-11-24 David Marshburn * vrpn_FunctionGenerator.h: added VRPN_CALLBACK to the callback type definitions. 2009-11-23 Russell M. Taylor II * CMakeLists.txt : Added code to compile the DirectShow video server and the gen_rpc tests. * FindDirectShow.cmake : Same. 2009-11-23 Russell M. Taylor II * vrpn_CerealBox.C : Picking lint found by a new compiler (const declarations and printf format changes). * vrpn_JoyFly.C : Same. * vrpn_Magellan.C : Same. * vrpn_Mutex.C : Same. * vrpn_RedundantTransmission.C : Same. * vrpn_Tracker_Crossbow.C : Same. * vrpn_Tracker_NDI_Polaris.C : Same. 2009-11-21 Russell M. Taylor II * vrpn_Button.C : Type conversions to remove compiler warnings. * vrpn_Connection.C : Same. 2009-11-21 Russell M. Taylor II * CMakeLists.txt : Removing duplicate entries. * Findquatlib.cmake : To Unix line endings. * time_test.cpp : Compiles under Linux. * vrpn_FunctionGenerator.C : same. 2009-11-21 Russell M. Taylor II * CMakeLists.txt : File to describe to the Cmake build system how to compile VRPN. * FindHDAPI.cmake : Same. * Findquatlib.cmake : Same. * vrpn_Configure.h.cmake_in : Same, plus letting user set things to be compiled in using the Cmake interface. This needs to be improved -- it overwrites the vrpn_Configure.h file now. * time_test.cpp : Include adjustments to make it compile on Windows. * vrpn_Atmel.C : Make it compile on Windows. * vrpn_Shared.C : Disabled spurious compiler warning on Windows. 2009-11-13 Russell M. Taylor II * vrpn_HumanInterface.C : Patch from Bruno Raffin from imag.fr that makes it compile cleanly on macosx. 2009-10-30 Russell M. Taylor II * Makefile : Making this compile under Linux using new 0.4 version of libfreespace; patch from Phil Black. * vrpn_Freespace.C : Same. * vrpn_Freespace.h : Same. 2009-10-22 Russell M. Taylor II * vrpn_Configure.h : Changed to always link with the release version of the libfreespace, even in debug mode, to avoid manifes problems. * vrpndll.vcproj : Making vrpn_Freespace.C compile as C++ code in debug mode. 2009-10-22 Russell M. Taylor II * vrpn_3DConnexion.C : Put in patch from Ian Curington to work with devices that have more than 8 buttons. 2009-10-22 Russell M. Taylor II * vrpn_Freespace.h : Added code from Phil Black at Hillcrest Labs to run their Freespace devices in VRPN. * vrpn_Freespace.C : Same. * vrpn_Configure.h : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. * vrpn.sln : Same. * Makefile : Putting the files into the server library. Still won't compile on anything but Windows. 2009-10-16 David Marshburn * vrpn_FunctionGenerator.C (register_types): corrected a typo in the message IDs 2009-09-24 Russell M. Taylor II * Makefile : Turned "-g" flag into "$(DEBUG_FLAGS)" throughout. * vrpn_3DConnexion.C : Patch from Hans Lambermont to make the 3DConnexion and HID drivers work on MacOSX. * vrpn_3DConnexion.h : Same. * vrpn_HumanInterface.C : Same. * vrpn_HumanInterface.h : Same. * vrpn_Shared.C : Same. 2009-09-22 Russell M. Taylor II * vrpn_Tracker_DTrack.C : Changes by Kurt Achatz to enable enhanced timing support and new device support. * vrpn_Tracker_DTrack.h : Same. 2009-09-02 David Marshburn * vrpn_FunctionGenerator.h, .C: removed all the specific functions (sine, degauss, ramp, etc.). now, there's just a "script" function, which is interpreted by the server to generate values. removed various support facilities for the specific functions. * added destructor for vrpn_FunctionGenerator_function_script 2009-08-31 Russell M. Taylor II * vrpn_Mouse.C : Added fix by Chris VanderKnyff to the mouse code on Windows to make it work when there are multiple screens. 2009-08-03 Russell M. Taylor II * vrpn_Imager.C : Fixed a bug in region decoding when a region less than the whole image was loaded and the repeat count on the pixel output was more than 1. 2009-07-29 Russell M. Taylor II * vrpn_Tracker_Isotrak.h : Adds an Isotrak tracker driver submitted by Burno Herbelin from the Sensorama Laboratory at AAlborg University. * vrpn_Tracker_Isotrak.C : Same. * vrpn.dsp : Same. * vrpndll.dsp : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. * Makefile : Same. 2009-07-20 Russell M. Taylor II * vrpn.sln : Added a run_auxiliary_logger test program that lets you connect and ask for a log file for some duration. * vrpn.dsw : Same. 2009-06-19 Russell M. Taylor II Version 07.21 released. * vrpn_Connection.C : Changed version number higher so that compiles will be above current release number. 2009-06-19 Russell M. Taylor II * vrpn_BaseClass.h : Added deep-copy operator to the callback list class, so that it would work properly with the tracker code. * vrpn_Tracker.h : Added deep-copy operator to the callback list class, so that it would work with the copy-then-delete approach to allocating more handlers in the tracker code. 2009-06-18 Russell M. Taylor II * vrpn_3DConnexion.C : Added fix by Joseph Newman to let this compile under Mac OSX. 2009-06-16 Russell M. Taylor II * vrpn_Shared.C : Removed a spurious #endif that was left behind from my previous commit. 2009-06-10 Russell M. Taylor II * vrpn_Shared.C : Added fix to semaphore code on the mac sent in by Simon Julier. * vrpn.sln : Converted back to correct line endings so it can be opened by Visual Studio. 2009-05-18 David Marshburn * vrpn.sln: made the vrpn project depend on quatlib, so quatlib will always be rebuilt when needed. * vrpn_ForceDevice.h: removed an unnecessary include of quat.h 2009-05-15 Ryan Schubert * vrpn_Imager.C : Fixed 16->8 bit transcoding. 2009-04-17 Russell M. Taylor II * vrpn_3DConnexion.C : Patch from Hans Lambermont to make the Linux version read all of the messages in the buffer from the device. Also fixed both Windows and Linux versions to both send all messages found in a buffer, rather than just the last set. (Not yet tested this second set of fixes). 2009-03-02 David Marshburn * vrpn_Tracker.C (ensure_enough_unit2sensors): initializes the new elements of the new arrays rather than the non-existant elements of the old arrays. 2009-02-28 Russell M. Taylor II * Makefile : Add in vrpn_WiiMote files to server library. * vrpn_WiiMote.C : Define min() before use. 2009-02-19 Russell M. Taylor II * vrpn_Connection.C : Increasing version number after release. 2009-02-19 Russell M. Taylor II Version 07.20 release. * vrpn_Connection.C : Moved the connection manager class to the .h file so that FileConnection can access it in its constructor and destructor. * vrpn_Connection.h : Same. * vrpn_FileConnection.C : Adds itself to the list of open connections in constructor and removes itself in destructor, so that multiple devices opening the same file share the same connection. * vrpn_FileConnection.h : Changed parameter name to make it more clear what it does. * vrpn_Tracker.C : Removed spurious ":" that had worked its way into one of the tracker report strings (for acceleration). 2009-01-21 Russell M. Taylor II * vrpn_Tracker.C : Removed the upper limit on the number of sensors per tracker. The client now dynamically updates the list to provide sufficient entries until it runs out of memory. * vrpn_Tracker.h : Same. 2009-01-16 Russell M. Taylor II * vrpn_WiiMote.C : Fixed a bug that caused the buttons on the Classic controller and Guitar Hero controller to be ignored by the driver. 2009-01-15 Russell M. Taylor II * vrpn_3DConnexion.C : Making this work with Cygwin. * vrpn_3DConnexion.h : Same. * vrpn_HumanInterface.C : Same. * vrpn_HumanInterface.h : Same. 2009-01-15 Russell M. Taylor II * vrpn_3DConnexion.C : Fixed #defines so that it compiles under Cygwin. * vrpn.vcproj : Removed entry for isense.h (not always present) * vrpndll.vcproj : Same. 2009-01-14 Russell M. Taylor II * vrpn_ForceDevice.h : Bug fix sent in by Bruno Raffin, where should have been used but "../quat/qua.h" was. 2008-12-24 Russell M. Taylor II * vrpn_Configure.h : Added a comment about where to find a different library for dxerr8.lib, which has vanished in newer versions of the SDK from Microsoft. 2008-12-23 Russell M. Taylor II * vrpn_Connection.C : Raised version number after releasing version 7.19. 2008-12-23 Russell M. Taylor II * vrpn_3DConnexion.C : Making it also compile under Windows. 2008-12-23 Russell M. Taylor II * vrpn_3DConnexion.C : Patch from Hans Lambermont from Virtual Proteins to light up the 3DConnexion when the server runs. * vrpn_3DConnexion.h : Same. 2008-12-23 Russell M. Taylor II * vrpn_Tracker_Fastrak.C : Added fix sent in by Roger Hoang to keep things working with both Fastrak and IS900s with buttons. 2008-12-23 Russell M. Taylor II * vrpn_WiiMote.C : Driver for the WiiMote device using the WiiUse library. Tested under Windows; also supposed to work under Linux. Handles accelerometers, buttons, and raw IR values. Should handle nunchuck, classic remote, and guitar hero 3 attachments (not tested). * vrpn_WiiMote.h : Same. * vrpn.vcproj : Same. * vrpn_Configure.h : Same. * vrpndll.vcproj : Same. * vrpn.sln : Added rumble test program. 2008-12-22 Russell M. Taylor II * vrpn_XInputGamepad.C : Chris VanderKnyff's implementation of the Xbox 360 game controller. * vrpn_XInputGamepad.h : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. 2008-10-21 Russell M. Taylor II * vrpn_Connection.C : Adds some more checks and deletion to make things a bit more stable when connections try to overwrite existing log files. 2008-10-01 Ian Curington * vrpn_3DConnexion.C/h: Added 3DConnexion Spaceball 5000 device support 2008-09-29 Russell M. Taylor II * vrpn_3DConnexion.C : Patch from Ian Curington to get around a GCC 2.3 bug in converting shorts to doubles. 2008-09-05 Ryan Schubert * vrpn_Imager.C : Looked like 16->8 transcoding was never committed. 2008-08-28 Russell M. Taylor II * vrpn_Connection.C : Changed out a horrible hack where a structure was being packed using memcpy (and a structure with a pointer in it at that) into one where it is explicitly marshalled and unmarshalled to the log files. This fixes a bug where log files generates on 64-bit machines were unreadiable on 32-bit machines and vice-versa. * vrpn_FileConnection.C : Same. 2008-07-16 Russell M. Taylor II * vrpn_Imager.c : Modified the unsigned 16 decode routine to fix a bug where it was crashing when trying to read from the wrong part of memory. 2008-07-12 Russell M. Taylor II * vrpn_Tracker_AnalogFly.C : Fixed the order of rotations when using the clutch on orientation. 2008-07-09 Russell M. Taylor II * vrpn_Connection.C : Updating version after release of 7.16. 2008-07-09 Russell M. Taylor II * vrpn_Connection.C : Removed debug printout. 2008-07-09 Russell M. Taylor II * vrpn.sln : Added dependencies in quatlib to servers. * vrpn_Connection.C : Fixed a bug in the determination of the machine name where it was being truncated for the case of tcp:// names. 2008-07-09 Russell M. Taylor II * vrpn_Tracker_AnalogFly.C : Removed a redundant copy from a redundant temporary variable. 2008-06-19 David Marshburn * vrpn_Poser.h, .C: added the capability for remote objects to make relative pose & velocity requests and for servers to receive these requests. 2008-06-06 Russell M. Taylor II * Adding python_vrpn port from Thiebaut Mochel at the University of Strasborg. 2008-05-26 Russell M. Taylor II * vrpn_Tracker_AnalogFly.h : Setting clutch name to NULL in the constructor; it was not set before, causing a crash later. 2008-05-09 Russell M. Taylor II * vrpn_Tracker_PhaseSpace.C : Added updates from Lawrence K. at PhaseSpace. * vrpn_Tracker_PhaseSpace.h : Same. 2008-04-14 Russell M. Taylor II * vrpn_Configure.h : Changing comments on when to define the various NATIONAL_INSTRUMENTS flavors. * vrpn.vcproj : Pointing at the new location for NI MX header files. * vrpndll.vrproj : Same. 2008-04-04 Russell M. Taylor II * vrpn_Imager.C : Fixed a signed vs unsigned copy of characters in the non-unity-stride 8-bit copy function. 2008-04-02 Russell M. Taylor II * vrpn_3DConnexion.h : Added patch from Mike Weiblen to add SpaceExplorer. * vrpn_3DConnexion.C : Same. 2008-03-09 Russell M. Taylor II * vrpn.vcproj : Added Polaris tracker to VS 2005 project. * vrpndll.vcproj : Same. * vrpndll.dsp : Same. 2008-03-09 Russell M. Taylor II * vrpn.dsp : Adding vrpn_Tracker_NDI_Polaris driver submitted by Sharif Razzaque from InnerOptic. * Makefile : Same. * vrpn_Tracker_NDI_Polaris.C : Same. * vrpn_Tracker_NDI_Polaris.h : Same. 2008-03-09 Russell M. Taylor II * vrpn_JoyWin32.C : Added another error check submitted by M. Casas Sanchez at Space Application Services in Belgium. 2008-03-09 Russell M. Taylor II * vrpn_Connection.h : Making it so that specifying a blank NIC name results in opening the default NIC. * vrpn_Connection.C : Same. 2008-03-04 Russell M. Taylor II * vrpn_Connection.h : Added another optional parameter to the helper version of vrpn_create_server_connection() so that it matches the constructor arguments from the old vrpn_Connection() server constructor to make it easier to port existing servers. 2008-03-04 Russell M. Taylor II * vrpn_Configure.h : Turned off DIRECTSHOW in the default configuration. 2008-03-04 Russell M. Taylor II WARNING: The changes made in this commit require any code that created a vrpn_Connection (server connection) using its constructor to be changed to use the new function vrpn_create_server_connection() instead. This is required because a base-class constructor cannot create and return an object of a derived class. * vrpn_Connection.h : Pulling the IP-specific portions of the vrpn_Connection object into a separate class so that we can add an MPI implementation. - Added another parameter to vrpn_get_connection_by_name to force it to open a new connection even if there was already one there. - Should no longer create a vrpn_Connection directly; either create a specific subclass (vrpn_Connection_IP) or else use the vrpn_create_server_connection() function to make one of arbitrary type. - Made vrpn_Connection_Generic the base type. * vrpn_Connection.C : Same. * vrpn_Mutex.C : Makes an IP-based connection to listen on. * vrpn_ForwarderController.C : Makes an IP-based connection to forward on. * vrpn_FileConnection.C : Modified to use the new base class. * vrpn_Imager_Stream_Buffer.C : Calls vrpn_get_connection_by_name rather than calling base-class constructor. * vrpn_Auxilliary_Logger.C : Same. 2008-03-03 Russell M. Taylor II * vrpn_3DConnexion.C : Fixed a bug reported by Patric Schmitz where multiple-report packets from the device were not being treated correctly. 2008-02-26 Russell M. Taylor II * vrpn_Configure.h : Added a configuration entry to enable VRPN to link with a Message-Passing Interface (MPI) library and communicate over it between a group of processes. This is a fast and low-latency communications mechanism available on clusters. So far, only the definition is in there; the implementation will be committed in steps as the TCP and UDP parts are teased out of the general Connection object. * vrpn_Connection.h : Teasing the IP-specific (TCP, UDP) portions of the vrpn_Endpoint out into a separate base class. The basic Connection object has been modified to use the IP version in all cases (it is effectively an IP connection). Next up will be teasing the non-IP-specific parts of the Connection out. * vrpn_Connection.C : Same. 2008-02-08 Russell M. Taylor II * vrpn_Connection.C : Modified to make the tcp: connection method reconnect after a connection drops (and retry if the initial connection is not made). Also cleaned up some names. * vrpn_Connection.h : Same. 2007-12-28 Russell M. Taylor II * vrpn_Connection.C : Changing version number to 7.15 for release. 2007-12-28 Russell M. Taylor II * vrpn_Shared.C : Making this compile on the mac by removing a spurious extra if statement left over from a bad patch attempt. Removing a second deletion of an already-destroyed semaphore. * Makefile : Switching mac compiler from gcc to g++. 2007-12-10 Russell M. Taylor II * vrpn_Connection.C : Finally tracked down and squashed that horrible bug where the UDP packets would not go on the same interface as the TCP packets sometimes on hosts with multiple interfaces. Did it by using the same connection for UDP that was established for TCP unless there was an explicit override in the constructor. 2007-12-05 Russell M. Taylor II * vrpn_Tracker_Liberty.C : Patch from Michael Adrian that makes this work with more versions of the tracker. 2007-12-05 Russell M. Taylor II * vrpn_3DCOnnexion.C : Patch from Patrick Hartling to make this compile on the Mac. * vrpn_Shared.C : Patch from Patrick Hartling to make this work with the most recent Apple compiler. 2007-12-04 Russell M. Taylor II * Makefile : Making it include the vrpn_Tracker_MotionNode. 2007-12-04 Russell M. Taylor II * vrpn_Configure.h : Added entry for MotionNode Tracker. This compiles under Visual Studio 2005 (not 6.0). * vrpn.dsp : Same. * vrpn.vcproj : Same. * vrpn_Tracker_MotionNode.C : Vendor-supplied server code. * vrpn_Tracker_MotionNode.h : Same. * vrpndll.dsp : Same. * vrpndll.vcproj : Same. 2007-11-29 Russell M. Taylor II * vrpn_Configure.h : Removed the paths for DirectX and replaced them with instructions for how to put the include and lib directories into the Visual Studio options. * vrpn_Shared.C : Whitespace cleanup * vrpn.sln : Adding required dependency. 2007-11-21 Russell M. Taylor II * vrpn_Tracker_Liberty.C : Added patch from Eric Griffith to include control of a stylus. * vrpn_Tracker_Liberty.h : Same. 2007-11-21 Russell M. Taylor II * Makefile : Included definitions needed to compile with the InterSense library. 2007-11-20 Russell M. Taylor II * vrpn_3DConnexion.C : Picking some lint. 2007-11-20 Russell M. Taylor II * vrpn_3DConnexion.C : Made this compile under Linux. Had to add in a structure definition that was not in the system header files. * vrpn_3DConnexion.h : Same. 2007-11-20 Russell M. Taylor II * vrpn_3DConnexion.C : Added code to run with the event interface on non-Windows platforms. This was sent in by Jan Ciger. * vrpn_3Dconnexion.h : Same. * vrpn_Configure.h : Removed vrpn_USE_HID; this turned into checks for _WIN32 all over the place. * vrpn_HumanInterface.C : Pulling out the non-Windows- specific parts so that all of the acceptor code can be used. * vrpn_HumanInterface.h : Same. * vrpn_Xkeys.C : Switched to checking for _WIN32 rather than vrpn_USE_HID * vrpn_Xkeys.h : Same. 2007-11-20 Russell M. Taylor II * vrpn_Joywin32.C : Allows more than two joysticks to be opened. 2007-11-20 Russell M. Taylor II * vrpn_Flock.C : Uses 36" rather than 144" as the range when not using the extended-range transmitter. Fix submitted by Jo Skjermo. 2007-11-20 Russell M. Taylor II * Makefile : Renamed Auxilliary to Auxiliary. Moved Keyboard_Mouse to Keyboard. * vrpn_Mouse.C : Added required include file. 2007-11-19 Russell M. Taylor II * vrpn_Button.C : Moved the serial-mouse button code into the vrpn_Mouse.C file to have all of the mice in one place. * vrpn_Button.h : Same. Made the MAX_BUTTONS and BUF_SIZE values 256, rather than 100, to support the keyboard class. * vrpn_Mouse.C : Added Windows interface to the class. Changed Windows interface to report mouse position in fraction of screen rather than pixels, so that the Windows and Linux implementations match. Moved the serial mouse-button class into this file so all of the mice are here. * vrpn_Mouse.h : Same. * vrpn_Keyboard.C : Pared-down version of vrpn_KeyMouse that only implements the keyboard portion. * vrpn_Keyboard.h : Same. * vrpn_KeyMouse.C : Removed. * vrpn_KeyMouse.h : Removed. * vrpn_AnalogFly.C : Added a clutch button that causes the differential tracker to only move when the button is pressed and causes an absolute tracker to behave like a mouse, also only moving when the button is down. * vrpn.dsp : Removed vrpn_KeyMouse. Added vrpn_Keyboard. * vrpndll.dsp : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. 2007-11-13 Russell M. Taylor II * vrpn_Configure.h : Toook out NationalInstruments. Reverted to old version of Microsoft DirectX SDK (let the tug-of-war begin). * vrpn.dsp : Changed name of Auxilliary to Auxiliary. * vrpndll.dsp : Same. 2007-11-12 David Marshburn * corrected the spelling of Auxilliary to Auxiliary 2007-10-19 Russell M. Taylor II * vrpn_Connection.C : Making an fprintf() with the machine IP address work under Linux. 2007-10-11 David Marshburn * vrpn_Imager_Stream_Buffer.h/C: implemented handle_request_logging_status (vrpn_Imager_Stream_Shared_State): this now keeps around the log-file-name results. added appropriate memory management for that. added lots of NULL tests. added an accessor for log file names, get log file names, which doesn't depend on whether the file names are unqueried. added comments. 2007-10-02 David Marshburn * vrpn_Log.h (vrpn_Log::getName): new, returns the log file name. * vrpn_Connection.h (vrpn_Connection::get_log_names): returns the names of the local/remote in/out log files. * vrpn_Connection.C: implementation of vrpn_Connection::get_log_names and vrpn_Log::getName. * vrpn_Auxilliary_Logger.h/C: added code for a "request logging status" message, including an example in the generic server. 2007-09-18 Russell M. Taylor II * vrpndll.vcproj : Added preprocessor definitions that make VRPN build the files needed to link in the DLL state. * vrpn.sln : Making it come much closer to being able to build DLL. * vrpn_Connection.h : Removed redundant check for #ifdef. 2007-09-18 Russell M. Taylor II * vrpn_3DConnexion.C : Added SpaceMouse code from Lode Vanacken. * vrpn_3DConnexion.h : Same. 2007-09-17 Russell M. Taylor II * vrpn_Imager_Stream_Buffer.C : const casts so that we can delete buffers without the VC 6.0 compiler complaining. 2007-09-14 Russell M. Taylor II * vrpn_Connection.C : Added the name of the endpoint to the data structure so we get a reasonable error message when connections fail. * vrpn_Connection.h : Whitespace change. * vrpn_Imager_Stream_Buffer.C : Initialized a variable so we don't get a race condition when making logging connections. 2007-09-01 Russell M. Taylor II * vrpn_Imager.C : Does transcoding for the simple case of an 8-bit input image going to a 16-bit output image by shifting left 8 bits. 2007-08-29 Russell M. Taylor II * vrpn_GlobalHapticsOrb.C : Removing things that were not needed. Replacing member variables that start with underscore with those that start with d_. Code cleaning that should leave the behavior unchanged. * vrpn_GlobalHapticsOrb.h : Same. * vrpn_VPJoystick.C : Same. * vrpn_VPJoystick.h : Same. * vrpn_Zaber.C : Same. * vrpn_Zaber.h : Same. 2007-08-29 Russell M. Taylor II * vrpn_Imager_Stream_Buffer.C : Deletes the buffer for each message that has been passed to the initial thread from the real-time thread. Not doing this caused a massive memory leak. The comments said to do it but the code didn't. 2007-08-29 Russell M. Taylor II * vrpn_Imager.h : Added friend reference to the imager stream buffer to enable passing values from one thread to the other. * vrpn_Imager_Stream_Buffer.C : Now passes the channel descriptions from the real-time logging thread up to the client-management thread so that it can send correct descriptions when multiple clients connect. * vrpn_Imager_Stream_Buffer.h : Same. 2007-08-25 Russell M. Taylor II * vrpn_Connection.C : Changed version number to 7.13 for new release. 2007-08-25 Russell M. Taylor II * vrpn_Analog_Output.C : Moved some methods from public to protected. Added a new derived class for the server that calls user-level callbacks when things change. This was needed for MegaWatt Solar's tracker drive. * vrpn_Analog_Output.h : Same. * vrpn_Connection.C : Comment change. * vrpn_Analog.h : Removed blank line. 2007-08-20 Russell M. Taylor II * vrpn_Connection.C : Changed version number to 7.12 (for some reason it was 7.10, even though version 7.11 has been out for a while). 2007-08-17 Russell M. Taylor II * Makefile : Patch from Patrick Hartling for compilation under 64-bit Windows. * vrpn_Tracker_DTrack.h : Same. * vrpn_Tracker_DTrack.C : Same. * vrpn_HumanInterface.h : Added carriage return to last line. * vrpn_XKeys.h : Same. * vrpn_3DConnexion.h : Same. 2007-08-17 Russell M. Taylor II * vrpn_Connection.h : Adding more clarifying comments. * vrpn_Imager.C : Removed line that set throttle drop count to zero when it should not have. * vrpn_Imager_Stream_Buffer.C : Completed the implementation and debugging. * vrpn_Imager_Stream_Buffer.h : Same. 2007-08-13 Russell M. Taylor II * vrpn_3DConnexion.C : Thanks to Chris V's new HID class, I was able to write a driver for the Space Traveler and Space Navigator from 3DConnexion. These are a $55 and $200 replacement for the Magellans. * vrpn_3DConnexion.h : Same. * vrpn.dsp : Same. * vrpn.vcproj : Same. * vrpndll.dsp : Same. * vrpndll.vcproj : Same. * vrpn.dsw : Added new project from Chris VanderKnyff that prints out the values from a HID device, enabling you to figure out how to write a driver for it. That's what I used to figure out the bytes from the 3DConnexions. 2007-08-12 Russell M. Taylor II * vrpn_Configure.h : Added option to enable compilation of the HID devices (including the Xkeys devices). This will only work on Windows for now. * vrpn_HumanInterface.C : Chris VanderKnyff's implementation of a generic HID device interface for Windows. * vrpn_HumanInterface.h : Same. * vrpn_Xkeys.C : Chris VanderKnyff's implementation of a driver for four of the X-Keys devices from P.I. Engineering * vrpn_Xkeys.h : Same. * vrpn.dsp : Adding HID and XKeys to project. * vrpn.vcproj : Same. * vrpndll.dsp : Same. * vrpndll.vcproj : Same. 2007-08-05 Russell M. Taylor II * vrpn.dsp : Added vrpn_Imager_Stream_Buffer. * vrpndll.dsp : Same. 2007-08-05 Russell M. Taylor II * vrpn_Imager_Stream_Buffer.h : Class that provides full-rate logging of a vrpn_Imager stream while forwarding a subset of the stream to a client. This is for the UNC NSRG research group to enable scientists to log microscope video data at full camera rates of 120 frames/second while previewing live during the experiment. The implementation is not yet complete, but this version has all of the logging and logfile-switching code working with multiple threads so I wanted to check it in before doing the next step. * vrpn_Imager_Stream_Buffer.C : Same. * Makefile : Adding vrpn_Imager_Stream_Buffer class. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. * vrpn_Imager.h : Comment improvements. * vrpn_Shared.h : Comment fixes. 2007-07-22 Russell M. Taylor II * vrpn_DirectXRumblePad.C : Changes by Chris VanderKnyff to make this work correctly on Visual Studio .NET and 6. * vrpn_DirectXRumblePad.h : Same. 2007-07-20 Russell M. Taylor II * vrpn.sln : Organizing the various projects into folders within the solution to make it easier to figure out what is what. 2007-07-20 Russell M. Taylor II * Makefile : Adding the vrpn_Auxilliary_Logger under Linux. 2007-07-20 Russell M. Taylor II * vrpn_Auxilliary_Logger.h : New class that lets a client request an additional log file to be started on a local or remote server. Intended for logging on scientific instruments in the UNC NSRG group but there is a generic server for use elsewhere. * vrpn_Auxilliary_Logger.C : Same. * vrpn.dsp : Added to project. * vrpndll.dsp : Same. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. * vrpn.dsw : Added build project for test program. * vrpn.sln : Same. * vrpn_Analog_Output.h : White space change. * vrpn_Connection.C : Modified the pack_log_description() function to remove the fixed-buffer-length hack that had been in there. It now allocates a buffer that is large enough and frees it when it is done. Modified code to handle empty-string ("") names for log files meaning "no log file" in addition to NULL pointers. Comment changes. Fixing error messages to work properly with perror(). 2007-07-18 Russell M. Taylor II * vrpn_Connection.C : Comment and white-space changes. Converting from C-style casts to static_cast<> in several locations. 2007-07-10 Russell M. Taylor II * vrpn_Shared.C : This version compiles and runs under Linux again (removed an &). 2007-07-10 Russell M. Taylor II * Makefile : More fixes to get the atmellib compiling correctly. * vrpn_Share.h : Changes to make this work on the Mac, which uses a different Posix open/close call than Linux. Also changed to using a semaphore pointer rather than a semaphore under Posix, which requried new and delete. Works under mac and Windows. Needs to be tested under Linux. * vrpn_Shared.C : Same. 2007-07-09 Russell M. Taylor II * vrpn_Shared.h : Added VRPN_API where needed for the Thread code to compile under DLL linkage. 2007-07-09 Russell M. Taylor II * Makefile : Fixing problems put in when I added the atmellib stuff; it was not making the client library as client- only code any more. * vrpn_Shared.C : Bug fixes in the Semaphore and Thread code. Made the interface to them a bit cleaner (fewer pointers). Added test routine that make sure the Semaphore and Thread code is working. * vrpn_Shared.h : Same. 2007-07-06 Russell M. Taylor II * vrpn_Shared.C : Fixed the thread code to be Posix-compliant, and not specify pthread_t as unsigned long; this makes it work on mac as well as Linux. * vrpn_Shared.h : Same. 2007-07-03 Russell M. Taylor II * vrpn_DirectXRumblePad.C : This code is broken (Chris V. verified this). The constructor now reports that it is broken. Once we get a bug fix, we can let the constructor construct one again. 2007-07-03 Russell M. Taylor II * vrpn_Tracker_DTrack.C : Changed type of a struct so that it has vrpn_ prepended to the name (don't want anything in the library that can be seen globally to have a name that doesn't start with vrpn_ to avoid name-collisions. * vrpn_Tracker_DTrack.h : Same. 2007-07-03 Russell M. Taylor II * vrpn_Tracker_DTrack.C : Patch from Kurt Achatz to build for new version of A.R.T. DTrack, which supports the new Flystick2 input device. The patch was necessary to support the new (additional) DTrack output format called '6df2'; the driver still understands the former output format '6df', so that it can work with any existing DTrack installation too. Note that there was a change how buttons of a 'Flystick' device are sorted; this was done to fit DTrack's standards described in A.R.T. documentation. For backward compatibility the driver uses the old sorting when using the old output format '6df'. * vrpn_Tracker_DTrack.h : Same. 2007-07-03 Russell M. Taylor II * vrpn_inertiamouse.h : Removing iostream and std::vector class from the code. It turns out that the standard template libraries don't work across all platforms VRPN is built upon, which keeps folks from using (linking to) it if it has these references. Totally horrible, but true; someone had trouble linking as soon as this was added. * vrpn_inertiamouse.C : Same. 2007-07-02 Russell M. Taylor II * vrpn_Connection.C : White space, comment, and error message editing. * vrpn_Log.h : Same. 2007-07-02 Russell M. Taylor II * vrpn_Connection.C : Fixed bug in the recent patch. Updated version number. 2007-07-02 Russell M. Taylor II * vrpn_Connection.C : Applied patch from Mike Weiblen that doesn't restrict the number of file descriptors to 32, but rather uses as many as are needed based on the actual file descriptor being used. * vrpn_Joylin.C : Same. * vrpn_Mouse.C : Fix from Mike Weiblen to code cleanup that I did that broke the Mouse class. 2007-06-30 Russell M. Taylor II * vrpn_Atmel.C : Making it also compile on Mac Universal. * vrpn_Event.C : Same. 2007-06-28 Russell M. Taylor II * vrpn_Shared.C : Extra includes to work on non-Windows machines. 2007-06-28 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Comment fixed. * vrpn_Shared.h : Added vrpn_Semaphore and vrpn_Thread classes based on Hans Weber's classes. These are to support an upcoming vrpn_Imager_Logger class that will enable full- bandwidth logging while subsetting the images to a client across the network. * vrpn_Shared.C : Same. 2007-06-25 Russell M. Taylor II * vrpn_Connection.C : Updated version number. * Makefile : Adding a number of devices from Bauhaus University Weimar submitted by Jan Springer, including some helper classes used by their code. * vrpn_Atmel.C : Same. * vrpn_Atmel.h : Same. * vrpn_Event.C : Same. * vrpn_Event.h : Same. * vrpn_Event_Analog.C : Same. * vrpn_Event_Analog.h : Same. * vrpn_Event_Mouse.C : Same. * vrpn_Event_Mouse.h : Same. * vrpn_Joylin.C : Adding typecasts to time reads. * vrpn_atmellib.h : Same. * vrpn_atmellib_errno.h : Same. * vrpn_atmellib_helper.h : Same. * vrpn_atmellib_helper.C : Same. * vrpn_atmellib_iobasic.C : Same. * vrpn_atmellib_openclose.C : Same. * vrpn_atmellib_register.C : Same. * vrpn_atmellib_tester.C : Same. * vrpn_interiamouse.C : Same. * vrpn_interiamouse.h : Same. 2007-06-22 Russell M. Taylor II * vrpn_Serial.C : Attempting to fix some problems with RTS/CTS that came in when we switched to termios serial control in version 7 of VRPN. There was a bug introduced in the Windows clear call that has been fixed. Trying out a new way to control the RTS/CTS that should work across Linux and Mac platform; hope it works! 2007-06-21 Russell M. Taylor II * vrpn_Connection.C : Changed to version 7.07. 2007-06-21 Russell M. Taylor II * vrpn.dsp : Adding vrpn_DirectXRumblePad driver submitted by Chris VanderKnyff and Jeff Feasel. * vrpndll.dsp : Same. * vrpn.vjproj : Same. * vrpndll.vjproj : Same. * vrpn_DirectXRumblePad.C : Same. * vrpn_DirectXRumblePad.h : Same. * vrpn_BaseClass.C : Added a public "shutup" boolean member that makes an object not print that it cannot connect to its server counterpart when set to "true". This functionality is deprecated from the start; we need to figure out a good functional interface for this. Leaving it in so as not to break EVE code while a new version is implemented. * vrpn_BaseClass.h : Same. * vrpn_Flock.C : Added the ability to set the hemisphere for the Flock (code from Jeff Feasel). * vrpn_Flock.h : Same. 2007-06-19 Russell M. Taylor II * vrpn.vcproj : Making all of the .C files compile with the C++ compiler. * vrpndll.vcproj: Adding the Poser_Tek4662 file. 2007-06-19 Russell M. Taylor II * vrpn.dsp : Removed dependencies on vrpn.lib and vrpndll.lib, because they are handled indirectly and through lines in vrpn_Configure.h. * vrpn.dsw : Same. * vrpndll.dsp : Added Poser_Tek4662 source files to the project. * vrpn_Mouse.h : Added VRPN_API to class definition (needed for DLL linkage). * vrpn_Mouse.C : Comment clean-up. * vrpn_Tracker_3DMouse.h : Added VRPN_API to class definition (needed for DLL Linkage). * vrpn_Configure.h : Whitespace changes. 2007-06-19 Russell M. Taylor II * Makefile : Adding patch submitted by Patrick Hartling from Infiscape.com for making this compile on MacOSX to create universal binaries. 2007-06-19 Russell M. Taylor II * vrpn_Configure.h : Fixing the path to the PhaseSpace libraries. 2007-06-12 Russell M. Taylor II * vrpn.dsp : Adding PhaseSpace driver submitted by Lawrence Kwan. * vrpndll.dsp : Same. * vrpndll.vcproj : Same. * vrpn_Configure.h : Fixing the path to the include files. 2007-06-12 Russell M. Taylor II * Makefile : Compiles with PhaseSpace driver submitted by Lawrence Kwan. * vrpn.vcproj : Same. * vrpn_Tracker_PhaseSpace.h : Same. * vrpn_Tracker_PhaseSpace.C : Same. 2007-05-11 Russell M. Taylor II * vrpn.sln : It was building the release configuration as Debug for some reason. So changed that. 2007-04-05 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Made the joystick report at the requested rate, whether or not there have been changes to its analog values. 2007-04-05 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Uncommenting the lines that make sure not to send force commands or read values at a rate greater than was asked for. No idea why these had been commented out, but it broke the case where you opened a non-FF joystick with a zero force update rate. 2007-03-18 Russell M. Taylor II * vrpn_Connection.C : Changing version number to 07.05. 2007-03-17 Russell M. Taylor II * vrpn_Shared.h : Made both the vrpn_big_endian and the htond() code use the same test to see what the endianness is. * vrpn_Shared.C : It turns out that some ARM processors have a mixed-endian double format, where you have to both swap the bytes and then swap the two words that make up the double. Horrible. This checks for that and does it if needed. 2007-03-17 Russell M. Taylor II * vrpn_Mouse.C : Removing the mouse library except when the new VRPN_USE_GPM_MOUSE definition is specified in vrpn_Configure.h * vrpn_Configure.h : Added entry to let us use the GPM mouse under linux. * Makefile : Added a build environment description for cross- compiling to ARM from PCs running Cygwin 2007-03-03 Russell M. Taylor II * vrpn_Mouse.C : Removing the mouse library when compiling for the ARM, which is the embedded version of the OS. This device was not present (at least not on the ARM development I'm working on now). 2007-02-20 Russell M. Taylor II * vrpn.sln : Adding required dependencies on quatlib and two new files that were added to the VS 6.0 files. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. 2007-01-23 David Borland * vrpn_DirectXFFJoystick.C : Removed DIENVELOPE struct when creating the force effect. This was causing a buzzing when applying forces, as the force was ramped down and then back up again. 2007-01-23 David Borland * vrpn_DirectXFFJoystick.h : Now handles changed force field messages. Currently, just assuming a constant force. The center, jacobian, and radius are ignored. * vrpn_DirectXFFJoystick.C : Same. 2007-01-21 Russell M. Taylor II * vrpn_Tracker_isense.C : Changed the interpretation of the Intersense Quaternion to match that of VRPN/Quatlib. This lets us translate the positions directly, rather than scrambled. Thanks to Christian Odom for the fix! * vrpn_Connection.C : Updated version number to 7.04. 2006-11-21 Russell M. Taylor II * vrpn.dsp : Adding new objects to the project to support the two new devices. * vrpndll.dsp : Same. * vrpn_Analog_USDigital_A2.C : Modified to use the device #define in vrpn_Configure.h rather than WIN32. * vrpn_Button_NI_DIO24.C : same. * vrpn_Button_NI_DIO24.h : same. 2006-11-21 Russell M. Taylor II * vrpn_Analog_USDigital_A2.h : New device driver submitted by William West from Disney VR Studios. * vrpn_Analog_USDigital_A2.h : Same. * vrpn_Button_NI_DIO24.h : Same. * vrpn_Button_NI_DIO24.C : Same. * Makefile : Added the above files. * vrpn_Configure.h : Adds configuration option for these devices and paths needed. 2006-10-04 Russell M. Taylor II * time_test.vcproj : Updated to use the August 2006 version of the DirectX SDK and the Microsoft Platform SDK for Windows Server 20003 R2. * vrpn.vcproj : Same. * vrpndll.vcproj : Same. * vrpn.sln : Added projects needed to do a DirectShow video camera vrpn_Imager server. Updated to latest DirectX SDK and Platform SDK. * vrpn_FunctionGenerator.C : Removed ambiguity about the pow() operator by casting one of its inputs. 2006-08-23 Russell M. Taylor II * vrpn.dsw : Added projects needed to implement a DirectShow video imager server. * vrpn_Configure.h : Added entry to tell whether to include DirectShow video in the build. This must be defined to build the DirectShow video imager server. 2006-08-23 Russell M. Taylor II * vrpn_Configure.h : Switched to most recent version of DirectX SDK. Moved include into config file so everything can be edited in one location. * vrpn_DirectXFFJoystick.h : Same. 2006-08-28 David Marshburn * vrpn_FunctionGenerator.C: correct version of the file. 2006-08-28 David Marshburn * vrpn_FunctionGenerator.h,C: moved the definition of the message-type strings into the C file. they should have always been here. 2006-08-21 David Marshburn * vrpn_FunctionGenerator.h,C: fixed up a few things for vrpn_FunctionGenerator_function_degauss -- constructor and the way cycleTime is calculated. 2006-08-14 David Marshburn * vrpn_FunctionGenerator.h,C: added a new function, vrpn_FunctionGenerator_function_degauss. also, made the data members of the other functions protected and added accessors for them all. 2006-07-12 Russell M. Taylor II * vrpn_BaseClass.h : Edited some comments. * vrpn_Connection.h : Added functions to tell the connection to only handle a finite number of messages per mainloop() call. * vrpn_Connection.C : Same. * vrpn_FileConnection.h : Re-implemented the limit_messages_played_back function and its functionality using the new capability in the vrpn_Connection object (from which FileConnection derives). 2006-07-06 Russell M. Taylor II * vrpn_Tracker.h : Increased the maximum number of tracker sensors from 100 to 500. This is to support more reported beads in the CISMM Video Spot Tracker program. 2006-06-21 Russell M. Taylor II * Makefile : Added install and uninstall targets. 2006-06-21 Russell M. Taylor II * vrpn_Configure.h : Added HL library when compiling Phantom driver with HDAPI library. * vrpn_Connection.C : Increased version number. 2006-05-04 David Marshburn * vrpn_Configure.h: undoing the change i accidentally committed. 2006-05-02 David Marshburn * vrpn_Connection.[h,C]: added get_time, which returns the current UTC time in the steam (as opposed to elapsed time, or time since the connection was opened). * vrpn_FileConnection.h: same. 2006-04-03 Russell M. Taylor II * vrpn_Connection.C : Increased version number for new release. 2006-03-13 Russell M. Taylor II * vrpndll.dsp : Added Button_USB and Keyboard_Mouse. * vrpndll.vcproj : Same. 2006-03-13 Russell M. Taylor II * vrpn_Connection.C : Changing version number for new release. 2006-03-13 Russell M. Taylor II * vrpn_Button_USB.cpp : Code from Tom De Weyer to handle USB buttons on Windows. * vrpn_Button_USB.h : Same. * vrpn.dsp : Adding vrpn_Button_USB.cpp and .h. * vrpn.vcproj : Same. * vrpn_Keyboard_Mouse.C : Updates to export analogs rather than tracker. * vrpn_Keyboard_Mouse.h : same. 2006-03-12 Russell M. Taylor II * time_test.cpp : Added type-cast. * vrpn_Keyboard_Mouse.C : Added required library. * vrpn_Tracker_DTrack.C : Changed from WIN to _WIN check. * vrpn.sln : Visual C++ 2005 solution file for VRPN. * *.vcproj : Visual C++ 2005 project files for VRPN. 2006-02-23 David Marshburn * vrpn_FileConnection.C: the bookmarking mechanism used when searching through vrpn logs for start/end times did not correctly handle the end-of-file case (NULL d_currentLogEntry) in the case of !preload and !accumulate. store_stream_bookmark and return_to_bookmark now correctly handle going to/from the end of file (without preload and accumulate). 2006-02-22 David Marshburn * vrpn_Imager.h: added is_description_valid() to vrpn_Imager_Remote. this function says whether the imager has received a description message yet. 2006-02-13 Russell M. Taylor II * vrpn.dsp : Removing vrpn_Router.[hC] * vrpndll.dsp : Same. 2006-02-13 Russell M. Taylor II * vrpn_Router.h : Removing the Sierra Router Server and its associated files. It was coded in a style that used the serial messages directly, rather than defining its own message types. It is no longer being used at UNC, and I don't know that it has ever been used elsewhere. A user asked that it be removed. * vrpn_Router.C : Same. 2006-02-08 Russell M. Taylor II * vrpn_Configure.h : Making the C: drive the default in preparation for release of version 7.00. 2006-01-27 David Marshburn * vrpn_File_Connection.h (get_replay_rate): new. there was no accessor for replay rate, only a way to set it. 2005-12-21 Russell M. Taylor II * vrpn_Connection.C : Added newline to end of error print. * vrpn_raw_sgibox.C : Removed spurious checks that caused compiler warnings under Cygwin. Isn't it great to compile under multiple architectures -- it catches so many silly things! 2005-12-19 Russell M. Taylor II * vrpn_Configure.h : Switching to HDAPI default. * Makefile : Fixed to compile under Cygwin. 2005-12-02 Russell M. Taylor II * vrpn_HashST.h : Removed function setting non-existent member variable. * vrpn_Keyboard_Mouse.C : Moved definitions to make them legal in modern compilers. * vrpn.dsp : Added vrpn_HashST.h to the files. 2005-10-11 Russell M. Taylor II * vrpn.dsp : Adding vrpn_Keyboard_Mouse.[hC] into the build. * vrpn_Keyboard_Mouse.C : Fixing bugs I introduced when making it compile under Linux. * vrpn_Keyboard_Mouse.h : Same. 2005-10-11 Russell M. Taylor II * vrpn_Keyboard_Mouse.h : Lets us use Windows keyboard to fly. From Tom De Weyer at EDM-Uhasselt from Belgium. * vrpn_Keyboard_Mouse.C : Same. * Makefile : Same. 2005-10-10 Russell M. Taylor II * vrpn_Tracker.h : Made some parameters const that can be. * vrpn_Tracker.C : Same. 2005-10-04 Russell M. Taylor II * vrpn_Connection.h : Making a protected method public to expose it; it used to be exposed by calling the same method on the vrpn_Synchronized_Connection class, which no longer exists. 2005-10-04 Russell M. Taylor II * Makefile : Added target for 64-bit Intel-based SGI compilation. 2005-09-30 Russell M. Taylor II MAJOR VERSION NUMBER CHANGED TO 7.0 because the vrpn_ForceDevice protocol values have changed. It is now possible to include trimeshes that are in a tree structure, and move individual ones around, as part of the GHOST build. The HDAPI build still builds, but doesn't have trimeshes in it yet. These changes were sent in by Tom De Weyer's group in Belgium after several rounds of discussion and design. * Makefile : Added vrpn_ForceDeviceServer.[hC} * vrpn.dsp : Same. * vrpndll.dsp : Same (plus added others needed). * vrpn_Configure.h : Rearranged entries. * vrpn_Connection.C : Upgraded version number. * vrpn_DirectXFFJoystick.h : Now derived from ForceDeviceServer, and includes stubbed member functions that needed to be defined. * vrpn_DirectXFFJoystick.C : Same. * vrpn_ForceDevice.h : Redone to enable multiple objects in a hierarchy in the scene. The hierarchy handling stuff on the server side is wrapped into vrpn_ForceDeviceServer. * vrpn_ForceDevice.C : Same. * vrpn_ForceDeviceServer.h : Implements the hierarchy-figuring stuff on the server side. All servers should now derive from this class. * vrpn_ForceDeviceServer.C : Same. * vrpn_HashST.h : Helper class for ForceDeviceServer. 2005-09-29 Russell M. Taylor II * vrpn.dsp : Added the 5DT16 analog and button drivers. 2005-09-29 Russell M. Taylor II * Makefile : Adding 5DT16 driver along with button driver to convert from its analog outputs to button outputs. * vrpn_5DT16.h : Same. * vrpn_5DT16.C : Same. 2005-09-29 Russell M. Taylor II * vrpn.dsp : Added the Microscribe. 2005-09-29 Russell M. Taylor II * vrpn_3DMicroscribe.C : Added driver from Tom de Weyer's group in Belgium for the Microscribe. * vrpn_3DMicroscribe.h : Same. * vrpn_Configure.h : Same. * Makefile : Same, but only works on Unix whereas the scribe only works on Windows and Mac (need to modify things to make it link correctly on these). 2005-09-29 Russell M. Taylor II * vrpn_Tracker_Crossbow.h : Removing a function no longer needed. * vrpn_Tracker_Crossbow.C : Same. 2005-09-28 Russell M. Taylor II * vrpn_3Space.C : Fixing up type-casts. * vrpn_Connection.C : Removing typecasts that are not needed * vrpn_Joylin.C : Fixing type cast that was a bug under the C++ standard, and on some compilers. * vrpn_Tracker_Fastrak.C : Fixing up typecasts. 2005-09-22 Russell M. Taylor II * vrpn.dsw : Modified all applications to also depend on VRPN library, in addition to "make_vrpn_build." This is going to break things for those who want to build DLLs, but not having it meant that the apps would not re-link with the library when only library files were changed. This was debugging hell. 2005-09-22 Russell M. Taylor II * vrpn_ForceDevice.C : Fixed a bug in the line-mode constraint code. Involved remembering lots of linear algebra. Eigenstuff that I always wondered why I would use it when I had it in course. Also modified both line and plane codes to normalize the direction vectors they are passed in. This avoids unexpected scaling of the forces. 2005-09-02 Kalpit Desai * vrpn_Text.h: Modified the signature of send_message() method to expect 4th argument (time stamp) which may be supplied. * vrpn_Text.C: Modified the definition of send_message() method to send the user specified timestamp when supplied. 2005-08-23 Russell M. Taylor II * vrpn_BaseClass.h : Whitespace change. * vrpn_Connection.C : Fixed a bug where a zero-time select() during an interrupt was not setting the stop time, so would return with an inconsistent state. Also, whitespace changes. * vrpn_Shared.h : Whitspace changes. 2005-08-13 David Marshburn * vrpn.dsw: makes vrpn_Phantom project depend on vrpn project 2005-08-05 Kalpit Desai * vrpn_Poser.h: Added register_change_handler routines and vrpn_POSERCB template that provides a way to call back user-routines. * vrpn_Poser.C: Modified handle_change_message routine of server to pack the information in vrpn_POSERCB format and then callback the registered user-routines. 2005-07-23 Russell M. Taylor II * vrpn.dsw : Added a clock drift estimator project to the list of available projects. * vrpn_Connection.C : Modified the getservicename function so that it doesn't seg fault if passed a NULL pointer. 2005-07-14 Russell M. Taylor II * vrpn_Serial.C : Debugged and tested on a mac. Tested on Linux box. Only tested with the serial mouse, so more testing should be done before we're entirely certain that the port worked. 2005-07-09 Russell M. Taylor II * vrpn_Serial.C : Switched over to the termios-style commands from the termio/ioctl() style. This lets things compile on the Mac platform and should retain backwards compatibility with the other Unix/Linux platforms. The code does indeed compile on linux, sgi, and sparc. Not yet tested. 2005-07-07 Russell M. Taylor II * time_test.dsp : Added include directories on $(SYSTEMDRIVE) and lib directories also on $(SYSTEMDRIVE) so that the apps can build correctly with only edits in the vrpn_Configure.h file if things are installed in standard locations. * vrpn.dsp : Same. * vrpn_Configure.h : Same. * vrpndll.dsp : Same. 2005-07-06 Russell M. Taylor II * Makefile : Removed vrpn_Clock.C and .h, which are no longer needed. 2005-07-06 Russell M. Taylor II * vrpn.dsp : Removed vrpn_Clock.C and .h files from those needed. * vrpndll.dsp : Same. * vrpn_BaseClass.C : Removed option to not count an object when doing reference counting. This was only in there for the synchronized connections, which are now gone. * vrpn_BaseClass.h : Same. * vrpn_Clock.C : Removed. * vrpn_Clock.h : Removed. * vrpn_Connection.C : Removed references to vrpn_Clock, and the implementation of vrpn_Synchronized_Connection. This is going to break every server ever compiled for VRPN, but the fix is to change to using a vrpn_Connection wherever there was a vrpn_Synchronized_Connection before. If you were including the parameters for the clock frequency and interval, remove them. * vrpn_Connection.h : Same. * vrpn_ForwarderController.C : Removed Synchronized. * vrpn_Mutex.C : Same. 2005-07-06 Russell M. Taylor II * vrpn.dsp : Adding vrpn_Mouse to Windows build. * vrpndll.dsp : Same. * vrpn_Mouse.C : Modified so that it will compile on Windows. 2005-07-06 Russell M. Taylor II * Makefile : Including vrpn_Mouse class in the server build. * vrpn_Mouse.h : Linux GPM-based mouse driver submitted by Mike Weiblen at 3DLabs. * vrpn_Mouse.C : Same. 2005-07-06 Russell M. Taylor II * vrpn.dsp : Adding Logitech 3DMouse into the Windows build. * vrpndll.dsp : Same. * vrpn_Tracker_3DMouse.C : Switching to C++ type casts and putting in some more to prevent compile-time warnings on Windows. 2005-07-06 Russell M. Taylor II * vrpn_Tracker_3DMouse.C : Driver for Logitech 3D Mouse provided by Jinseok Seo from the VR Lab of POSTECH in Korea. * vrpn_Tracker_3DMouse.h : Same. * Makefile : Added the 3D mouse into the build. 2005-07-06 Russell M. Taylor II * vrpn.dsp : Adding Crossbow into the set of files built into VRPN. * vrpndll.dsp : Same. * vrpn_Tracker_Crossbow.C : Changed warning pragmas to work with VC6.0. 2005-07-06 Russell M. Taylor II * vrpn_Tracker_Crossbow.h : Driver from Chris V. for a Crossbow accelerometer and rate gyro server. * vrpn_Tracker_Crossbow.C : Same. 2005-06-23 Russell M. Taylor II * vrpn_Serial.C : Fixed type on GNUC define pointed out by Chris V. 2005-06-07 Russell M. Taylor II * vrpn_Imager.C : Added transcoding from float32 to uint8 to enable testing the receipt of different image servers. 2005-05-24 Russell M. Taylor II * vrpn_Connection.C : Adds patch for compile on Mac submitted by Patrick Hartling. 2005-05-24 Russell M. Taylor II * vrpn_Clock.h : Added "class" keyword so it would compile on Linux. 2005-05-24 Russell M. Taylor II * vrpn_BaseClass.C : Changes from Jeff Feasel to fix a bug I introduced when I put the reference-counting stuff in without his earlier patch. This makes the Clock object behave differently. It also hides the clock objects away so that users don't create them and cause reference-count problems. Also adds comments describing why we need both unique and non-unique base classes. * vrpn_BaseClass.h : Same. * vrpn_Clock.C : Same. * vrpn_Clock.h : Same. * vrpn_Connection.C : Same. Also bumps minor version number. * vrpn_Connection.h : Same. * vrpn_Forwarder.C : Adds reference-counting to this class, which is not derived from BaseClass. * vrpn_Forwarder.h : Same. * vrpn_ForwarderController.C : Same. * vrpn_ForwarderController.h : Same. * vrpn_Mutex.C : Same. * vrpn_RedundantTransmission.C : Same. * vrpn_SharedObject.C : Same. 2005-05-19 Russell M. Taylor II * Makefile : Removing HMD directory stuff that is no longer useful, and might cause permission problems on builds at UNC. 2005-04-07 Russell M. Taylor II * vrpn_ForceDevice.h : Replaced the callback list code with new code based on the template. This file was missed in the mass conversion 12/14/2004. * vrpn_ForceDevice.C : Same. 2005-04-05 Russell M. Taylor II * vrpn_Configure.h : Moved the location to look for DirectX SDK to where the Feb 2005 installer puts it. This version works with release but not debug code. How Nice of them :-) * vrpn_NationalInstruments.h : Removed a redundant place to store the number of output channels. There is already a member variable for this is the AnalogOutput class; having another one here just causes fragility. * vrpn_NationalInstruments.C : Same. 2005-04-05 Russell M. Taylor II * vrpn_NationalInstruments.C : Marked one particular error return code as not a problem for AO_Configure. This makes the new NI module work like the old NI_Output. It is almost certainly something to fix for real later. * vrpn.dsw : Added dependencies to make the server rebuild when library does. 2005-02-25 Russell M. Taylor II * Makefile : Removed -LANG:std from compile, no streams used in the code anymore. 2005-02-02 Russell M. Taylor II * vrpn_Analog_Output.C : Whitespace change. * vrpn_Analoh_Output.h : Same. * vrpn_Poser_Analog.C : By default, a poser will not send updates until it gets a request from a client. Also, it sends them only when they arrive, not every time through mainloop(). * vrpn_Poser_Analog.h : Same. * vrpn_nikon_controls.h : Guard definitions to enable multiple inclusion. * vrpn_NationalInstruments.C : Replacement for the vrpn_Analog_Output_NI.C file that makes a more- general read/write server. * vrpn_NationalInstruments.h : Replacement for the vrpn_Analog_Output_NI.h file that makes a more- general read/write server. * vrpn.dsp : Modified to use new files. * vrpndll.dsp : Modified to use new files. * Makefile : Changed NI files to NationalInstruments. 2005-02-01 Russell M. Taylor II * Makefile : Added John Stone's definitions to make things compile under 64-bit Linux. 2005-01-26 Russell M. Taylor II * vrpn_BaseClass.C : Removing last vestiges of STREAMS from VRPN. * vrpn_BaseClass.h : Same. * vrpn_Clock.C : Same. * vrpn_Configure.h : Same. * vrpn_Shared.h : Same. 2005-01-11 Russell M. Taylor II * vrpn_Imager.C : Removed all references to the ill-planned RGB and BGR formats. * vrpn_Imager.h : Same. 2004-12-14 Russell M. Taylor II * vrpn_3Space.C : Turned on a higher level of warnings in Windows and then went through and fixed all of the warnings, except a few on FunctionGenerator (which has an uncompleted function) and on Sound (which has a bunch of uncompleted functions). Fixed a few bugs that turned up along the way. Ripped out every trace of iostream (old or new type) from the base library. Also removed VRPN_NO_STREAMS, which was obviated by this. * vrpn_ADBox.C : Same. * vrpn_Analog.C : Same. * vrpn_Analog.h : Same. * vrpn_Analog_5dt.h : Same. * vrpn_Analog_Output_NI.C : Same. * vrpn_Analog_Output_NI.h : Same. * vrpn_Analog_Radamec_SPI.C : Same. * vrpn_BaseClass.C : Same. * vrpn_BaseClass.h : Same. * vrpn_Button.C : Same. * vrpn_CerealBox.C : Same. * vrpn_Configure.h : Same. * vrpn_Connection.C : Same. * vrpn_DirectXFFJoystick.C : Same. * vrpn_Dyna.C : Same. * vrpn_FileConnection.C : Same. * vrpn_Flock.C : Same. * vrpn_FunctionGenerator.C : Same. * vrpn_FunctionGenerator.h : Same. * vrpn_Imager.C : Same. * vrpn_Imager.h : Same. * vrpn_ImmersionBox.C : Same. * vrpn_ImmersionBox.h : Same. * vrpn_Joywin32.C : Same. * vrpn_Joywin32.h : Same. * vrpn_Mutex.C : Same. * vrpn_Poser_Analog.h : Same. * vrpn_Poser_Tek4662.C : Same. * vrpn_Serial.C : Same. * vrpn_Shared.C : Same. * vrpn_Shared.h : Same. * vrpn_SharedObject.C : Same. * vrpn_Sound.C : Same. * vrpn_Spaceball.C : Same. * vrpn_Tng3.C : Same. * vrpn_Tracker_DTrack.C : Same. * vrpn_Tracker_Fastrak.C : Same. * vrpn_Tracker_Liberty.C : Same. * vrpn_UNC_Joystick.C : Same. * vrpn_VPJoystick.C : Same. * vrpn_Wanda.C : Same. * vrpn_Zaber.C : Same. * vrpn_nikon_controls.C : Same. * vrpn_raw_sgibox.C : Same. 2004-12-14 Russell M. Taylor II * vrpn_BaseClass.h : Guarding the #pragma that turns off the warning so that it only happens on Windows, so that the SGI compiler doesn't complain about every file. 2004-12-14 Russell M. Taylor II * vrpn_BaseClass.h : Added a template class to deal with callback list handling. This does not use STL, to avoid the problems with having incompatible STL versions on some systems. It generated a warning message when using DLLs that seemed to make no sense, and the test code still works in DLL mode (tested), so I turned the warning off. This change removes a lot of duplicate code from derived classes, and ensures proper clean-up of lists at destruction. * vrpn_Analog.C : Modified to use templated callbacks. * vrpn_Analog.h : Same. * vrpn_Button.C : Same. * vrpn_Button.h : Same. * vrpn_Clock.C : Same. * vrpn_Clock.h : Same. * vrpn_Connection.C : Same (modified Clock callback). * vrpn_Dial.C : Same. * vrpn_Dial.h : Same. * vrpn_Imager.C : Same. * vrpn_Imager.h : Same. * vrpn_Router.C : Same. * vrpn_Router.h : Same. * vrpn_Text.C : Same. * vrpn_Text.h : Same. * vrpn_Tracker.C : Same. * vrpn_Tracker.h : Same. * vrpndll.dsp : Must have tweaked a compiler flag. 2004-12-08 Russell M. Taylor II * vrpn_Connection.C : Changes from Patrick Hartling to make VRPN compile under FreeBSD. * vrpn_Types.h : Same. 2004-12-07 Russell M. Taylor II * Makefile : Switched out TempImager for Imager * vrpn.dsw : Changed to test_imager from test_tempimager * vrpn_Imager.h : Added #include needed on Unix 2004-12-07 Russell M. Taylor II * vrpn.dsp Added vrpn_Imager.[hC] and removed vrpn_TempImager.[hC]. * vrpndll.dsp Same. * vrpn.dsw Added vrpn_testimager_server.dsp * vrpn_Imager.C Final design, partial implementation of VRPN Imager class. Pulls the image pose out as a separate class and adds throttle capability to the client code (implemented in server by dropping frames rather than sending them). Adds count of frames dropped to alert client application. Adds 12-in-16 data type. Transcoding between types not yet implemented. Client-side selection of data types to send not yet implemented. RGB and BGR packed formats not yet implemented. * vrpn_Imager.h Same. 2004-11-10 Russell M. Taylor II * vrpn_Connection.C : Whitespace changes. 2004-11-03 Russell M. Taylor II * vrpn_Dyna.C : Added changes from Uni-Hamburg to also work with the SeeReal D4D stereo Display, which is an older version. This still works with the newer DynaSight at UNC. * vrpn_Tracker_Liberty.C : Also works with the Patriot, which sends a slightly different record format. This version comes from Uni-Hamburg. Roland Schroeder-Kroll sent these fixes in from Steffi Beckhaus' group there. 2004-11-03 Russell M. Taylor II * Happy Birthday to me! * Makefile : Added John Stone's additions to make it compile on 64-bit Solaris 2004-11-02 Russell M. Taylor II * vrpn_Analog.C : Fixed a bug where a specified time value never got stored into the timestamp before sending. 2004-10-20 David Marshburn * vrpn_TempImager.h: added VRPN_CALLBACK to the friend function declaration of java_vrpn_handle_region_change in vrpn_TempImager_Region 2004-10-05 Russell M. Taylor II * vrpn_Types.h : Added a flag to tell the file not to throw an error when compiled with a C compiler rather than a C++ compiler. Useful to programs that want to hide things behind a C interface. 2004-10-01 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Fixed a crash bug when you didn't have a joystick open. 2004-09-16 Russell M. Taylor II * vrpn_Button.C : Adding a couple more VRPN_CALLBACKs that I thought we didn't need but we do. * vrpn_raw_sgibox.C : same. * vrpn_Configure.h : Changing back to the C: drive for normal users (I've got everything installed on D:). 2004-09-16 Russell M. Taylor II Adding Chris VanderKnyff's changes that enable DLL linkage for applications. Heading towards enabling C# and other language support. * ChangeLog : Fixing date on my earlier message, reordering. * Makefile : Adding new source-code files. * make_vrpn_libs_build.dsp : New project file to make dependency on both VRPN and VRPNDLL. * time_test.dsp : Making it depend on the project that causes both VRPN and VRPNDLL projects to be built, rather than on VRPN. If you try to make it depend on both VRPN and VRPNDLL, you get linking trouble. * vrpn.dsp : Same. Also, defining things needed to make DLL linkage work correctly. * vrpn.dsw : Adding make_vrpn_libs.build project. Adding dependencies. * vrpn_Configure.h : Added an entry for compiling with DLL linkage. Added definitions needed to make this work for the three cases (library DLL, library static, application). * vrpn_Connection.C : Removed iostream. Chris made error output go to stderr rather than stdout. * vrpn_Router.C : Moved external functions into static member functions to avoid cluttering the name space. * vrpn_Types.h : Changed to #error from ad-hoc error generator. * vrpn_3Space.h : Making all classes defined with VRPN_API. Making all callbacks use VRPN_CALLBACK. Making all external functions and structures VRPN_API. * vrpn_ADBox.h : Same. * vrpn_Analog.h : Same. * vrpn_Analog_5dt.h : Same. * vrpn_Analog_Output.h : Same. * vrpn_Analog_Output_NI.h : Same. * vrpn_Radamec_SPI.h : Same. * vrpn_BaseClass.h : Same. * vrpn_Button.h : Same. * vrpn_CerealBox.h : Same. * vrpn_Clock.h : Same. * vrpn_Connection.h : Same. * vrpn_Dial.h : Same. * vrpn_DirectXFFJoystick.h : Same. * vrpn_Dyna.h : Same. * vrpn_FileConnection.h : Same. * vrpn_FileController.h : Same. * vrpn_Flock.h : Same. * vrpn_Flock_Parallel.h : Same. * vrpn_ForeceDevice.h : Same. * vrpn_ForwarderController.h : Same. * vrpn_FunctionGenerator.h : Same. * vrpn_GlobalHapticsOrb.h : Same. * vrpn_ImmersionBox.h : Same. * vrpn_JoyFly.h : Same. * vrpn_Joylin.h : Same. * vrpn_Joywin32.h : Same. * vrpn_LamportClock.h : Same. * vrpn_Log.h : Same. * vrpn_Magellan.h : Same. * vrpn_Mutex.h : Same. * vrpn_Nidaq.h : Same. * vrpn_Poser.h : Same. * vrpn_Poser_Analog.h : Same. * vrpn_Poser_Tek4662.h : Same. * vrpn_RedundantTransmission.h : Same. * vrpn_Router.h : Same. * vrpn_Serial.h : Same. * vrpn_Shared.h : Same. * vrpn_SharedObject.h : Same. * vrpn_Sound.h : Same. * vrpn_Spaceball.h : Same. * vrpn_TemImager.h : Same. * vrpn_Text.h : Same. * vrpn_Tng3.h : Same. * vrpn_Tracker.h : Same. * vrpn_Tracker_AnalogFly.h : Same. * vrpn_Tracker_ButtonFly.h : Same. * vrpn_Tracker_DTrack.h : Same. * vrpn_Tracker_Fastrak.h : Same. * vrpn_Tracker_Liberty.h : Same. * vrpn_Tracker_isense.h : Same. * vrpn_TypeDispatcher.h : Same. * vrpn_UNC_Joystick.h : Same. * vrpn_VPJoystick.h : Same. * vrpn_Wanda.h : Same. * vrpn_Zaber.h : Same. * vrpn_nikon_controls.h : Same. * vrpn_raw_sgibox.h : Same. * vrpn_sgibox.h : Same. 2004-09-15 Russell M. Taylor II * vrpn_Tracker.h : Bumped the maximum number of sensors per tracker from 20 to 100. * vrpn_BaseClass.C : Making the d_servicename and d_connection code only run once for a multiple-inheritance tree. Moved the deletion code into the Unique base class destructor to avoid crashing due to accessing already- deleted connection object. * vrpn_Connection.C : Prettifying. * time_test.dsp : Switching back to DLL-based linkage * vrpn.dsp : Same. 2004-09-01 David Marshburn * vrpn_FunctionGenerator.[h,C]: first commit of a new device type, and function generator * vrpn.dsp: includes function generator files 2004-08-31 Russell M. Taylor II * vrpn_Serial.C : Added John Stone's fix to make it compile on macs. 2004-08-31 Russell M. Taylor II * Makefile : Adding build for vrpn_Poser_Tek4662 in server library. * time_test.dsp : Changing code generation to use multithreaded non-DLL for both debug and release. This turns out to have always been the proper setting to use. Unfortunately, all apps have to be rebuild with new settings, and all libraries have to use the same setting. * vrpn.dsp : Same. * vrpn_Analog.C : Whitespace changes. * vrpn_Poser.C : Same. * vrpn_Poser.h : Same. * vrpn_CerealBox.C : Comment correction. * vrpn_Connection.C : Setting values to NULL to avoid multiple deletion attempts on clock object at shutdown. * vrpn_Serial.C : Declared const parameter when appropriate. * vrpn_Serial.h : Same. * vrpn_Nikon_Controls.C : Error message correction. * vrpn_Nikon_Controls.h : Uppercased "com1" for Windows. 2004-08-06 Russell M. Taylor II Adding changes made by Jeff Feasel to include reference counting in the vrpn_Connection object so that they would be deleted when all objects using them are deleted (and when all objects opening them with vrpn_get_connection_by_name() remove their references. * vrpn_BaseClass.C : Adds reference-counting for vrpn_Connections. * vrpn_Clock.C : Same. * vrpn_Connection.C : Same. * vrpn_Connection.h : Same. * vrpn_Mutex.h : Same. Also fixed a bug whereby the number of allocated connections was not being properly incremented. 2004-08-05 Russell M. Taylor II * vrpn.dsp : Adds possibility that NI files are on D: * vrpn_Button.C : Moving global constants not starting with vrpn_ from header file to source file. * vrpn_Button.h : Same. 2004-08-05 Russell M. Taylor II Changes submitted by Kurt Achatz at A.R.T. * Makefile : Adding vrpn_Tracker_DTrack.[Ch] to server. * vrpn_Analog.C : Fixing time-comparison bug. * vrpn_Configure.h : No longer need to configure the DTrack driver -- all needed files are built in. * vrpn_Tracker_DTrack.C : Updated to not switch target ID numbering. Now supports up to for A.R.T. Flysticks. * vrpn_Tracker.DTrack.h : Same. 2004-07-27 Russell M. Taylor II * vrpn_FileConnection.C : Made all of the deletes for arrays of characters use the [] version of delete on (char *). Very scary that it didn't used to do this. 2004-07-27 Russell M. Taylor II * Makefile : Adding in recent files. Deleting commented-out rules. * vrpn_Poser.C : removing unused variables. * vrpn_Poser.h : Adding newline at end of file. 2004-07-22 Russell M. Taylor II * vrpn.dsw : Added project file for forcedevice test client. * vrpn_Configure.h : Added entry for using the HDAPI library from SensAble Technologies in place of the older GHOST library. 2004-07-07 Russell M. Taylor II * vrpn_Connection.C : Added port number to printed comment. 2004-06-11 Russell M. Taylor II * vrpn_Configure.h : Turns off streams when compiling for the Phantom server. * vrpn_TempImager.C : Adds functions to send using pointers to the data to be sent, rather than pointer to the whole image. Added functions to set the resolution and range. * vrpn_TempImager.h : Same. Increased number of channels. 2004-05-23 Russell M. Taylor II * vrpn_Analog_Output_NI.C : Removed debug print statements. * vrpn_Poser_Analog.C : Changed the parameters so that it can use a different analog output device for each channel. This is going to break code that uses the Posers, but it was needed to split it up for the case where some channels were driven by one device and others by a different device. It now behaves more like an AnalogFly in terms of parameters. * vrpn_Poser_Analog.h : Same. 2004-05-22 Russell M. Taylor II * vrpn_Analog_Output_NI.h : Analog output that uses National Instruments board. * vrpn_Analog_Output_NH.C : Same. * vrpn.dsp : Added NI-DAQ to library path, files to project. Enable/disable using vrpn_Configure.h. * vrpn.dsw : Added tracker_to_poser project (client_src). * vrpn_Configure.h : Added entry for National Instruments board. Also loads libraries if NI is configured. * vrpn_Poser.C : Made several things const that should have been. * vrpn_Poser.h : Same. * vrpn_Poser_Analog.C : Added comment. * vrpn_TempImager.C : Checks to make sure we have sent the description before sending any regions. Removed an unused parameter. * vrpn_TempImager.h : Added comments for improvements. Added some functions. Still a work in progress. 2004-05-05 Russell M. Taylor II * vrpn_TempImager.C : Implemented another of the decode functions. 2004-04-22 Russell M. Taylor II * vrpn_ButtonC : Modified the reset command for the Pinchglove so that it works more reliably (fixed timeout bug and reworked logic). Tested by offsite user who had problems with the original version. * vrpn_ForceDevice.C : Making it compile under Cygwin. * vrpn_Serial.C : Making it compile undre Cygwin. * vrpn_Tracker.h : Describing the format of the values to be returned. * vrpn_Types.h : Making it compile under Cygwin. 2004-04-15 Russell M. Taylor II * vrpn_Button.h : Returns the port argument for the parallel button device to an int to make error checking work. Points to the web page where the Python button is described. 2004-04-13 David Marshburn * vrpn_FileConnection.h: adds new data members to track earliest and latest user-message times and functions for finding these times. Adds a function, jump_to_filetime, that jumps the current time in a vrpn stream to a specified absolute time. Adds an internal class, vrpn_FileBookmark, used when jumping around in a stream. * vrpn_FileConnection.C: this should no longer cause repeated or missed message when (internally) jumping around in streams. Also, elapsed time is computed based on the earliest-timed user message. As a result, functions that query elapsed time or stream length will cause vrpn to examine the entire stream once. 2004-04-08 Russell M. Taylor II * vrpn_Shared.C : Added check for old/new streams. * vrpn_BaseClass.C : Same. 2004-04-08 Russell M. Taylor II * Makefile : Adding flag to SGI compile in the hope that it would fix things and let us use the new streams libraries. It got us part of the way there on my system. * vrpn_BaseClass.C : Added Patrick Hartling's changes to make VRPN compile with Visual Studio.NET, which required switching to new streams, which required retrofitting SGIs to use old streams (using yet another define in vrpn_Configure.h). * vrpn_BaseClass.h : Same. * vrpn_Clock.C : Same. * vrpn_Configure.h : Same. * vrpn_Connection.C : Same. * vrpn_ImmersionBox. : Same. * vrpn_Shared.C : Same. * vrpn_TempImager.h : Same. * vrpn_Tng3.C : Same. * vrpn_Tracker_AnalogFly : Adding Patrick Hartlings changes to make it compile with Visual Studio.NET, in this case a type cast to let the compiler know which function to call. * vrpn_Tracker_ButtonFly : Same. 2004-04-07 Russell M. Taylor II * vrpn_Shared.C : Modified all of VRPN to use calls to a new function vrpn_gettimeofday() rather than the standard gettimeofday() to avoid exporting gettimeofday(). On all but Windows with WINSOCK, this is defined back to gettimeofday(). On Windows with WINSOCK, it is the function that implements gettimeofday(). By editing a flag in vrpn_Configure.h, VRPN will still export gettimeofday; otherwise, it no longer does on any operating system. * vrpn_Shared.h : Same. * vrpn_Configure.h : Modified to include an optional parameter that will export vrpn_gettimeofday() as gettimeofday() and also 'struct timezone' when it is set, but not otherwise. * time_test.cpp : Using vrpn_gettimeofday() not gettimeofday() * vrpn_3Space.C : Same. * vrpn_ADBox.C : Same. * vrpn_Analog.C : Same. * vrpn_Analog_3dt.C : Same. * vrpn_Analog_Output.C : Same. * vrpn_Analog_Radamec_SPI.C : Same. * vrpn_BaseClass.C : Same. * vrpn_Button.C : Same. * vrpn_CerealBox.C : Same. * vrpn_Clock.C : Same. * vrpn_Connection.C : Same. * vrpn_Dial.C : Same. * vrpn_DirectXFFJoystick.C : Same. * vrpn_Dyna. : Same. * vrpn_FileController.C : Same. * vrpn_Flock.C : Same. * vrpn_Flock_Parallel.C : Same. * vrpn_ForceDevice.C : Same. * vrpn_ForewardController.C : Same. * vrpn_GlobalHapticsOrb.C : Same. * vrpn_ImmersionBox.C : Same. * vrpn_Joylin.C : Same. * vrpn_Joywin32.C : Same. * vrpn_Magellan.C : Same. * vrpn_Mutex.C : Same. * vrpn_Nidaq.C : Same. * vrpn_Nidaq.h : Same. * vrpn_Poser.C : Same. * vrpn_Poser_Analog.C : Same. * vrpn_RedundantTransmission.C : Sam.e * vrpn_Router.C : Same. * vrpn_Serial.C : Same. * vrpn_SharedObject.C : Same. * vrpn_Sound.C : Same. * vrpn_Spaceball.C : Same. * vrpn_TempImager.C : Same. * vrpn_Text.C : Same. * vrpn_Tng.C : Same. * vrpn_Tracker.C : Same. * vrpn_Tracker_AnalogFly.C : Same. * vrpn_Tracker_ButtonFly.C : Same. * vrpn_Tracker_DTrack.C : Same. * vrpn_Tracker_Fastrak.C : Same. * vrpn_Tracker_Liberty.C : Same. * vrpn_Tracker_isense.C : Same. * vrpn_UNC_Joystick.C : Same. * vrpn_Wanda.C : Same. * vrpn_Zaber.C : Same. * vrpn_nikon_controls.C : Same. * vrpn_FileConnection.C : Same. Also, modified some calls to advance_currentLogEntry() so that they were function calls so that the code would compile. Not sure how they compiled before... 2004-03-21 Russell M. Taylor II * vrpn_CerealBox.C : Fixed a bug that encoded the negative tick incorrectly. * vrpn_Joywin32.h : Added credits. * vrpn_Tracker.C : Closes the serial device when the tracker's destructor is called. * vrpn_Tracker.h : Same. 2004-02-16 Russell M. Taylor II * vrpn_Connection.C : Closes file handle that is no longer needed. * vrpn_RedundantTransmission.C : Same. * vrpn_FileConnection.h : Added three new global flags that control the state of buffering when a FileConnection reads a log file. PRELOAD controls whether it grabs the whole file into memory when it starts. ACCUMULATE controls whether it keep the file in memory as it reads it. SKIP_TO_USER_MESSAGES tells whether it should jump over all initial system messages in a file when it is loaded or rewound. * vrpn_FileConnection.C : Major changes throughout to implement the flexibility described above. Also lots of code factoring and consolidation so that there is only one function to do each particular operation that is called by all other functions requiring the operation. Tested with Nano, Video_spot_tracker, and vrpnLogToMatlab in several different states of operation. 2004-02-12 Russell M. Taylor II * vrpn_Tracker_isense.C : Added change by David Nahon to make the units correct (meters rather than centimeters). 2004-02-12 Russell M. Taylor II * vrpn.dsw : Removed separate library for DTrack. * vrpn_Tracker.DTrack.C : Includes the necessary .c file from dtracklib to avoid having to load a library. 2004-02-12 Russell M. Taylor II * vrpn.dsp : Told the release version where to find Dtrack.h. * vrpn_Tracker_DTrack.C : Modified the order of includes so that it can compile properly when VRPN_USE_DTRACK is defined. Initialized some member variables correctly. * vrpn_Tracker.DTrack.h : Same. 2004-02-12 Russell M. Taylor II Adding changes from David Nahon at Virtools. * vrpn.dsp : Added DTrack files and includes and project. * vrpn.dsw : Same. * vrpn_Configure.h : Added configuration setting to enable building the DTrack code from Advanced Realtime Tracking CmbH. * vrpn_Tracker_isense.C : Modified this to return the orientation with the axes permuted in a way that makes it match what other trackers report. 2004-02-04 David Marshburn * vrpn_Connection.C (handle_sender_message): auto-registers unknown senders. 2004-01-28 Russell M. Taylor II * vrpn_Tracker.C : Added initialization of the watchdog timer in the constructor to keep it from accidentally taking over and causing infinite-reset problems on all but the Liberty. 2003-12-17 Russell M. Taylor II * vrpn_Flock.h : Added an optional flag to tell whether to invert the Quaternion orientation report before sending it back. This has been done always in the past, but it was probably a hack to make the sensors work in the wrong hemisphere. * vrpn_Flock.C : Same. * vrpn_Flock_Parallel.h : Same. * vrpn_Flock_Parallel.C : Same. 2003-12-11 Russell M. Taylor II * vrpn_Analog_5dt.h : Added optional parameter to make it try 10 bytes per message rather than 9. This is because one group has one that does this. * vrpn_Analog_5dt.C : Same. Also fixed some bugs reported by Sebastien Maraux. 2003-12-11 Russell M. Taylor II * vrpn_Serial.h : Added calls to raise and lower RTS line. Should work on Windows. Not sure it will work on Linux/Unix. Not tested on any. * vrpn_Serial.C : Same. * vrpn_Flock.C : Changed to use the new RTS raise/lower calls in vrpn_Serial.C to reset the tracker. This should enable Flocks to work even with serial connectors that have all the wires connected. 2003-12-10 Russell M. Taylor II * vrpn_Clock.C : Plugging memory leaks. * vrpn_Connection.C : Plugging memory leaks. 2003-12-10 Russell M. Taylor II * vrpn_Tracker_Liberty.h : Adds driver submitted by Daniel Myall from Westco for the Polhemus Liberty tracker. * vrpn_Tracker_Liberty.C : Same. * vrpn_Tracker.h : Same. * vrpn_Tracker.C : Same. * vrpn.dsp : Same. * Makefile : Same. 2003-11-22 Russell M. Taylor II * vrpn_Analog.C : report() : Added parameter to tell the timestamp that should be used by the Analog for the report. Both for vrpn_Analog and vrpn_Analog_Server. : report_changes() : Same. * vrpn_Analog.h : Same. Also added default time parameter. Also re-ordered where include files happen. 2003-11-17 Russell M. Taylor II * vrpn_Tracker.h : Modified so that you can set the class of service in the vrpn_Tracker_Server. * vrpn_Tracker.C : Same. 2003-11-14 Russell M. Taylor II * vrpn_Configure.h : I messed up the commented-out config for UNC with the last commit. Fixed here. 2003-11-14 Russell M. Taylor II * vrpn_Connection.C : Compiler warning on SGI caught this! There was an = rather than == where we were checking for the existence of a local type. No harm done, but this avoids extra checking. 2003-11-14 Russell M. Taylor II * vrpn_Connection.C : Exposing constructor with stern warning against using it. 2003-11-14 Russell M. Taylor II * vrpn_Flock.C : Added changes so that the use o the extended-range transmitter is optional, rather than required as it was before. * vrpn_Flock.h : Same. 2003-11-14 Russell M. Taylor II * vrpn_Tracker_isense.C : Added changed by David Nahon that lets the user specify whether to do a boresight reset at startup. Also changes the sensor numbers to be zero-indexed like all other VRPN trackers. Also changes units to meters and radians to match other VRPN trackers. * vrpn_Tracker_isense.h : Same. 2003-11-05 Russell M. Taylor II * vrpn_Configure.h : Changes the default port number one more time, to the one given to us by the Internet Address Naming Authority. 2003-10-31 David Marshburn * vrpn_Connection.h (vrpn_Endpoint): new methods setConnection and getConnection, and a new data member d_parent of type vrpn_Connection*. * vrpn_Connection.C (vrpn_Endpoint::handle_type_message): message type auto-registration. If the type from the remote side is unknown, register the type locally. This enables generic stream examiners and editors. (vrpn_Connection::connect_to_client): call vrpn_Endpoint:: setConnection after creating an endpoint. (vrpn_Connection::vrpn_Connection): same (vrpn_Connection::server_check_for_incoming_connections): same 2003-10-17 Russell M. Taylor II * vrpn_Tracker.C : Fixed a bug that was added in the code that unregisters handlers in the destructor. It needed to pass another parameter, which it does here, to work in the general case. This bug caused nano to hang at exit, repeatedly tryin to unregister the same (wrong) handler. 2003-09-26 Matt Harvey * Makefile : Added VPJoystick driver. * vrpn.dsp : Same. * vrpn_VPJoystick.h : Driver for a commercial joystick. * vrpn_VPJoystick.C : Same. * vrpn_raw_sgibox.C : Modified to remove #defines from the header file that didn't start with vrpn_ * vrpn_raw_sgibox.h : Same. 2003-09-26 Russell M. Taylor II * vrpn_Connection.h : Rearranged order of functions so that it would compile on HPUX. * vrpn_ForceDevice.C : Made it compile on HPUX. * vrpn_ForceDevice.h : Rationalized const vs. non-const params. * vrpn_Shared.h : Moved hack to make it compile on HPUX. 2003-09-26 Russell M. Taylor II * time_test.cpp : Compiles without warnings (commented out unused variables). * time_test.dsp : Making it build on Release setting. * vrpn_ForceDevice : Changed types to prevent compiler warnings. 2003-09-26 Russell M. Taylor II * vrpn_Tracker.C : Cleans up memory in the destructor to prevent it leaking when remote tracker objects are created and destroyed. 2003-09-26 Sebastien MARAUX * vrpn_ForceDevice.C : Added custom effect to ForceDevice, in particular a buzzing effect whose amplitude and frequency can be set. * vrpn_ForceDevice.h : Same. * vrpn_Serial.C : Change to make it compile on SGI. 2003-09-17 Russell M. Taylor II * vrpn_Tracker_isense.h : Fixing things that broke the build. Bad Russ. No Cookie! * vrpn_Tracker_isense.C : Same. Still no cookie. 2003-09-16 Blair MacIntyre * vrpn_Tracker_isense.h : Added code to add Wands and other devices to the tracker like the Fastrak version of the Intersense driver could. * vrpn_Tracker_isense.C : Same. 2003-09-02 Blair MacIntyre * Makefile : Makes it work on MacOSX with Intersense. * vrpn_ADBox.C : Compiles on Mac. * vrpn_Serial.C : Compiles on Mac. * vrpn_Tracker_isense.C : Calls required function in constructor. * vrpn_Tracker_isense.h : Works on Mac. 2003-08-26 Russell M. Taylor II * vrpn.dsp : Includes the new files for Joywin32. 2003-08-26 Russell M. Taylor II * vrpn_Serial.C : Added include needed on Linux * vrpn_Joywin32.C : Code from Sebastien Maraux to read from joysticks without going through DirectX. * vrpn_Joywin32.h : Same. 2003-08-07 Russell M. Taylor II * vrpn_Shared.C : Removed #ifdef'd out code. 2003-08-07 Russell M. Taylor II * vrpn_Shared.C : Fixed the code that handles high-resolution Windows timing. This version always has time moving forwards. * time_test.cpp : Modified to test the monotonicity of time. * time_test.dsp : Same. * vrpn.dsw : Same. 2003-08-04 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Made not crash when it couldn't open a joystick. 2003-07-31 Russell M. Taylor II * vrpn_Connection.C : Prints a more useful error message when the bind() function call fails. 2003-07-24 Russell M. Taylor II * vrpn_Configure.h : Added configurable default port, no longer set to 4500 (which is being used by VPN and Microsoft). * vrpn_Connection.h : Same. * vrpn_Connection.C : Uses non-interruptable version of select, which is more general for apps that have interrupts. * vrpn_Serial.C : Switches to interrupt-savvy version of read. 2003-07-24 Matt McCallus * vrpn_Sound.C : Added a "look at/look up" call for setting orientation, rather than quaternions. Later will either remove quaternion one or (better) reimplement in terms of at/up (or vice-versa). * vrpn_Sound.h : Same. 2003-07-21 Sascha Scholz * Makefile : Removed un-needed include directories that caused problems with non-standard Linux compiler installation. 2003-07-15 Russell M. Taylor II * vrpn_Button.C : Turns on a second bit to work with the HiBall. This is a fix from Ben Elgin. 2003-07-15 Russell M. Taylor II * vrpn.dsp : Added support for compiling ADBox/CubicMouse driver. * vrpn_ADBox.C : Removed definitions that exclude Windows. 2003-07-07 Sascha Scholz * Makefile : added ADBox/CubicMouse driver * vrpn.C : Same. * vrpn_ADBox.C : Same. * vrpn_ADBox.h : Same. 2003-06-20 David Marshburn * vrpn_Configure.h: adds a (commented-out) option to use Ghost 3.1 2003-06-20 Russell M. Taylor II * vrpn_Configure.h : Removed syntax error that kept it from compiling. 2003-06-20 Russell M. Taylor II * vrpn.dsp : Changes to include Intersense files in ../isense. * vrpn_Configure.h : Describes how to link with InterSense library. * vrpn_Tracker_isense.C : Updated to newer version of InterSense library. Now works with USB trackers. 2003-05-30 David Marshburn * vrpn_Configure.h: change the default path for the Ghost library to point to version 4.0. 2003-05-21 David Marshburn * vrpn_Connection.C: (vrpn_Endpoint::setLogNames): set the in or out log-file name only if each is non-NULL (vrpn_Connection::handle_log_message): correctly handle the case in which only one log file has been requested (in or out). previously assumed both would be requested. 2003-05-05 Russell M. Taylor II * vrpn_TempImager.C : Fixes bug by which a new imager client would not get the region description message, causing it to never get region callbacks. 2003-05-01 Russell M. Taylor II * vrpn_Configure.h : Added configuration entry for Intersense driver. * vrpn_Tracker_isense.C : Made it include the Intersense-supplied C file that interacts with the DLL code. Note that this does not compile with the currently-supplied SDK from InterSense. I don't have any trackers to test it on if I mess with it, so decided to leave it alone. 2003-04-29 Russell M. Taylor II * vrpn_raw_sgibox.C : Fixed bug on analog code that read from the dials, where the 16-bit integer was not read in the correct order and not sign-extended. Added Dial interface, so that the dial box reports both analog and dial values. * vrpn_raw_sgibox.h : Same. 2003-04-24 Russell M. Taylor II * vrpn.dsw : Removed phan_server project. Added vrpn_phantom.lib dependency to the vrpn_server project. * vrpn_Configure.h : Added configuration for using Phantom. 2003-04-01 Russell M. Taylor II * vrpn_Configure.h : Added definitions to control which version of the system clock is used in Windows. * vrpn_Shared.C : Added Haris' code to use the system performance clock, guarded by VRPN_WINDOWS_CLOCK_V2. Tested using the Analogfly test program. * vrpn_Tracker_AnalogFly.C : Comment change. 2003-01-21 Russell M. Taylor II * vrpn_Configure.h : Put back the uncommented #pragma for library loads and added comments describing how to change them in the future. * vrpn_DirectXCCJoystick.C : Added casts to get rid of compiler warnings, white space changes, comments. * vrpn_Shared.h : Uncommented definition in Windows CE compile. 2003-01-15 Alexandra Bokinsky * vrpn_Configure.h : Commented out DirectX library load #pragmas. * vrpn.dsw : Added force-feedback joystick server. * vrpn_Shared.h : Commented out definition for Windows CE compile. * vrpn_DirectXFFJoystick.C : Changed startup parameters for force and made the force command average the last three values before sending them to the joystick. 2003-01-12 Russell M. Taylor II * vrpn_GlobalHapticsOrb.C : Server for the Global Haptics GeoOrb device. * vrpn_GlobalHapticsOrb.h : Same. * vrpn_Tracker_ButtonFly.C : Server for a device that lets you fly or teleport using button devices. * vrpn_Tracker_ButtonFly.g : Same. * Makefile : Adding GlobalHapticsOrb and ButtonFly servers. * vrpn.dsp : Same. * vrpn_Tng3.h : Comment fix. * vrpn_Tracker_AnalogFly.C : Switched to autodeleted handler, rather than registering and unregistering the handler. 2003-01-08 Russell M. Taylor II * vrpn_Tracker_Fastrak.C : Installing fix from Sascha Scholz to make the fastrak work with a fastrak stylus. I couldn't test the code I put in the previous commit. 2003-01-02 David Marshburn * vrpn_Analog_Output.h: uniform formatting, new data members for num-channel report and new-connection message types, plus: (vrpn_Analog_Output::getNumChannels): new (vrpn_Analog_Output::encode_to): removed, unused. (vrpn_Analog_Output_Server::setNumChannels): note about expected use. (vrpn_Analog_Output_Server::vrpn_Analog_Output_Sever): added a third parameter which specifies the number of active channels. defaults to vrpn_CHANNEL_MAX. (vrpn_Analog_Output_Server::handle_got_connection): new (vrpn_Analog_Output_Server::report_num_channels): new (vrpn_Analog_Output_Server::encode_num_channels_to): new (vrpn_Analog_Output_Remote::handle_report_num_channels): new * vrpn_Analog_Output.C: the functions noted above, plus: (vrpn_Analog_Output::register_types): register "number of channels" and "new connection" message types. (vrpn_Analog_Output_Server::vrpn_Analog_Output_Server): register handler for new-connection messages. (vrpn_Analog_Output_Server::handle_request_message): sends a text error message to the client if it tries to set an invalid/inactive channel. (vrpn_Analog_Output_Server::handle_request_channels_message): same. also catches the case in which the number of channels to change is negative. (vrpn_Analog_Output_Remote::vrpn_Analog_Ouput_Remote): register handler for "number of active channels" message. (vrpn_Analog_Output_Remote::request_change_channels): uses a statically declared buffer instead of one dynamically declared. 2003-01-02 David Marshburn * vrpn_Analog.h: (vrpn_Analog::getNumChannels): new (vrpn_Analog_Server::numChannels): removed (vrpn_Analog_Server::setNumChannels): added a note about expected use. (vrpn_Analog_Server::vrpn_Analog_Server): added a third parameter which specifies the number of active channels. defaults to vrpn_CHANNEL_MAX. (vrpn_Clipping_Analog_Server::vrpn_Clipping_Analog_Server): same * vrpn_Analog.C: changes corresponding to the above, plus: (vrpn_Analog::encode_to): initializes buflen correctly, to be of size vrpn_CHANNEL_MAX+1. Also, uses sizeof(vrpn_float64) instead of sizeof(double). (vrpn_Analog::report): create the buffer to be of length vrpn_CHANNEL_MAX+1. (vrpn_Analog_Remote::handle_change_message): updates num_channel 2002-12-21 Russell M. Taylor II * vrpn_Tracker_Fastrak.h : Added return type to member function. * vrpn_DirectXFFJoystick.h : Added newline at end of file. 2002-12-21 Russell M. Taylor II * vrpn_Tracker_Fastrak.h : Added Deepak's code to handle the fastrak with a stylus that has a button. * vrpn_Tracker_Fastrak.C : Same. * vrpn_UNC_Joystick.h : Changed return type to say if got report. * vrpn_UNC_Joystick.C : Changed server to read multiple reports from the joystick if they are available. 2002-12-06 Russell M. Taylor II * vrpn_TempImager.h : Removed duplicate definition. Note to self, always try compiling after update before commit. 2002-12-06 Russell M. Taylor II * time_test.dsp : DSP files have been modified to not do definitions of VRPN_NO_STREAMS and other constants directly, rather these are now set by editing vrpn_Configure.h. Also, made projects compile in both debug and release versions. * vrpn.dsp : Same. * vrpn.dsw : Removed vrpn_server_with_timecode project because you can now build vrpn_server.exe with the proper definition in the vrpn_Configure.h file to do this. * vrpn_Analog.h : Added structure names to help offsite users not have to include all of the VRPN header files when building. * vrpn_Button.h : Same. * vrpn_Clock.h : Same. * vrpn_Dial.h : Same. * vrpn_ForceDevice.h : Same. * vrpn_Router.h : Same. * vrpn_Text.h : Same. * vrpn_Tracker.h : Same. * vrpn_Analog_Output.h : White space changes. * vrpn_Connection.C : Modified the read-with-timeout routine to try and read all characters at once; should only be used with a socket. Removed commented-out printfs. Whitespace changes. * vrpn_Connecton.h : Comment change. * vrpn_DirectXFFJoystick.C : Reordered #includes to work with the vrpn_Configure.h file. Comment corrections. Made the joystick opened for exclusive access even if it is only going to be used as a joystick (was causing problems with VMD, which also opened the joystick and then the two programs would fight over it. * vrpn_DirectXFFJoystick.h : Reordered #includes to work with vrpn_Configure.h. * vrpn_Poser.C : Removed reporting calls that were duplicates of the vrpn_Tracker calls. Now a server that wants to report its poses should use a vrpn_Tracker to report them and the Poser only to set them. * vrpn_Poser.h : Same. Whitespace changes. * vrpn_Poser_Analog.C : Modified to work with the reduced-function vrpn_Poser class: now opens a vrpn_Tracker as well to report the new poses. * vrpn_Poser_Analog.h : Same. * vrpn_TempImager.C : Changed all member variables to begin with "d_" rather than just "_" ("_" violates C++ rules). * vrpn_TempImager.h : Same. * vrpn_Types.h : Includes vrpn_Configure.h (so that it will be included by every VRPN include file). 2002-11-25 * vrpn_TempImager.C: makes the function java_vrpn_handle_region_change a friend of class vrpn_TempImager_Region (so it can copy directly from the value array). Also, moves the declarations of vrpn_IMAGERREGIONCB, vrpn_IMAGERREGIONHANDLER and vrpn_IMAGERDESCRIPTIONHANDLER forward in the file. 2002-11-24 Russell M. Taylor II * vrpn_Analog.C : Inlined the channels() function. * vrpn_Analog.h : Same. * vrpn_Connection.h : Whitespace changes. * vrpn_Shared.C : changed variables to constants for speed. * vrpn_TempImager.C : Major modifications to reduce the number of copies from three down to one when going through the imager. On the server side, there is a reformatting copy into a buffer for VRPN, then the VRPN buffer copy. On the client side, there is a reformatting copy right from the VRPN buffer. Made it so that several different message types can be sent for regions; the receiver code will do transcoding to make it right (not yet implemented). Uses memcpy() when it can to increase throughput. Several functions collapsed into send_region_using_base_pointer(). * vrpn_TempImager.h : Same. 2002-11-20 Russell M. Taylor II * vrpn_Connection.h : Made Connection constructor public. 2002-11-15 Russell M. Taylor II * Makefile : Changes to work with Cygwin on Windows 2000. 2002-11-14 Russell M. Taylor II * vrpn_Shared.h : Added const boolean vrpn_big_endian that tells if the machine the program is running on is big-endian. * vrpn_TempImager.h : Uses memcpy() on little-endian machines to copy data, rather than vrpn_buffer() and vrpn_unbuffer(). This switches the endian-ness from normal VRPN, but makes the copies much faster. * vrpn_testimager_client.C : Increased the sleep length to make the image reads faster when both client and server are on the same machine. 2002-11-13 Russell M. Taylor II * Makefile : Added vrpn_Analog_Output.[Ch] to server build. 2002-11-13 Russell M. Taylor II * Makefile : Put back in 'endif' that was deleted by accident. 2002-11-13 Russell M. Taylor II * Makefile : Inserted changes from John Stone to make the code compile on Mac's running OS/X. * vrpn_Connection.C : Changed function return type in declaration to match definition. Added things from John Stone that make it compile on Mac's running OS/X. * vrpn_Connection.h : Changed function declaration types to match function definition. * vrpn_Serial.C : Added changes by John Stone to make it compile on Mac's running OS/X. * vrpn_Shared.C : Same. * vrpn_Types.h : Same. 2002-10-27 Charalampos Fretzagias * vrpn_TempImager.C : The 16bit version of fill_region will no longer use offset or scale unless they are really needed * testimager_client.C : Added some optimizations, removed call to glutPostRedisplay() which has some bug. It will also not sleep when idle. 2002-09-27 Russell M. Taylor II * vrpn.dsw : Adds testimager_client project from client_src. 2002-09-26 Russell M. Taylor II * Makefile : Added to compile on ARM * vrpn_TempImager.C : Added include needed on Linux. 2002-09-26 Russell M. Taylor II * vrpn_Magellan.h : Added 'altreset' parameter to constructor. * vrpn_Magellan.C : Alternate reset command for older Magellans added. 2002-09-26 Russell M. Taylor II * vrpn_TempImager.h : Only send region message to user if description gotten. * vrpn_TempImager.C : Same. 2002-09-19 David Borland * vrpn_Tracker.C : implemented the request_workspace method in vrpn_Tracker_Remote. 2002-09-18 David Borland * vrpn_Analog_Output.C : wasn't regestering callbacks in the sample server. Changed this. 2002-09-18 Russell M. Taylor II * vrpn_Analog_Output.h : Comment changes, cosmetic changes. * vrpn_Analog_Output.C : Cosmetic changes. * vrpn_Zaber.C : Switches to using vrpn_Analog_Output (multi-channel). * vrpn_Zaber.h : Switches to using vrpn_Analog_Output (multi-channel). * vrpn_nikon_controls.C : Switches to using vrpn_Analog_Output. * vrpn_nikon_controls.h : Switches to using vrpn_Analog_Output. 2002-09-18 David Borland * vrpn_Poser.C : cosmetic changes * vrpn_Poser_Analog.C : wasn't registering callbacks. Changed this. 2002-09-17 Russell M. Taylor II * vrpn_Serial.C (vrpn_flush_input_buffer) : Changed to return 0 or -1 on Windows the same way it does on Unix. 2002-09-13 David Borland * vrpn_Poser.[Ch] : Changed some data member names so that if we want to derive from a poser and a tracker, there won't be a naming ambiguity. Made some small changes to the Poser_Server sample class. Added print functions. * vrpn_Poser_Analog.[Ch] : Changed so that the Poser_Analog is now derived from Poser, not Poser_Server. Poser_Server is only a sample server. 2002-09-13 David Borland * vrpn_Analog_Output.[Ch] : Minor changes to the sample vrpn_Analog_Output_Server class 2002-09-12 David Borland * vrpn_Analog_Output.[Ch] : New classes for analog devices that write values. vrpn_Analog was getting overloaded with both input and output functions, so these have been factored into the old vrpn_Analog, which does analog input, and the new vrpn_Analog_Output, which does analog output. * vrpn_Analog.[Ch] : took out the output functionality * vrpn_Poser_Analog.[Ch] : changed so that it now uses a vrpn_Analog_Output_Remote * vrpn_Zaber.[Ch] : now derived from vrpn_Serial_Analog and vrpn_Analog_Output * vrpn_nikon_controls.[Ch] : now derived from vrpn_Serial_Analog and vrpn_Analog_Output * vrpn.dsp : added the vrpn_Analog_Output files 2002-09-11 David Marshburn * vrpn_TempImager.h (getNumVals): new, returns the number of entries in the 'vals' array. 2002-09-07 Russell M. Taylor II * vrpn_TempImager.h : Changed a lot a debugged to make test program work. * vrpn_TempImager.C : Same. 2002-09-06 David Borland * vrpn_Poser_Analog.[Ch] : Changed the Poser_Analog to have a vrpn_Analog_Server member instead of a vrpn_Analog_Remote. Therefore, the server code must open up a vrpn_Analog_Remote connection. This seems counter-intuitive, but it is correct for the Poser, since we are sending analog values, not receiving them. 2002-09-04 Russell M. Taylor II * vrpn_TempImager.h : Temporary Imager class until the new cool one arrives. Not yet tested, but compiles on PCs and SGIs. * vrpn_TempImager.C : Same. * vrpn.dsp : Adds vrpn_TempImager classes. * Makefile : Adds vrpn_TempImager classes. Removed obsolete "NEW_LIB" stuff. * vrpn_Analog.h : White space cleanup. 2002-09-04 Russell M. Taylor II * vrpn_nikon_controls.h : Control for the focus stage of a Nikon optical microscope. Later may include other controls as well. This is a pretty specialized driver for the 3DFM project at UNC. * vrpn_nikon_controls.C : Same. * Makefile : Includes the Nikon files in server source build. * vrpn.dsp : Same. 2002-08-15 David Borland * vrpn_Analog.[Ch] : fixed some bugs from the last commit * vrpn_Poser_Analog.[Ch] : fixed some bugs from the last commit 2002-08-15 David Borland * vrpn_Analog.[Ch] : added functions for sending requests to change a range of channels at once. * vrpn_Poser_Analog.[Ch] : created new vrpn_Poser_Analog class that is used when we wish to "pose" an analog device. Still in testing phase. * vrpn_Poser.[Ch] : moved some code from here to vrpn_Poser_Analog 2002-08-14 Russell M. Taylor II * vrpn_DirectXFFJoystick.C : Changed the way the lateral force is computed to be the slope rather than the component of the normal vector pointing in that direction. Clip forces in a way that preserves direction. 2002-08-12 Russell M. Taylor II * vrpn_DirectXFFJoystick.h : Added force feedback. * vrpn_DirectXFFJoystick.C : Added force feedback. 2002-08-12 Russell M. Taylor II * vrpn.dsp : Add in definition of VRPN_USE_DIRECTINPUT to enable the compilation of force-feedback joystick code under DirectX (this first implementation doesn't use force feedback, just reads from the joystick). Remove this definition from VRPN and from vrpn_server to compile without the DirectX 8.0 SDK. * vrpn_DirectXFFJoystick.h : Driver for Force Feedback joystick. * vrpn_DirectXFFJoystick.C : Driver for Force Feedback joystick. 2002-08-12 David Borland * vrpn_Poser.[Ch] : Incorporating an Analog Device into the Poser class. Not finished, but want to do some tests. 2002-08-02 David Borland * vrpn_Poser.[Ch] : files for the new Poser class. A Poser is basically the inverse of a Tracker. It takes pose requests for a device and will (eventually) drive the device to the given pose. Right now, we can give pose and velocity requests on the client side and receive them on the server side. Just performing this commit for some testing purposes. 2002-07-19 Russell M. Taylor II * vrpn_Serial.C (vrpn_drain_output_buffer) : Changed return value to match what it was supposed to be. 2002-07-10 Russell M. Taylor II * vrpn_UNC_Joystick.C : Changed memcpy() to normal assignment to avoid segfault. 2002-07-09 Russell M. Taylor II * vrpn_Serial.C (vrpn_open_commport) : Sets the DTR line to be on while the port is open. Windows XP turns this off. The TNG3 uses this line for power, so goes dead when opened on XP unless this is done. * vrpn_Serial.C (read_available_characters) : The timeout was coded incorrectly so that it waited zero time when passed a NULL pointer to the timeout; it should wait an infinite time in this case. Pass it a structure with zeroes to get a zero timeout (or use the other function of the same name). * vrpn_Serial.C (vrpn_flush_output_buffer) : The flush and drain routines were backwards for Windows. Flush now throws out the characters and drain waits for them to get out the port. * vrpn_Serial.C (vrpn_drain_output_buffer) : The flush and drain routines were backwards for Windows. Flush now throws out the characters and drain waits for them to get out the port. * vrpn_Tng3.h : Made timeout named _timeout to show that it is a member variable. * vrpn_Tng3.C : Made timout named _timeout to match header. Changed error message to say "TNG3" rather than "Cerealbox" (cut-and-paste error). 2002-07-09 Russell M. Taylor II * vrpn_Connection.C : Reordered functions (for HP build). * vrpn_Shared.h : Hack to get bools to work on old HP compiler. 2002-07-08 Russell M. Taylor II * vrpn_FileConnection.C : Include needed for Linux. 2002-07-08 Russell M. Taylor II * vrpn_Clock.h : Cosmetic changes. * vrpn_Connection.C : Adds hostname to error messages. Only reports broken connection message once/second. * vrpn_FileConnection.C : Comment changes. Only print out error messages once per second. * vrpn_Tracker.h : Changed array sizes to use the defined constant meant for that purpose. 2002-06-24 David Marshburn * vrpn_ForceDevice.[h,C]: constructors now take the name of the connection as a const char* argument. 2002-06-17 Russell M. Taylor II * vrpn_Button.C : Fixing "for (int i = 0;" initialization. 2002-05-17 Russell M. Taylor II * vrpn_Tng3.C : Cosmetic + fixing infinite-loop bug by turning it from hanging waiting for characters to polling for any available characters. * vrpn_Tng3.h : Same. 2002-05-16 Russell M. Taylor II * vrpn_Tracker_isense.C : Code to interface to Intersense trackers using their library. By default, it is not built (requires proprietary library) but instead prints an error message. * vrpn_Tracker_isense.h : Same. * Makefile : Added Zaber and Isense drivers to the server library. * vrpn.dsp : Added Zaber and Isense drivers to the server library. 2002-05-07 Russell M. Taylor II * vrpn_Zaber.C : Code to handle report types 20 and 255. Added code to tell the remote device its values upon initial connection. Code to tell it to start off more slowly and have a smaller maximum speed (to help with torque). Fixed timeout code so that it will reset correctly if devices are unplugged and replugged. * vrpn_Zaber.h : Code to tell the remote device its values upon initial connection 2002-05-03 Russell M. Taylor II * vrpn_Analog.C : Added capability to send requests from an analog remote to an analog server for it to change a channel to the requested value. Modified the example server to respond by setting its channels to this. This is done to enable the Zaber linear actuator to be moved to requested positions. * vrpn_Analog.h : Same. * vrpn_Zaber.h : Code to control a Zaber linear actuator. * vrpn_Zaber.C : Code to control a Zaber linear actuator. * vrpn.dsw : Added vrpn_Zaber.[hC] to compile code for Windows. It should work for any architecture. 2002-04-16 Russell M. Taylor II * vrpn_Dial.C (vrpn_Dial_Remote::mainloop) : Calls client_mainloop() 2002-03-20 Aron Helser * time_test.dsp : Moved here so it is next to the code it compiles. Standardized settings, see below. * vrpn.dsp : standardized settings, see below. * vrpn.dsw : Changed location of many dsp files, and made standardized settings for all Debug and Release builds. VRPN_NO_STREAMS defined by default. All object files and compiler-generated files go in vrpn/pc_win32 directory, in a subdirectory that matches the source directory or executable name. 2002-03-18 David Marshburn * vrpn_Button.C (read): change in Python's read method to allow compilation on the SGI. 2002-03-15 Aron Helser * *.dsp: Added VRPN_COMPILE_DEF environment variable to preprocessor definitions of all projects. Allows nano to define VRPN_NO_STREAMS from the environment, as needed. 2002-03-15 Russell M. Taylor II * vrpn_Button.C (read): Sets the debounce on the Python to check over 30 reads rather than just 3, also makes the code general so that you change one constant and it checks that number of readings. This is to make the foot pedal for the 3DFM not bounce. 2002-03-13 Aron Helser * vrpn_Connection.C (setControlMsgTimeOffset): new method to assist writing a stream file with artibrary time stamps inside. (d_controlMsgTimeOffset): new, same. (drop_connection): Use d_controlMsgTimeOffset * vrpn_Spaceball.C: compiler warning fix. 2002-02-01 David Marshburn * vrpn.dsp: added vrpn_LamportClock.[C,h] 2002-01-28 Russell M. Taylor II * vrpn_Spaceball.C : Code to drive Spaceballs (from John Stone). * vrpn_Spaceball.h : Code to drive Spaceballs (from John Stone). * Makefile : Include files needed to drive Spaceballs (from John Stone). * vrpn.dsp : Include files needed to drive Spaceballs (from John Stone). 2002-01-04 Russell M. Taylor II * vrpn_Tracker.C : Adding vrpn_Tracker_Server (utility class for apps) * vrpn_Tracker.h : Adding vrpn_Tracker_Server (utility class for apps) 2002-01-04 Russell M. Taylor II * vrpn_Wande.C : Changing istream messages into stdio messages so that it can compile without the streams library. 2002-01-03 Russell M. Taylor II * vrpn_3Space.C (vrpn_Tracker_3Space::get_report) : Decodes the orientation bytes correctly for all orientations. Fixes a bug. This code is still too specific, it looks like it will only work on machines with the same byte order as PCs, and with machines that allow unaligned access. 2002-01-03 Russell M. Taylor II * vrpn_Button.C (vrpn_Button_SerialMouse::read) : Checks more carefully for unwanted characters. More comments to describe what is happening. 2002-01-03 Russell M. Taylor II * vrpn_Tracker_Fastrak.C (reset) : Some IS900 trackers report a status message with only 54 bytes, rather than the 55 bytes for a Fastrak. This code is generalized to handle both. 2002-01-02 Russell M. Taylor II * vrpn_Tracker_Fastrak.C (get_report) : Added a call to report the changes in IS900 analogs. The semantics of mainloop() on the analog server had changed so that it no longer calls report() each time through, and this change had not been filtered into the servers that relied on it calling report(). Since sometimes you want report(), and sometimes you want report_changes(), and sometimes you want neither, this is more general. 2001-12-28 Russell M. Taylor II * vrpn_Button.C (client_msg_handler) : Made the parsing of the admin message match the encoding of it, so that filtered buttons will respond to requests to set buttons toggle/momentary. This fixes a bug. 2001-12-10 David Marshburn * vrpn_Connection.C (vrpn_Log::open): added some more diagnostic output when this fails to open a log file. 2001-11-10 Russell M. Taylor II * time_test.cpp : Program to compare two ways of reading time on Windows. * vrpn.dsw : Added project file to compile time_test application. * vrpn_Analog.C : Modify to compile under Windows CE development environment. * vrpn_BaseClass.C : Modify to compile under Windows CE development environment. * vrpn_BaseClass.h : Modify to compile under Windows CE development environment. * vrpn_Button.C : Modify to compile under Windows CE development environment. * vrpn_Button.h : Modify to compile under Windows CE development environment. * vrpn_Clock.C : Modify to compile under Windows CE development environment. * vrpn_Connection.C : Modify to compile under Windows CE development environment. * vrpn_FileConnection.C : Modify to compile under Windows CE development environment. * vrpn_Serial.C : Modify to compile under Windows CE development environment. * vrpn_Shared.C : Modify to compile under Windows CE development environment. * vrpn_Shared.h : Modify to compile under Windows CE development environment. Note that VRPN_NO_STREAMS is defined whenever Windows CE is being used (they don't have I/O streams!) This same definition can be used at any time to build a VRPN library that uses FILE * rather than streams. * vrpn_Tracker.C : Modify to compile under Windows CE development environment. * vrpn_Tracker.h : Modify to compile under Windows CE development environment. * vrpn_embedded : Directory containing workspace and project files to build VRPN library under Windows CE. I can't get the application to build, but am checking this in so that it will start to track other changes. 2001-11-08 Russell M. Taylor II * vrpn_Analog_5dt.C (vrpn_5dt::get_report) : Changed it to expect 10 characters per report, since that is what they are getting in France (they are the only group that has the glove, and they wrote the driver, so I does what they sez. 2001-11-04 Russell M. Taylor II * vrpn_Connection.C (vrpn_TranslationTable::addRemoteEntry) : The check put in below causes the system to fail when reading from tracker log files. This is scary, but I'm taking the check back out until I can debug this properly. 2001-11-04 Russell M. Taylor II * vrpn_Connection.C (vrpn_TranslationTable::addRemoteEntry) : Check added to see if there is already an entry in the table. If so, error printed and returned. 2001-10-23 Adam Seeger * vrpn_SharedObject.C (vrpn_Shared_String::set): fixed some bad logic here that was causing a memory bug - was comparing strings by comparing the pointers for those strings despite the fact that string values were being put into newly allocated arrays 2001-09-07 Russell M. Taylor II * vrpn.dsw : Adds a DAQ driver server for the UNC 3D Force Microscope * vrpn_Types.h : Comment clarification 2001-08-10 Russell M. Taylor II * vrpn.dsw : Makes all libraries in Phantom server use same style * vrpn_Connection.C (vrpn_Endpoint::send_pending_messages) : Better handling of this check to avoid problems. 2001-08-07 Russell M. Taylor II * vrpn.dsw : Added vrpn_print_devices project file * vrpn_Connection.C (vrpn_Endpoint::send_pending_messages) : Check for valid connection before doing anything 2001-07-30 David Marshburn * server_src\vrpn_phantom.dsp: changed the include directories to ghost3.1 and ghost-stl. 2001-07-29 Tom Hudson * vrpn_Connection.C (vrpn_Endpoint::drop_connection) : Fix parentheses on d_connectionCounter reference. (vrpn_Endpoint::finish_new_connection) : Same. * vrpn_Connection.C (vrpn_Synchronized_Connection::mainloop) : Partially fix logic for calling clock server/remote. * vrpn_Mutex.C (vrpn_Mutex_Remote::requestIndex) : Add verbose debugging printfs. (vrpn_Mutex_Remote::request) : Same. (vrpn_Mutex_Remote::release) : Same. (vrpn_Mutex_Remote::handle_initialize) : Same. 2001-07-25 Tom Hudson * vrpn_Log.h : New file. * vrpn_Connection.C (vrpn_Log declaration) : Moved to new file. * vrpn_File_Connection.C (play_to_user_message) : Log "incoming" messages. (playone_to_filetime) : Same. (read_cookie) : Log cookie. 2001-07-03 David Marshburn * vrpn_Shared.h, C: added vrpn_TimevalEqual * vrpn_SharedObject.C: (shouldAcceptUpdate) changed the logic of shouldAcceptUpdate in regard to timing. Changes were formerly ignored if the timestamp of the update was <= the time of the last update. Due to poor time resolution, the "=" part of this comparison is a bug. Now, we only reject an update if the time of the current and last updates are equal, and we are not the serializer, and the update is of a local source. (vrpn_SharedObject) made d_isSerializer initialized to vrpn_TRUE, so shared object will by default accept changes having equal timestamps. (vrpn_Shared_int32::shouldAcceptUpdate) removed test of Lamport clock, so that we only ever test the standard timevals. The implementation of vrpn_LamportClock is incomplete. (useLamportClock) disabled so that Lamport clocks can't be accidentally turned on. - Also removed a bunch of commented-out print statements. 2001-06-29 Russell M. Taylor II * vrpn_Flock_Parallel.h : Spoof Master ID directly, removed un-needed re-registry of IDs by using inherited function to send the tracker reports. The previous version was sending messages with bogus ID because of recent refactoring of the Serial Tracker classes. * vrpn_Flock_Parallel.C : Same. 2001-06-29 Russell M. Taylor II * vrpn_Serial.C : Removed dynamic allocation of comm handles, which was causing seg faults. * vrpn_Tracker.C : Added check for negative sensor number in callback handler (this happened when connected to a malfunctioning tracker server). 2001-06-27 Adam Seeger * vrpn_Connection.C (vrpn_Endpoint::drop_connection): removed a hack that had been put in to ensure that the "connection dropped" timestamp was at least as late as the last message in the log (this had caused problems in translating some old files but I don't remember how) 2001-06-26 Russell M. Taylor II * vrpn_3Space.C : Massive cleanup * vrpn_3Space.h : Massive cleanup * vrpn_Analog.C : Massive cleanup * vrpn_Analog.h : Massive cleanup * vrpn_Analog_5dt.C : Massive cleanup * vrpn_Analog_Radamec_SPI.C : Massive cleanup * vrpn_Analog_Radamec_SPI.h : Massive cleanup * vrpn_BaseClass.h : Massive cleanup * vrpn_Button.C : Massive cleanup * vrpn_Button.h : Massive cleanup * vrpn_CerealBox.C : Massive cleanup * vrpn_CerealBox.h : Massive cleanup * vrpn_Clock.C : Massive cleanup * vrpn_Connection.C : Massive cleanup * vrpn_Connection.h : Massive cleanup * vrpn_Dial.h : Massive cleanup * vrpn_Dyna.C : Massive cleanup * vrpn_Dyna.h : Massive cleanup * vrpn_Flock.C : Massive cleanup * vrpn_Flock.h : Massive cleanup * vrpn_Flock_Parallel.C : Massive cleanup * vrpn_Flock_Parallel.h : Massive cleanup * vrpn_ForceDevice.C : Massive cleanup * vrpn_ImmersionBox.C : Massive cleanup * vrpn_ImmersionBox.h : Massive cleanup * vrpn_Joylin.C : Massive cleanup * vrpn_Magellan.C : Massive cleanup * vrpn_Mutex.C : Massive cleanup * vrpn_Serial.C : Massive cleanup * vrpn_Sound.C : Massive cleanup * vrpn_Tng3.C : Massive cleanup * vrpn_Tng3.h : Massive cleanup * vrpn_Tracker.C : Massive cleanup * vrpn_Tracker.h : Massive cleanup * vrpn_Tracker_Fastrak.C : Massive cleanup * vrpn_Tracker_Fastrak.h : Massive cleanup * vrpn_Types.h : Massive cleanup * vrpn_UNC_Joystick.C : Massive cleanup * vrpn_Wanda.C : Massive cleanup * vrpn_raw_sgibox.C : Massive cleanup 2001-06-05 Russell M. Taylor II * vrpn_Connection.C : Bumped minor version number * vrpn_Shared.C : Put back Perf code, guarded by VRPN_UNSAFE_WINDOWS_CLOCK 2001-06-04 Russell M. Taylor II * vrpn_Flock.C : Modified to print an error when trying to open a Flock that has a transmitter other than as unit 1. The code doesn't work in this case, and it is good to tell the user what's up. 2001-06-04 Russell M. Taylor II * vrpn_Shared.C (gettimeofday) : Modified the PC version to always use the _ftime() call, rather than attempting to use the performance counter. This means only 6ms accuracy on timing, but the other code was fragile and didn't work across operating systems (98, NT, 2000). 2001-06-02 Russell M. Taylor II * vrpn_Button.h (vrpn_Button_Parallel) : Moving default parameter into header file and out of C file * vrpn_Button.C (vrpn_Button_Parallel) : same 2001-06-02 Russell M. Taylor II * vrpn_3Space.C (mainloop) : Made it so that it tries to read a record before checking for timeout (to prevent infinite resets when there are two trackers or other devices running on same server). * vrpn_Analog_5dt.C (mainloop) : Same * vrpn_Analog_Radamec_SPI.C (mainloop) : Same * vrpn_CerealBox.C (mainloop) : Same * vrpn_Analog_.C (mainloop) : Same * vrpn_Dyna.C (mainloop) : Same * vrpn_Flock.C (mainloop) : Same * vrpn_Flock_Parallel.C (mainloop) : Same * vrpn_ImmersionBox.C (mainloop) : Same * vrpn_Tracker_Fastrak.C (mainloop) : Same * vrpn_Button.h : Added entry to read from the buttons on a mouse that is treated as a serial device. * vrpn_Button.C : Same * vrpn_Tng3.h : Code to run a "Totally Neat Gadget", or at least its buttons. Driver by Rob King at NRL. * vrpn_Tng3.C : Same * Makefile : Modified to load the Tng drivers into servers. 2001-06-01 Russell M. Taylor II * vrpn_Analog_5dt.h : Driver for 5DT data glove (5 fingers, roll, pitch) * vrpn_Analog_5dt.C : Same * vrpn_Button.h : Added Bel Elgin's changes from 3rdTech to allow the hex specification of the parallel port address as a 4th argument. * vrpn_Button.C : Same plus ability to set an output bit on the port to 1 to driver power to an external button device. * vrpn_Joylin.h : Driver for PC joysticks under Linux, written by Harald Barth. * vrpn_Joylin.C : Same 2001-06-01 Russell M. Taylor II * vrpn_Connection.h (vrpn_Endpoint) : Adds d_tcp_only member, which tells the endpoint not to try and communicate with its peer using any other mechanism. * vrpn_Connection.C : Removed commented-out things left hanging around. (vrpn_Connection) : Made parsing of "tcp:" names more robust and made it so that an endpoint created using the "tcp:" URL is told not to communicate except via TCP. (header_len) : Const helper routine for the following (vrpn_copy_machine_name) : Uses more-robust helper routine (vrpn_get_port_number) : Same (vrpn_copy_rsh_program) : Same (vrpn_copy_rsh_arguments) : Same (server_check_for_incoming_connections) : Tells the endpoint not to open a UDP link if it was created on a server that was connected to with a TCP connection (presumably going through a firewall or NAT). (finish_new_connection_setup) : Doesn't open UDP port if it is a TCP-only endpoint. Otherwise, it does. (connect_udp_to) : Same. 2001-05-01 Adam Seeger * vrpn_Mutex.C (vrpn_Mutex_Remote::requestIndex): now packs the IP address and process id into this message (vrpn_Mutex_Remote::handle_initialize): checks to see if the index message is tagged with the same IP address and process id that was included in the requestIndex message; this also handles the case when other clients that may use an older version of the code do not provide this unique identifier and ignores index assignments designated for those clients (vrpn_Mutex_Server::handle_requestIndex): now packs whatever was in the requestIndex message from the client so it gets echoed back and the client can figure out which index belongs to it (presumably the client put some unique identifier into the requestIndex message) 2001-04-30 Tom Hudson * vrpn_Mutex.C (handle_gotConnection) : Fix logic error to request a new ID if one hasn't been set already. Has known failure modes (?), but fewer than when this was incorrect. 2001-04-30 Tom Hudson * vrpn_Tracker_AnalogFly.C (d_reportChanges) : new member variable recording whether we're reporting at the full update_rate or at the rate at which changes actually happen (shouldReport) : new function (mainloop) : call shouldReport() 2001-04-24 Adam Seeger * vrpn_Mutex.hC : added a new message to let the client request the initialization message instead of having the server send this automatically on getting a connection - the problem with the old method is that if the connection was opened before creating the vrpn_Mutex_Remote then the message could be received before the vrpn_Mutex_Remote's callback was registered Now, when creating a vrpn_Mutex_Remote with an already- connected vrpn_Connection, a request for initialization is sent immediately. Otherwise, the vrpn_Mutex_Remote requests initialization when its got_connection callback is triggered. * vrpn_Tracker.C : changed checks for sensor > TRACKER_MAX_SENSOR_LIST to sensor >= TRACKER_MAX_SENSOR_LIST because a sensor index equal to TRACKER_MAX_SENSOR_LIST is also illegal 2001-03-25 Aron Helser * vrpn_Analog.C : Tweak of message types to make them more uniform an easy to automatically generate. Class name is first, followed by space, followed by message type. * vrpn_BaseClass.C : same * vrpn_Button.C : same * vrpn_Clock.C : same * vrpn_Connection.C : same * vrpn_Dial.C : same * vrpn_FileConnection.C : same * vrpn_FileController.C : same * vrpn_ForceDevice.C : same * vrpn_ForwarderController.C : same * vrpn_Mutex.C : same * vrpn_RedundantTransmission.C : same * vrpn_Router.C : same * vrpn_SharedObject.C : same * vrpn_Sound.C : same * vrpn_Tracker.C : same 2001-03-25 Russell M. Taylor II * vrpn_Analog.C : Removed spaces and other characters not available in C variable names from the message type and sender descriptions so that Aron's Perl script could be used to generate all of these objects (or a program to print them). * vrpn_BaseClass.C : same * vrpn_Button.C : same * vrpn_Clock.C : same * vrpn_Connection.C : same * vrpn_Dial.C : same * vrpn_FileConnection.C : same * vrpn_FileController.C : same * vrpn_ForceDevice.C : same * vrpn_ForwarderController.C : same * vrpn_Mutex.C : same * vrpn_RedundantTransmission.C : same * vrpn_Router.C : same * vrpn_SharedObject.C : same * vrpn_Sound.C : same * vrpn_Tracker.C : same 2001-03-01 Aron Helser * vrpn_BaseClass.h: Fixed D'Oxygen comments. 2001-02-15 Tom Hudson * vrpn_Connection.h (vrpn_Connection::vrpn_Connection) : change logfile arguments for both server and client constructors. (vrpn_Synchronized_Connection::vrpn_Synchronized_Connection) : same. (vrpn_get_connection_by_name) : same. (vrpn_Endpoint) : replace remote_log_name with two names, one for incoming and one for outgoing; replace d_log with two vrpn_Logs, add d_ convention to remote_log_mode. (vrpn_Endpoint::setLogNames) : new function. (vrpn_Endpoint::openLogs) : same. * vrpn_Connection.C (vrpn_Connection::vrpn_Connection) : handle changed method of log specification. (vrpn_Synchronized_Connection::vrpn_Synchronized_Connection) : pass changed arguments to Connection constructor. (vrpn_get_connection_by_nbame) : same. (vrpn_Endpoint::vrpn_Endpoint) : initialize both log names. (vrpn_Endpoint::init) : create both logs. (vrpn_Endpoint::pack_log_description) : pass both log names. (vrpn_Endpoint::handle_log_message) : unpack both log names. * vrpn_FileConnection.h (vrpn_File_Connection::vrpn_File_Connection) : change logfile arguments for constructor. * vrpn_FileConnection.C (vrpn_File_Connection::vrpn_File_Connection) : same. 2001-02-12 Russell M. Taylor II * vrpn_shared.C : vrpn_unbuffer ( ) {All of them} Modified to handle conversions from unaligned buffers. This was causing problems with the code being used to read from serial buffers in tracker drivers. I give up on trying to save the extra copy. 2001-02-09 Kwan Torrich Skinner * vrpn.dsp : removes references to vrpn_DelayedConnection.[C,h] 2001-02-07 Kwan Torrich Skinner * vrpn_Connection.C : increased minor version number. * Changelog : fixed Tom's (and my own) dates to be 2001 and not y2k. 2001-02-05 Tom Hudson (vrpn_Connection::server_check_for_incoming_connections) : Change one type to compile on the PC 2001-02-05 Tom Hudson * vrpn_Connection.h: add vrpn_Connection::listen_tcp_sock vrpn_Connection.C (open_tcp_socket) : Add portno argument just like open_udp_socket; default to NULL (vrpn_Endpoint::connect_tcp_to) : Refactor into two functions (vrpn_Connection::server_check_for_incoming_connections) : Add check for TCP connections (vrpn_Connection server constructor) : Add initialization, opening, and listen() call for tcp socket (vrpn_Connection client constructor) : Check for "tcp:" station name; if found, initiate a TCP connection instead of sending UDP message asking the server to initiate on 2001-01-07 Kwan Torrich Skinner * vrpn_MTd.dsp: added vrpn_RedundantTransmission to the project file so topo will compile. 2000-12-6 Tom Hudson * Makefile: remove vrpn_DelayedConnection.C, vrpn_DelayedConnection.h * vrpn_RedundantTransmission.C (vrpn_RedundantTransmission::mainloop) : rewrite deletion routine so it doesn't occasionally crash for no apparent reason on PCs (vrpn_RedundantTransmission::pack_message) : add new parameter; handle special cases and boundary conditions better * vrpn_Tracker.C (vrpn_Tracker_NULL::mainloop) : pass new parameter to vrpn_RedundantTransmission::pack_message (vrpn_RedundantTransmission) : new data member d_isEnabled (vrpn_RedundantTransmission::isEnabled) : new function (vrpn_RedundantTransmission::enable) : same (vrpn_RedundantController_Protocol::encode_enable) : same (vrpn_RedundantController_Protocol::decode_enable) : same (vrpn_RedundantController::handle_enable) : same (vrpn_RedundantRemote::enable) : same (vrpn_RedundantController constructor) : add handler registration (vrpn_RedundantReceiver) : new class 2000-11-13 Russell M. Taylor II * vrpn_Flock_Parallel.C (mainloop) : Made the code close and then reopen the serial ports (like it used to do before I turned it off because of a buggy Linux kernel). 2000-11-03 Russell M. Taylor II * vrpn_Shared.C (gettimeofday) : Turned off hi-perf clock for Win98 (vrpn_AdjustFrequency) : Removed buggy clock-check code 2000-11-01 Russell M. Taylor II * vrpn_FileConnection.C : Fixed parsing of file://. * vrpn_Connection.C : Removed more of the WINDOWS_GETHOSTBYNAME hack 2000-11-01 Aron Helser * vrpn_Connection.Ch (vrpn_Log::close): calls saveLogSoFar then closes file. (vrpn_Log::saveLogSoFar): Incremental save of log file whenever called. (vrpn_Connection::save_log_so_far): calls vrpn_Log::saveLogSoFar on all open endpoints. 2000-10-20 Aron Helser * vrpn_Connection.C (connect_tcp_to): Don't call gethostbyname if machine name provided is an IP number. (vrpn_connect_udp_port): same (connect_tcp_to): same (connect_udp_to): comment out, replaced with call to vrpn_connect_udp_port * vrpn_Mutex.C (getmyIP): Don't call gethostbyname if machine name provided is an IP number. Fixes byte-order problem with return value on win32. * vrpn_BaseClass.C (~vrpn_TextPrinter): Fix compiler warnings. 2000-10-18 Russell M. Taylor II * vrpn_Serial.C (vrpn_drain_output_buffer) : Called drain function, rather than flush. 2000-10-18 Tom Hudson * vrpn_Connection.C (vrpn_Connection) : add data members d_endpointAllocator, d_updateEndpoint (vrpn_Connection client constructor) : add endpoint allocator as extra argument, call (*d_endpointAllocator) & set d_updateEndpoint instead of calling allocateEndpoint() (vrpn_Connection server constructor) : same (vrpn_Synchronized_Connection client constructor) : add endpoint allocator as extra argument (vrpn_Synchronized_Connection server constructor) : same (vrpn_Connection::updateEndpoints) : new function (vrpn_Connection::allocateEndpoint) : change from virtual to static (vrpn_Connection::connect_to_client) : replace call to allocateEndpoint() with (*d_endpointAllocator), set d_updateEndpoint (vrpn_Connection::server_check_for_incoming_connections) : same (vrpn_Connection::mainloop) : call updateEndpoints() if d_updateEndpoint is true (vrpn_Endpoint::dispatch) : make virtual * vrpn_DelayedConnection.C (vrpn_DelayedEndpoint) : new data members d_delayListEnd, d_delayAllTypes, d_typeIsDelayed (vrpn_DelayedConnection) : new data members d_delayAllTypes, d_typeIsDelayed (vrpn_DelayedEndpoint constructor) : remove timeval parameter, initialize d_typeIsDelayed (vrpn_DelayedEndpoint::delayAllTypes) : new function (vrpn_DelayedEndpoint::delayType) : same (vrpn_DelayedEndpoint::enqueue) : same (vrpn_DelayedEndpoint::updateEndpoints) : same (vrpn_DelayedEndpoint::dispatch) : don't delay system messages; TCP/UDP connections will timeout otherwise (vrpn_DelayedConnection constructor) : initialize d_typeIsDelayed (vrpn_DelayedConnection::delayAllTypes) : new function (vrpn_DelayedConnection::delayType) : same (vrpn_RelativeDelayEndpoint) : new class (vrpn_RelativeDelayConnection) : new class * vrpn_RedundantTransmission.C (vrpn_RedundantTransmission::mainloop) : detect & clean-up after error states 2000-10-16 Russell M. Taylor II * vrpn_Connection.C : Deleted commented-out code. 2000-10-16 Tom Hudson * vrpn_RedundantTransmission.C (defaultInterval) : new function (defaultRetransmissions) : same 2000-10-11 Tom Hudson * vrpn_Connection.C (vrpn_TranslationTable::addRemoteEntry) : add details to error output * vrpn_Tracker.C (vrpn_Tracker_NULL::mainloop) : add support for vrpn_RedundantTransmission (vrpn_Tracker_NULL::setRedundantTransmission) : new function * vrpn_RedundantTransmission.h : new file * vrpn_RedundantTransmission.C : new file 2000-10-10 Adam Seeger * vrpn_FileConnection.hC (vrpn_File_Connection::get_filename) : new function that lets you easily find out what the name of the file was that vrpn opened (you could also do this using vrpn_copy_file_name with the name passed in originally) 2000-10-09 Aron Helser * vrpn_Connection.C (server_check_for_incoming_connections): A server used to get NIC for tcp connection from information in the UDP message sent by the client. Instead, use the NIC the UDP message came in on, ignoring NIC information in the UDP message. Allows us to handle multiple NICs more gracefully, because client can't easily discover the right NIC to put in the message. Other comment and verbose printout changes. 2000-10-08 Adam Seeger * vrpn_FileConnection.C (vrpn_File_Connection::vrpn_File_Connection): sets d_start_time to be the first time after playing to the first user message to avoid problems with log files that have system messages with messed up timestamps 2000-10-05 Sang-Uok Kum * vrpn_Shared.h: Fixed a mistake which made it not work in VC++. sleep is still not defined in VC++. 2000-10-04 Sang-Uok Kum * vrpn_Button.C : Include files and #ifdefs changed so in cygwin v1.1 it always uses unix sockets instead of window sockets. (The vrpn library compiled but gave run time errors.) This was only tested for vrpn client. * vrpn_Clock.C : same * vrpn_Connection.C : same * vrpn_FileConnection.C : same * vrpn_FileController.C : same * vrpn_ForwarderController.C : same * vrpn_Serial.C : same * vrpn_Shared.C : same * vrpn_Shared.h : same 2000-10-02 Tom Hudson * vrpn_SharedObject.h : Uncommented initial #include of vrpn_Shared.h, which is necessary for compiling under Cygwin 1.1; code still compiles under VC++ and Cygwin 1.0 2000-10-02 Adam Seeger * vrpn_Shared.C (vrpn_buffer, vrpn_unbuffer) : added these functions for vrpn_int16 and vrpn_uint16 - also, had to remove the one for vrpn_bool because a vrpn_bool is a vrpn_int16 2000-09-26 Tom Hudson * Makefile : now that we're using makedepend, got rid of rebuild of entire library whenever any header file changed. * vrpn_DelayedConnection.C (vrpn_DelayedEndpoint::send_pending_reports) : implemented (vrpn_DelayedEndpoint::dispatch) : same (vrpn_DelayedEndpoint::dispatchPending) : same (vrpn_DelayedEndpoint::setDelay) : new function (vrpn_DelayedEndpoint::deletePending) : same (vrpn_DelayedConnection::setDelay) : same 2000-09-25 Tom Hudson * connection : new directory, to be populated later today * vrpn_Connection.C (vrpn_Endpoint::dispatch) : new function (vrpn_Connection::allocateEndpoint) : new function (vrpn_Endpoint::getOneTCPMessage) : call dispatch() (vrpn_Endpoint::getOneUDPMessage) : same (vrpn_Connection::connectToClient) : call allocateEndpoint() (vrpn_Connection::server_check_for_incoming_connections) : same (vrpn_Connection::server constuctor) : same (vrpn_Connection::client constuctor) : same * vrpn_DelayedConnection.C : new file 2000-09-22 Adam Seeger * vrpn_Connection.C (vrpn_Log::lastLogTime) : new function to return the last timestamp for a logged message * vrpn_Connection.C (vrpn_Endpoint::drop_connection) : Since we read the actual time here to log dropped connection message, this was setting back the time for programs that used the logging mechanism for translation of old data into new log files. Now, in the case of logging and when the current time is less than the last log time, this function records the dropped_connection message with the previous log time instead * vrpn_Connection.C (vrpn_Synchronized_Connection::client constructor): this function now calls pack_sender_description for vrpn_CONTROL and pack_type_description for vrpn_got_connection, vrpn_dropped_connection, vrpn_got_first_connection, vrpn_dropped_last_connection so that they will get put into a log file even if the endpoint is not connected (needed for translation) - (At least I think this is why they aren't getting put into the log file) 2000-09-21 Tom Hudson (vrpn_SharedObject::handle_gotConnection) : small fix for non-serialized use 2000-09-18 Tom Hudson * vrpn_SharedObject.C: (class vrpn_SharedObject) d_isNegotiatingSerializer : new data member (vrpn_SharedObject::becomeSerializer) : test & set d_isNegotiatingSerializer (vrpn_SharedObject::handle_requestSerializer) : same (vrpn_SharedObject::handle_grantSerializer) : clear d_isNegotiatingSerializer (vrpn_SharedObject::handle_assumeSerializer) : same (vrpn_SharedObject::postBindConnection) : check for NULL connection, moved code from serverPostBindConnection (vrpn_SharedObject::serverPostBindConnection) : same (vrpn_SharedObject::handle_gotConnection) : generalized, renamed from handle_gotConnectionToRemote 2000-09-17 Tom Hudson * vrpn_SharedObject.C: (class vrpn_SharedObject) d_serverId, d_remoteId, d_peerId, d_update_type, d_lamportUpdate_type : new data members d_updateFromServer_type, d_updateFromRemote_type, d_myUpdate_type, d_updateFromServerLamport_type, d_updateFromRemoteLamport_type : remove (vrpn_SharedObject::postBindCleanup) : new function (vrpn_SharedObject::serverPostBindCleanup) : same (vrpn_SharedObject::remotePostBindCleanup) : same (vrpn_SharedObject::sendUpdate) : same (vrpn_SharedObject::handleUpdate) : same (vrpn_SharedObject::handle_gotConnectionToRemote) : same (vrpn_SharedObject::handle_update) : same (vrpn_SharedObject::becomeSerializer) : simplify (vrpn_SharedObject::handle_requestSerializer) : simplify (vrpn_SharedObject::handle_grantSerializer) : simplify (vrpn_SharedObject::handle_assumeSerializer) : simplify (vrpn_Shared_int32::sendUpdate) : remove first parameter (vrpn_Shared_float64::sendUpdate) : same (vrpn_Shared_String::sendUpdate) : same (vrpn_Shared_int32::handleUpdate) : new function (vrpn_Shared_float64::handleUpdate) : same (vrpn_Shared_String::handleUpdate) : same 2000-09-15 Tom Hudson * vrpn_LamportClock.h : changed <> on include to "" 2000-09-12 Tom Hudson * vrpn_BaseClass.h : made some of the comments 80-column correct so I could read them. * vrpn_SharedObject.h: (becomeSerializer) : new function d_requestSerializer_type, d_grantSerializer_type, d_assumeSerializer_type : new data members d_queueSets : new data member (probably unnecessary) d_becomeSerializer_type : removed old data member (handle_requestSerializer) : new function (handle_grantSerializer) : renamed from handle_becomeSerializer (handle_assumeSerializer) : new function (vrpn_SerializerPolicy) : renamed vrpn_DENY to vrpn_DENY_REMOTE, added vrpn_DENY_LOCAL * vrpn_SharedObject.C: (vrpn_SharedObject constructor) : default values for new data members, d_lClock. (vrpn_SharedObject::becomeSerializer) : new function (vrpn_SharedObject::handle_requestSerializer) : new function (vrpn_SharedObject::handle_grantSerializer) : renamed from handle_becomeSerializer (vrpn_SharedObject::handle_assumeSerializer) : new function (vrpn_Shared_int32_Server::bindConnection) : added registration of handler for requestSerializer (vrpn_Shared_float64_Server::bindConnection) : added registration of handler for requestSerializer (vrpn_Shared_String_Server::bindConnection) : added registration of handler for requestSerializer (vrpn_Shared_int32::shouldAcceptUpdate) : added handling for vrpn_DENY_LOCAL (vrpn_Shared_float64::shouldAcceptUpdate) : same (vrpn_Shared_String::shouldAcceptUpdate) : same 2000-09-11 Adam Seeger * vrpn_FileConnection.C (vrpn_File_Connection::reset) : Added call to d_endpoints[0]->drop_connection() to clear all state for replaying the file from the beginning. * vrpn_FileConnection.C (vrpn_File_Connection::mainloop) : returns -1 if there is an error reading from the file 2000-09-11 Adam Seeger * vrpn_Mutex.C (vrpn_Mutex_Server::~vrpn_Mutex_Server) : added unregister messages to correspond to register messages in the constructor (should be fixed using vrpn_BaseClass later) * vrpn_Mutex.C (vrpn_Mutex_Remote::~vrpn_Mutex_Remote) : added unregister messages to correspond to register messages in the constructor (should be fixed using vrpn_BaseClass later) * vrpn_FileConnection.C (vrpn_File_Connection::constructor) : took out code that set the first message to the first user message because when we later get a message that clears the translation table there is no way to rewind and rebuild the translation table because the initial system messages don't get replayed (left in the part that actually skips to the first user message though because this is apparently useful in order to avoid timing problems) * vrpn_FileConnection.C (vrpn_File_Connection::reset) : added code from constructor to skip to the first user message 2000-09-07 Adam Seeger * vrpn_Connection.C (vrpn_TranslationTable::clear) : changed this to do delete [] instead of delete on d_entry[i].name since a cName (its type) is a typedef for an array 2000-09-06 Russell M. Taylor II * vrpn_Magellan.C (vrpn_write_slowly) : Added parameter for how long wait. (get_report) : Returns 1 if a full report found (mainloop): Retries reading when a full report is found so that the buffer is cleared of all reports * vrpn_Router.C : #include string.h to compile on Linux 2000-09-01 Adam Seeger * vrpn_Connection.h (check_vrpn_file_cookie) : Now this will work if the version is >= 4.0 and <= the current version 2000-09-01 Adam Seeger * vrpn_Connection.h (check_vrpn_file_cookie) : This only worked if the version was 4.0, now it works if the version is the current one or less 2000-08-31 Tom Hudson * vrpn_Connection.C (vrpn_TranslationTable): Removed a lot of #if 1/#if 0 clauses that have become set. * vrpn_Connection.C (vrpn_TranslationTable::addLocalID): Added a guard to strcmp to make sure we weren't comparing against NULL. 2000-08-28 Adam Seeger * vrpn_Router.[hC] (vrpn_Router, ~vrpn_Router) : Made it so that the big arrays in this class get dynamically allocated instead of statically allocated so we don't have to use the huge_objects flag with Visual C++ 2000-08-28 Russell M. Taylor II * Makefile : Added Brown patches to compile under AIX. Cleaned up RANLIB and some dependencies. * vrpn_Shared.h : Added INVALID_SOCKET defs for Win32. * vrpn_Types.h : Added AIX definitions. 2000-08-28 Russell M. Taylor II * vrpn_Wanda.h : New file * vrpn_Wanda.C : New file * Makefile : Add Wanda to server library 2000-08-27 Jeffrey Juliano * .cvsignore: Add sgi_irix.n32.mips3 to ignore list. 2000-08-24 Russell M. Taylor II * vrpn_BaseClass.C (~vrpn_TextPrinter) : Hack to remove segfaults * vrpn_Router.C : New file * vrpn_Router.h : New file * Makefile : Added vrpn_Router compilation 2000-08-22 Kwan Skinner * vrpn_Connection.C (check_vrpn_file_cookie) : New function * vrpn_Connection.h (check_vrpn_file_cookie) : New function * vrpn_FileConnection.C (read_cookie) : Now calls check_vrpn_file_cookie 2000-08-21 Russell M. Taylor II * vrpn_Connection.C (connect_to_client) : Bug fix Remove parameter that is now obsolete. 2000-08-15 Russell M. Taylor II * vrpn_Mutex.C (vrpn_Mutex_Remote) : Type cast 2000-08-14 Russell M. Taylor II * vrpn_Analog_Radamec.C (int_to_pan) : Fix negative rotations 2000-08-12 Russell M. Taylor II * vrpn_Analog_Radamec.C (send_command) : Removed slow writes (int_to_pan) : Conversion fixed (reset) : Chopped out large parts that didn't work but should (get_report) : Set to ignore commands in case they are sent * vrpn_Tracker_AnalogFly.h : Added "absolute" and offset * vrpn_Tracker_AnalogFly.C : Added "absolute" and offset 2000-08-11 Russell M. Taylor II * vrpn_Analog_Radamec_SPI.C : Changed some warnings into errors (mainloop) : Added a watchdog timer * vrpn_Connection.C (vrpn_Log::setCompoundName): added 'const' * vrpn_Serial.C (vrpn_open_commport): Adds input baud to SGI code * vrpn_Tracker_Fastrak.C (get_report): Flushes buffer when resynching * vrpn_ImmersionBox.h : New file * vrpn_ImmersionBox.C : New file 2000-08-10 Russell M. Taylor II * vrpn.dsp: Adds a driver for the Radamec Serial Position Interface (Camera tracker) * vrpn.dsw: same * vrpn_Analog_Radamec_SPI.h: same * vrpn_Analog_Radamec_SPI.C: same * vrpn_Serial.h (vrpn_open_commport): Adds bit length and parity to the optional parameters to the serial-port open. * vrpn_Serial.C (vrpn_open_commport): same * vrpn_Analog.C (vrpn_Serial_Analog::vrpn_Serial_Analog): same * vrpn_Analog.h (vrpn_Serial_Analog::vrpn_Serial_Analog): same * vrpn_Tracker.C: Modified the packing code to use vrpn_buffer() and vrpn_unbufer(). Removed the redundant change handlers for all sensors, by replacing them with ones that have optional parameters. * vrpn_Tracker.h: same * vrpn_AnalogFly.C (vrpn_AnalogFly::vrpn_AnalogFly): Sets the reset button to NULL by default so that the code won't blow up if you don't have one.