Skip to content

Commit

Permalink
Set next transition properties.
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesremuscat committed Jul 19, 2017
1 parent 876874e commit f9d7152
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 7 deletions.
41 changes: 34 additions & 7 deletions src/avx/devices/net/atem.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,26 +46,28 @@ def byteArrayToString(byteArray):


def requiresInit(func):
def inner(self, *args):
def inner(self, *args, **kwargs):
if not self._isInitialized:
raise NotInitializedException()
func(self, *args)
func(self, *args, **kwargs)
return inner


def assertTopology(topType, argIndex):
def assertTopology(topType, argIndex, argKey=None):
def wrap(func):
def wrapped_func(self, *args):
if argIndex >= len(args):
value = func.__defaults__[argIndex - len(args)]
def wrapped_func(self, *args, **kwargs):
if argKey and argKey in kwargs:
value = kwargs[argKey]
elif argIndex >= len(args):
value = func.__defaults__[argIndex - len(args) - len(kwargs)]
else:
value = args[argIndex]
limit = self._system_config['topology'][topType]

if value <= 0 or value > limit:
raise InvalidArgumentException

func(self, *args)
func(self, *args, **kwargs)
return wrapped_func
return wrap

Expand Down Expand Up @@ -520,3 +522,28 @@ def performAutoTake(self, me=1):
'DAut',
[me - 1, 0, 0, 0]
)

@requiresInit
@assertTopology('mes', 6, argKey='me')
def setNextTransition(self, transitionStyle, bkgd=None, key1=None, key2=None, key3=None, key4=None, me=1):
if (bkgd is None and key1 is None and key2 is None and key3 is None and key4 is None):
set_mask = 1
else:
set_mask = 3

tie_mask = 0
if bkgd:
tie_mask |= 1
if key1:
tie_mask |= 2
if key2:
tie_mask |= 4
if key3:
tie_mask |= 8
if key4:
tie_mask |= 16

self._sendCommand(
'CTTp',
[set_mask, me - 1, transitionStyle.value, tie_mask]
)
5 changes: 5 additions & 0 deletions src/avx/devices/net/tests/TestATEM.py
Original file line number Diff line number Diff line change
Expand Up @@ -467,3 +467,8 @@ def testPerformAutoTake(self):
self._init_with_defaults()
self.atem.performAutoTake()
self.assert_sent_packet('DAut', [0, 0, 0, 0])

def testSetNextTransition(self):
self._init_with_defaults()
self.atem.setNextTransition(TransitionStyle.MIX, bkgd=True, key1=True, key2=False, key3=False, key4=False, me=1)
self.assert_sent_packet('CTTp', [0x03, 0, 0, 0x03])

0 comments on commit f9d7152

Please sign in to comment.