Swift Atem Versions Save

Blackmagic Design Atem network protocol implementation in swift 5.1 using NIO 2

2.0.0-alpha.2

2 years ago

Version 2 is a breaking change that solves some bugs and many new features. This is a prerelease so some parts of the API can still change before the official release.

Bug fixes

  • use relative byte offset in ProductInfo decoding (2b9c5c505c1c0301dd8fb1b03a298d00603778d0)
  • fix faulty circular counter loop (47ab113df81c034841a0338ffe6297046938fab4)
  • fix mac host resolve errors (41918b73148c86220d75ee8cc4120207db2c65a9)
  • better duplicate packet resolution (039d761070030fe585d25a46ca9ae55cfa441635)
  • handle packets in correct order (bd73571c83849efff6b898adf08230cd7732af40)
  • match session IDs (e23b581b5fbad571d458bf1429bc1feca10f675c)
  • removed memory leak (57d675344c2f7eacadefb612ed498cfb1cbab265)
  • reuse the same NIO EventLoopGroup (727fbadd068d9e43642a4f4da4f8689299d83899)

New features

New in Alpha 2

  • Switch back to swift-tools-version:5.5 now that Swift 5.5 is officially released (4a97aa17a62eb430b8bc15a22e679751c2c6a8da)
  • Update Swift-NIO to fix compatibility issue in Xcode 13 (fd8d070f0477b28727ad16b159f04b4f35cfb7c9)

New in Alpha 1

  • Add DocC documentation pages (dc9b45e165a11c1e7000f1a2a926ec49d528b85e)
  • Static Strings for message titles (5d9f39e276bcde2468fe31626cfaad0337b13434)
  • Continuous integration for macOS and Ubuntu using GH actions (ed5588da9e905e330bb41a0eb6210b7be665f40c)
  • Added context references to message handlers (4beb49d28ec01e6e6137f493fd4d190747578c5a)
  • Added onError an onDisconnect handlers (a0b1bdf288d240340a4c2090b71928b8e46f93c2)
  • Use max amount of processor-cores (68203184b89cb13e867adfcd620a69e657ff4666)
  • Temporal disconnection detection (1608b356d7371cbde7993ed7c1a8b92a8ab48281)
  • Public controller IP address (794c9c4384c0a887864677c4d8477b8644682dd6)
  • Bonjour discovery (cf29aaf51b58658a08921b9b3cbb04844421bc0c)
  • Media (de)compression functions (671946cc758a2591d7e14d13236bca6c1698dac5)
  • Media coding functions (fa866ac8fa455918a932b55089fbca239fd271f7)
  • a Media manager for the Controller side (1f9014210e79f0728e4bc0425001f73e82e4b336)
  • Added support for big endian systems (ab0aa1906242187c159d53d09013d5ca208d2c71)
  • Added new message definitions for:
    • “_MeC”, “_mpl”, “_MvC” messages (38cbcb6e76b0573ec1aca85d28a7b76605394c05)
    • Data transfers (2fe41e1fefb11000c982a670116c2f9cba6ee8fb)
    • Timecodes (f8e9ebc86c6db876530ab395236950b00dba97f6)
    • ChangeKeyDVE (24757eea1b64a21ed30bd97adc46c1f3c55aa081)
  • Added examples
    • PreviewSwitcher (73b0c3e10dc92820a0f2e58cad59597cef3f1f6b)
    • MediaConverter (671946cc758a2591d7e14d13236bca6c1698dac5)
    • TitleGenerator (0db68982d5331a174916909cc055353b35bbe792)
    • SourceLabeler (7b864964284cf5d91537af2b6db56ce7c01ef99f)
    • Simulator
      • Receive small data transfers (3a34e8740a7e23c395f23702a0c34cc8ecc751f2)
  • More semantic naming
    • Do, Did, Config semantics (162ee2dac1c628a2a4372b2b8a9bf85adfa43153)
    • use BMD terminology for ME blocks (b81fc341bd76a5e810a214df2ccaffbb18b619be)
    • remove duplicate message definition (f6746ef79284f1f377c80ff1289b614ba89539fe)
    • remove AtemSize enum (60ef20920eb1d25fd9c771ba5886081837b60fdd)
  • Added tests
    • previously disabled tests (da06ce7a1ae6476749badb06d5877c14f0c053a9)
    • data transfer message tests (2fe41e1fefb11000c982a670116c2f9cba6ee8fb)

2.0.0-alpha.1

2 years ago

Version 2 is a breaking change that solves some bugs and many new features. This is a prerelease so some parts of the API can still change before the official release.

