annotate trunk/external/oscpack/CHANGES @ 706:f8e90b5d85fd tip

Delete CARFAC code from this repository. It has been moved to https://github.com/google/carfac Please email me with your github username to get access. I've also created a new mailing list to discuss CARFAC development: https://groups.google.com/forum/#!forum/carfac-dev
author ronw@google.com
date Thu, 18 Jul 2013 20:56:51 +0000
parents 4b37b53105a3
children
rev   line source
tomwalters@570 1 September 28, 2005
tomwalters@570 2 ------------------
tomwalters@570 3
tomwalters@570 4 Compared to the previous official snapshot (November 2004) the
tomwalters@570 5 current version of oscpack includes a re-written set of network
tomwalters@570 6 classes and some changes to the syntax of the networking code. It no
tomwalters@570 7 longer uses threads, which means that you don't need to use sleep()
tomwalters@570 8 if you are writing a simple single-threaded server, or you need to
tomwalters@570 9 spawn your own threads in a more complex application.
tomwalters@570 10
tomwalters@570 11 The list below summarises the changes if you are porting code from
tomwalters@570 12 the previous release.
tomwalters@570 13
tomwalters@570 14 - there are no longer any threads in oscpack. if you need to
tomwalters@570 15 set up an asynchronous listener you can create your own thread
tomwalters@570 16 and call Run on an instance of SocketReceiveMultiplexer or
tomwalters@570 17 UdpListeningReceiveSocket (see ip/UdpSocket.h) yourself.
tomwalters@570 18
tomwalters@570 19 - host byte order is now used for network (IP) addresses
tomwalters@570 20
tomwalters@570 21 - functions which used to take two parameters <address, port>
tomwalters@570 22 now take an instance of IpEndpointName (see
tomwalters@570 23 ip/IpEndpointName.h) this class has a number of convenient
tomwalters@570 24 constructors for converting numbers and strings to internet
tomwalters@570 25 addresses. For example there is one which takes a string and
tomwalters@570 26 another that take the dotted address components as separate
tomwalters@570 27 parameters.
tomwalters@570 28
tomwalters@570 29 - The UdpTransmitPort class, formerly in UdpTransmitPort.h, is
tomwalters@570 30 now called UdpTransmitSocket, which is simply a convenience
tomwalters@570 31 class derived from UdpSocket (see ip/UdpSocket.h). Where you
tomwalters@570 32 used to use the constructor UdpTransmitPort( address, port) now
tomwalters@570 33 you can use UdpTransmitSocket( IpEndpointName( address, port )
tomwalters@570 34 ) or you can any of the other possible ctors to IpEndpointName
tomwalters@570 35 () (see above). The Send() method is unchanged.
tomwalters@570 36
tomwalters@570 37 - The packet listener base class is now located in
tomwalters@570 38 ip/PacketListener.h instead of PacketListenerPort.h. The
tomwalters@570 39 ProcessPacket method now has an additional parameter indicating
tomwalters@570 40 the remote endpoint
tomwalters@570 41
tomwalters@570 42 - The preferred way to set up listeners is with
tomwalters@570 43 SocketReceiveMultiplexer (in ip/UdpSocket.h), this also allows
tomwalters@570 44 attaching periodic timers. For simple applications which only
tomwalters@570 45 listen to a single socket with no timers you can use
tomwalters@570 46 UdpListeningReceiveSocket (also in UdpSocket.h) See
tomwalters@570 47 osc/OscReceiveTest.cpp or osc/OscDump.cpp for examples of this.
tomwalters@570 48 This is more or less equivalent to the UdpPacketListenerPort
tomwalters@570 49 object in the old oscpack versions except that you need to
tomwalters@570 50 explicitly call Run() before it will start receiving packets
tomwalters@570 51 and it runs in the same thread, not a separate thread so Run()
tomwalters@570 52 won't usually return.
tomwalters@570 53
tomwalters@570 54 - Explicit calls to InitializeNetworking() and
tomwalters@570 55 TerminateNetworking() are no longer required for simple
tomwalters@570 56 applications (more complex windows applications should
tomwalters@570 57 instantiate NetworkInitializer in main() or WinMain (see
tomwalters@570 58 ip/NetworkingUtils.h/.cpp)
tomwalters@570 59
tomwalters@570 60 - The OscPacketListener base class (OscPacketListener.h) was
tomwalters@570 61 added to make traversing OSC packets easier, it handles bundle
tomwalters@570 62 traversal automatically so you only need to process messages in
tomwalters@570 63 your derived classes.
tomwalters@570 64
tomwalters@570 65 - On Windows be sure to link with ws2_32.lib or you will see
tomwalters@570 66 a linker error about WSAEventSelect not being found. Also you
tomwalters@570 67 will need to link with winmm.lib for timeGetTime()
tomwalters@570 68