annotate oscpack/CHANGES @ 101:52e44ee1c791 tip master

enabled all scores in autostart script
author Rob Canning <rc@kiben.net>
date Tue, 21 Apr 2015 16:20:57 +0100
parents 0ae87af84e2f
children
rev   line source
rob@76 1 April 9, 2013
rob@76 2 -------------
rob@76 3
rob@76 4 Changes for the 1.1.0 release (vs 1.0.2) are listed below. Unless
rob@76 5 otherwise indicated these changes have been made since
rob@76 6 January 2013. The focus has been on general clean-up, fixing bugs,
rob@76 7 compiler errors and warnings, and fixing issues on 64 bit platforms.
rob@76 8 A few improvements such as support for OSC arrays, functions
rob@76 9 for setting broadcast and reuse socket options have been added.
rob@76 10 This update merges changes from the openFrameworks version
rob@76 11 of oscpack.
rob@76 12
rob@76 13 - Added support for arrays in messages (see OscUnitTests.cpp
rob@76 14 for example usage). (patch thanks to Tim Blechmann)
rob@76 15
rob@76 16 - Fixed bugs relating to 64 bit usage (e.g. crashes in 64 bit
rob@76 17 builds on OS X).
rob@76 18
rob@76 19 - Some member functions that previously used the "int" or
rob@76 20 "unsigned long" type for parameters or return values now use
rob@76 21 std::size_t (platform-defined) or
rob@76 22 osc_bundle_element_size_t (a.k.a. int32).
rob@76 23 This change was made to better support 64 bit platforms.
rob@76 24 See SVN revision 70 for details.
rob@76 25
rob@76 26 - The previous point introduces a breaking change on Linux/x86_64
rob@76 27 for callers of AsBlob() and AsBlobUnchecked():
rob@76 28 The type of the second argument (the "size" argument) to
rob@76 29 ReceivedMessageArgument::AsBlob() and
rob@76 30 ReceivedMessageArgument::AsBlobUnchecked() has changed
rob@76 31 from unsigned long & to osc_bundle_element_size_t (an int32).
rob@76 32 You should declare your size argument variables as
rob@76 33 osc_bundle_element_size_t to avoid incompatibilities between
rob@76 34 32 and 64 bit builds.
rob@76 35
rob@76 36 - Note that oscpack does not support packets larger than
rob@76 37 0x7FFFFFFC (see comments in class ReceivedPacket for
rob@76 38 details).
rob@76 39
rob@76 40 - Oscpack defines an osc::Nil value used for sending the nil
rob@76 41 message argument value. This conflicts with Objective-C.
rob@76 42 Therefore osc::Nil is no longer defined in Obj-C++ code.
rob@76 43 There is now an osc::OscNil value, which should be preferred.
rob@76 44 osc::Nil is still available when writing C++.
rob@76 45 (fix thanks to openFrameworks)
rob@76 46
rob@76 47 - Added UdpSocket::SetEnableBroadcast(). This needs to
rob@76 48 be called to enable sending to the broadcast address on some
rob@76 49 platforms (e.g. Mac OS X). (thanks to openFrameworks)
rob@76 50
rob@76 51 - Added UdpSocket::SetAllowReuse(). This is useful for
rob@76 52 sharing sockets on some platforms (Mac?), and not so useful
rob@76 53 on other platforms. (thanks to openFrameworks)
rob@76 54
rob@76 55 - Added IpEndpointName::IsMulticastAddress() (2010)
rob@76 56
rob@76 57 - Cleaned up C++ header usage and std:: namespace usage
rob@76 58 to be more standards compliant (fixes issues on recent compilers
rob@76 59 such as clang and gcc4.6).
rob@76 60
rob@76 61 - Improved host endianness detection. Should auto-detect
rob@76 62 endianness on most platforms now.
rob@76 63 (thanks to Tim Blechmann for help with this)
rob@76 64
rob@76 65 - Fixed two memory leaks: (1) in OscPrintReceivedElements.cpp
rob@76 66 when printing time tag message arguments (thanks to Gwydion ap Dafydd).
rob@76 67 (2) in the posix SocketReceiveMultiplexer::Run() method if an exception
rob@76 68 was thrown while listening.
rob@76 69
rob@76 70 - Fixed bug in posix SocketReceiveMultiplexer::Run() that would cause
rob@76 71 packets to stop being received if select() returned EINTR.
rob@76 72 (thanks to Björn Wöldecke)
rob@76 73
rob@76 74 - Updated and improved Makefile to avoid redundant re-linking
rob@76 75 (thanks to Douglas Mandell)
rob@76 76
rob@76 77 - Added CMakeLists.txt CMake build file (2010, thanks to David Doria)
rob@76 78
rob@76 79 - Switched license to plain MIT license with non binding request
rob@76 80 for contribution of improvements (same as current PortAudio
rob@76 81 boilerplate). See LICENSE file.
rob@76 82
rob@76 83 Thanks to Tim Blechmann, Rob Canning, Gwydion ap Dafydd, David Doria,
rob@76 84 Christopher Delaney, Jon McCormack, Douglas Mandell, Björn Wöldecke,
rob@76 85 all the guys at openFrameworks, and everyone who reported bugs,
rob@76 86 submitted patches and helped out with testing this release.
rob@76 87
rob@76 88 Thanks to Syneme at the University of Calgary for providing financial
rob@76 89 support for the 1.1.0 update.
rob@76 90
rob@76 91
rob@76 92 September 28, 2005
rob@76 93 ------------------
rob@76 94
rob@76 95 Compared to the previous official snapshot (November 2004) the
rob@76 96 current version of oscpack includes a re-written set of network
rob@76 97 classes and some changes to the syntax of the networking code. It no
rob@76 98 longer uses threads, which means that you don't need to use sleep()
rob@76 99 if you are writing a simple single-threaded server, or you need to
rob@76 100 spawn your own threads in a more complex application.
rob@76 101
rob@76 102 The list below summarises the changes if you are porting code from
rob@76 103 the previous release.
rob@76 104
rob@76 105 - There are no longer any threads in oscpack. if you need to
rob@76 106 set up an asynchronous listener you can create your own thread
rob@76 107 and call Run on an instance of SocketReceiveMultiplexer or
rob@76 108 UdpListeningReceiveSocket (see ip/UdpSocket.h) yourself.
rob@76 109
rob@76 110 - Host byte order is now used for network (IP) addresses
rob@76 111
rob@76 112 - Functions which used to take two parameters <address, port>
rob@76 113 now take an instance of IpEndpointName (see
rob@76 114 ip/IpEndpointName.h) this class has a number of convenient
rob@76 115 constructors for converting numbers and strings to internet
rob@76 116 addresses. For example there is one which takes a string and
rob@76 117 another that take the dotted address components as separate
rob@76 118 parameters.
rob@76 119
rob@76 120 - The UdpTransmitPort class, formerly in UdpTransmitPort.h, is
rob@76 121 now called UdpTransmitSocket, which is simply a convenience
rob@76 122 class derived from UdpSocket (see ip/UdpSocket.h). Where you
rob@76 123 used to use the constructor UdpTransmitPort( address, port) now
rob@76 124 you can use UdpTransmitSocket( IpEndpointName( address, port )
rob@76 125 ) or you can any of the other possible ctors to IpEndpointName
rob@76 126 () (see above). The Send() method is unchanged.
rob@76 127
rob@76 128 - The packet listener base class is now located in
rob@76 129 ip/PacketListener.h instead of PacketListenerPort.h. The
rob@76 130 ProcessPacket method now has an additional parameter indicating
rob@76 131 the remote endpoint
rob@76 132
rob@76 133 - The preferred way to set up listeners is with
rob@76 134 SocketReceiveMultiplexer (in ip/UdpSocket.h), this also allows
rob@76 135 attaching periodic timers. For simple applications which only
rob@76 136 listen to a single socket with no timers you can use
rob@76 137 UdpListeningReceiveSocket (also in UdpSocket.h) See
rob@76 138 osc/OscReceiveTest.cpp or osc/OscDump.cpp for examples of this.
rob@76 139 This is more or less equivalent to the UdpPacketListenerPort
rob@76 140 object in the old oscpack versions except that you need to
rob@76 141 explicitly call Run() before it will start receiving packets
rob@76 142 and it runs in the same thread, not a separate thread so Run()
rob@76 143 won't usually return.
rob@76 144
rob@76 145 - Explicit calls to InitializeNetworking() and
rob@76 146 TerminateNetworking() are no longer required for simple
rob@76 147 applications (more complex windows applications should
rob@76 148 instantiate NetworkInitializer in main() or WinMain (see
rob@76 149 ip/NetworkingUtils.h/.cpp)
rob@76 150
rob@76 151 - The OscPacketListener base class (OscPacketListener.h) was
rob@76 152 added to make traversing OSC packets easier, it handles bundle
rob@76 153 traversal automatically so you only need to process messages in
rob@76 154 your derived classes.
rob@76 155
rob@76 156 - On Windows be sure to link with ws2_32.lib or you will see
rob@76 157 a linker error about WSAEventSelect not being found. Also you
rob@76 158 will need to link with winmm.lib for timeGetTime()
rob@76 159