Bug fixes

  • use relative byte offset in ProductInfo decoding (2b9c5c505c1c0301dd8fb1b03a298d00603778d0)
  • fix faulty circular counter loop (47ab113df81c034841a0338ffe6297046938fab4)
  • fix mac host resolve errors (41918b73148c86220d75ee8cc4120207db2c65a9)
  • better duplicate packet resolution (039d761070030fe585d25a46ca9ae55cfa441635)
  • handle packets in correct order (bd73571c83849efff6b898adf08230cd7732af40)
  • match session IDs (e23b581b5fbad571d458bf1429bc1feca10f675c)
  • removed memory leak (57d675344c2f7eacadefb612ed498cfb1cbab265)
  • reuse the same NIO EventLoopGroup (727fbadd068d9e43642a4f4da4f8689299d83899)

New features

  • Documentation compiled using DocC (dc9b45e165a11c1e7000f1a2a926ec49d528b85e)
  • Static Strings for message titles (5d9f39e276bcde2468fe31626cfaad0337b13434)
  • Continuous integration for macOS and Ubuntu using GH actions (ed5588da9e905e330bb41a0eb6210b7be665f40c)
  • Added context references to message handlers (4beb49d28ec01e6e6137f493fd4d190747578c5a)
  • Added onError an onDisconnect handlers (a0b1bdf288d240340a4c2090b71928b8e46f93c2)
  • Use max amount of processor-cores (68203184b89cb13e867adfcd620a69e657ff4666)
  • Temporal disconnection detection (1608b356d7371cbde7993ed7c1a8b92a8ab48281)
  • Public controller IP address (794c9c4384c0a887864677c4d8477b8644682dd6)
  • Bonjour discovery (cf29aaf51b58658a08921b9b3cbb04844421bc0c)
  • Media (de)compression functions (671946cc758a2591d7e14d13236bca6c1698dac5)
  • Media coding functions (fa866ac8fa455918a932b55089fbca239fd271f7)
  • a Media manager for the Controller side (1f9014210e79f0728e4bc0425001f73e82e4b336)
  • Added support for big endian systems (ab0aa1906242187c159d53d09013d5ca208d2c71)
  • Added new message definitions for:
    • “_MeC”, “_mpl”, “_MvC” messages (38cbcb6e76b0573ec1aca85d28a7b76605394c05)
    • Data transfers (2fe41e1fefb11000c982a670116c2f9cba6ee8fb)
    • Timecodes (f8e9ebc86c6db876530ab395236950b00dba97f6)
    • ChangeKeyDVE (24757eea1b64a21ed30bd97adc46c1f3c55aa081)
  • Added examples
    • PreviewSwitcher (73b0c3e10dc92820a0f2e58cad59597cef3f1f6b)
    • MediaConverter (671946cc758a2591d7e14d13236bca6c1698dac5)
    • TitleGenerator (0db68982d5331a174916909cc055353b35bbe792)
    • SourceLabeler (7b864964284cf5d91537af2b6db56ce7c01ef99f)
    • Simulator
      • Receive small data transfers (3a34e8740a7e23c395f23702a0c34cc8ecc751f2)
  • More semantic naming
    • Do, Did, Config semantics (162ee2dac1c628a2a4372b2b8a9bf85adfa43153)
    • use BMD terminology for ME blocks (b81fc341bd76a5e810a214df2ccaffbb18b619be)
    • remove duplicate message definition (f6746ef79284f1f377c80ff1289b614ba89539fe)
    • remove AtemSize enum (60ef20920eb1d25fd9c771ba5886081837b60fdd)
  • Added tests
    • previously disabled tests (da06ce7a1ae6476749badb06d5877c14f0c053a9)
    • data transfer message tests (2fe41e1fefb11000c982a670116c2f9cba6ee8fb)

1.1.1

3 years ago

1.1.0

4 years ago

1.0.0

4 years ago

This version uses Swift 5 and NIO2

0.2.0

5 years ago

Add compatibility for the ATEM Software Control 7.5.2 release

0.1.1

5 years ago

0.1.0

5 years ago

Additions:

  • More detailed readme a6824651c41e65658655da76ec1d38e9278e6e75
  • New TallyLight Type 456dca2455f4be88d0ed34fbe5a83d8dd49a6d15
  • New Messages: a4e9366fa08c2c88add0ed429184d904f8e0634b
    • LockRequest
    • LockPositionRequest
    • LockChange
    • LockObtained
    • InitiationComplete
    • SourceTallies

Fixes:

  • Simulator now sends responses to all clients f882724e2c7ef3f48138c1ce43234fdddc5104d4
  • Fix mediaPlayerKey decoding and conform to Hashable 986991df6bdfecc4d7d39c349e72dc31243721cb
  • Remove printing 3bafcf225f005efcb7bf4daf7e43b41a4f0e9fd6

0.0.1

5 years ago