Releases: orchetect/OSCKit
Releases · orchetect/OSCKit
0.5.0
New
- Added new
OSCSocket
class that combines server and client using a single local UDP port - Added
OSCKitSocketExample
project to demonstrateOSCSocket
OSCClient
- Added ability to specify local port with
init(localPort:)
- Added
isPortReuseEnabled
property - Added
isIPv4BroadcastEnabled
property
- Added ability to specify local port with
OSCServer
- Added
isPortReuseEnabled
property - Added
isIPv4BroadcastEnabled
property - Now defaults to main queue using default QoS if not specified
- Added
- Added native support for
CGFloat
as an OSC message value type
Improvements
- Full DocC documentation available online, and buildable within Xcode
- Thinned external dependencies from 4 to 2
- Minor cleanup, unit test updates, and API clarification
0.4.3
0.4.2
0.4.1
- Added ability to optionally store a closure for each OSC method that is registered with
OSCAddressSpace
.
Invokingdispatch(_: OSCMessage)
will execute the closure (on current queue or on a specified queue) for each method that matches the OSC message address pattern. - Added an example project demonstrating the use of OSC method closures
0.4.0
Welcome to OSCKit 0.4.0!
0.4.0 is a complete refactor and overhaul from the ground up.
- OSC address pattern matching and dispatch
- Convenient OSC message value type masking, validation and strong-typing
- Modular: use the provided UDP network layer by default, or use your own
- Support for custom OSC types by way of protocol adoption
- Thread-safe
- Fully unit tested
Check out the example projects to see it in action, and browse the README for an overview of functionality.
Note
Swift 5.7+ and Xcode 14+ are minimum requirements. OSCKit 0.3.1 can be used with Xcode 13.
0.3.1
- Added full OSC time tag support with NTP era rollover
OSCServer
now hastimeTagMode
parameter to set scheduling behaviorOSCServer
receivehandler
closure now forwards time tag information- Updated example project
- Updated documentation
Note: This will be the last release before a major refactor in release 0.4.0 to improve how OSC values are handled.
Note: 0.4.0 will require Xcode 14+ and Swift 5.7+
0.3.0
New Release: OSCKit 0.3.0
Note: This release has numerous API changes.
Networking Now Included
OSCKit by default now contains a built-in networking layer.
- New
OSCClient
andOSCServer
classes using CocoaAsyncSocket under the hood. (See OSCKitExample project for a demonstration.) - Or use
import OSCKitCore
if you plan on implementing your own UDP sockets.
OSC Address
- New
OSCAddress
struct: adds useful methods partaining to an OSC address. - Added full OSC address pattern matching support.
- New
OSCDispatcher
class: automates address pattern matching and dispatches received OSC messages. [OSCMessage.Value]
now has amasked()
category method to mask an array of OSC values and cast to concrete types.
Misc
- Added
Codable
conformance toOSCBundle
,OSCMessage
andOSCAddress
. - Refreshed example projects.
- Various improvements and fixes.
- Improved inline docs and formatting.
0.2.2
0.2.1
0.2.0
Major code overhaul and modernization:
OSCMessage
andOSCBundle
are now immutable value typesOSCMessage
andOSCBundle
-rawBytes
init
s nowthrow
, and produce strongly typed and detailed error messages- OSC value types of
.string(String)
and.stringAlt(String)
have been replaced with.string(ASCIIString)
and.stringAlt(ASCIIString)
- OSC value type
.character(Character)
has been replaced with.character(ASCIICharacter)
- New
Data.parseOSC()
method returnsOptional(OSCBundlePayload)
and throws on parse errors appearsToBeOSC
method now returns a strongly typedOSCObjectType
enum with.bundle
and.message
casesOSCMessage
andOSCBundle
now conform toEquatable
andHashable
- Performance improvements
- Removed all internal console log messages
- README updated with Getting Started section with sample code