1
0
Fork 0
baconscript/OscMacroDefinitions.py

164 lines
4.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""OscMacroDefinitions.py: Hog 4 comment macros in OSC for Python3."""
__author__ = "Kevin Matz"
__copyright__ = "Copyright 2018, Company 235, LLC"
__credits__ = ["Kevin Matz"]
__license__ = "MIT"
__version__ = "0.0.1"
__maintainer__ = "Kevin Matz"
__email__ = "kevin@company235.com"
__status__ = "Prototype"
def _master_go(self, ctx):
if ctx.number is not None:
print("GO MASTER doesn't support goto. "
+ "Cue number " + str(ctx.number.value) + " will be ignored.")
if (len(ctx.master.targets) == 0):
print("Main GO")
self.button_press(ctx.device, "/hog/hardware/maingo")
return 1
else:
for i in ctx.master.targets:
if isinstance(i, int) is not True:
print("GO MASTER macro targets must be intigers. "
+ str(i) + " is not an intigers.")
continue
if (i < 0):
print("Master " + str(i) + " should have been greater than 0.")
continue
master = str(i)
print("GO on master " + master)
self.button_press(ctx.device, "/hog/hardware/go/" + master)
return 1
def _master_halt(self, ctx):
if (len(ctx.master.targets) == 0):
print("Main HALT")
self.button_press(ctx.device, "/hog/hardware/mainhalt")
return 1
else:
for i in ctx.master.targets:
if isinstance(i, int) is not True:
print("GO MASTER macro targets must be intigers. "
+ str(i) + " is not an intigers.")
continue
if (i < 0):
print("Master " + str(i) + " should have been greater than 0.")
continue
master = str(i)
print("HALT on master " + master)
self.button_press(ctx.device, "/hog/hardware/pause/" + master)
return 1
def _master_fade(self, ctx):
level = ctx.number.value
if (level < 0 or level > 100):
print("Level must be between 0 and 100.")
return -1
if (len(ctx.master.targets) == 0):
print("MASTER FADE doesn't support unspecified current master.")
return -1
else:
for i in ctx.master.targets:
if isinstance(i, int) is not True:
print("FADE MASTER macro targets must be intigers. "
+ str(i) + " is not an intigers.")
continue
if (i < 0):
print("Master " + str(i) + " should have been greater than 0.")
continue
master = str(i)
print("Fade Master "+master+" to "+str(level)+"%")
level *= 255 / 100 # percent in Macro, 0>255 in OSC
self.send_message(ctx.device, "/hog/hardware/fader/"+master, level)
return 1
def _master_fade_grand(self, ctx):
level = ctx.number.value
if (level < 0 or level > 100):
print("Level must be between 0 and 100.")
return -1
print("Fading Grand Master to " + str(level) + "%")
level *= 255 / 100 # percent in Macro, 0>255 in OSC
self.send_message(ctx.device, "/hog/hardware/fader/0", level)
return 1
def _master_choose(self, ctx):
if (ctx.number.value < 0):
print("Master must be greater than 0.")
return -1
master = str(ctx.number.value)
print("Choose Master " + master)
self.button_press(ctx.device, "/hog/hardware/choose/" + master)
return 1
def _list_go(self, ctx):
for i in ctx.targets:
list = str(i)
if ctx.number is not None:
list += "." + str(ctx.number.value)
print("Go on List " + list)
self.send_message(ctx.device, "/hog/playback/go/0", list)
return 1
def _list_halt(self, ctx):
for i in ctx.targets:
print("Halting List " + str(i))
self.send_message(ctx.device, "/hog/playback/halt/0", i)
return 1
def _list_release(self, ctx):
for i in ctx.targets:
print("Releasing List " + str(i))
self.send_message(ctx.device, "/hog/playback/release/0", i)
return 1
def _scene_go(self, ctx):
for i in ctx.targets:
print("Go on Scene " + str(i))
self.send_message(ctx.device, "/hog/playback/go/1", i)
return 1
def _scene_halt(self, ctx):
for i in ctx.targets:
print("Halt Scene " + str(i))
self.send_message(ctx.device, "/hog/playback/halt/1", i)
return 1
def _scene_release(self, ctx):
for i in ctx.targets:
print("Release Scene " + str(i))
self.send_message(ctx.device, "/hog/playback/release/1", i)
return 1
command = {"GM": _master_go,
"HM": _master_halt,
"FM": _master_fade,
"FGM": _master_fade_grand,
"CM": _master_choose,
"GL": _list_go,
"HL": _list_halt,
"RL": _list_release,
"GS": _scene_go,
"HS": _scene_halt,
"RS": _scene_release
}