From 0cd50e32d893256fe3e83b4514e70e59e8c4db94 Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Sun, 3 Apr 2016 17:07:06 +1000 Subject: Added sidechain feature to ZamComp* and ZamGate* Signed-off-by: Damien Zammit --- dpf | 2 +- plugins/ZamCompX2/DistrhoPluginInfo.h | 2 +- plugins/ZamCompX2/ZamCompX2Artwork.cpp | 44 +++++++------- plugins/ZamCompX2/ZamCompX2Plugin.cpp | 40 ++++++++++++- plugins/ZamCompX2/ZamCompX2Plugin.hpp | 4 +- plugins/ZamCompX2/ZamCompX2UI.cpp | 11 ++++ plugins/ZamCompX2/ZamCompX2UI.hpp | 2 +- plugins/ZamCompX2/artwork/zamcompx2.png | Bin 36847 -> 37540 bytes plugins/ZamCompX2/artwork/zamcompx2.svg | 20 +++++-- plugins/ZamGate/DistrhoPluginInfo.h | 2 +- plugins/ZamGate/ZamGateArtwork.cpp | 96 ++++++++++++++++++++----------- plugins/ZamGate/ZamGateArtwork.hpp | 10 ++++ plugins/ZamGate/ZamGatePlugin.cpp | 34 ++++++++++- plugins/ZamGate/ZamGatePlugin.hpp | 4 +- plugins/ZamGate/ZamGateUI.cpp | 18 ++++++ plugins/ZamGate/ZamGateUI.hpp | 8 ++- plugins/ZamGate/artwork/zamgate.png | Bin 29932 -> 30694 bytes plugins/ZamGate/artwork/zamgate.svg | 30 +++++++--- plugins/ZamGateX2/DistrhoPluginInfo.h | 2 +- plugins/ZamGateX2/ZamGateX2Artwork.cpp | 98 +++++++++++++++++++++----------- plugins/ZamGateX2/ZamGateX2Artwork.hpp | 10 ++++ plugins/ZamGateX2/ZamGateX2Plugin.cpp | 44 ++++++++++++-- plugins/ZamGateX2/ZamGateX2Plugin.hpp | 4 +- plugins/ZamGateX2/ZamGateX2UI.cpp | 18 ++++++ plugins/ZamGateX2/ZamGateX2UI.hpp | 8 ++- plugins/ZamGateX2/artwork/zamgatex2.png | Bin 30461 -> 31270 bytes plugins/ZamGateX2/artwork/zamgatex2.svg | 18 +++++- 27 files changed, 407 insertions(+), 122 deletions(-) diff --git a/dpf b/dpf index 8721745..a94a994 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 87217454c38eb64c6cfafafd5d9b08d835c9a782 +Subproject commit a94a9948fce36771a2e9d2cc166033d09a12fe80 diff --git a/plugins/ZamCompX2/DistrhoPluginInfo.h b/plugins/ZamCompX2/DistrhoPluginInfo.h index ede078d..94b0b16 100644 --- a/plugins/ZamCompX2/DistrhoPluginInfo.h +++ b/plugins/ZamCompX2/DistrhoPluginInfo.h @@ -24,7 +24,7 @@ #define DISTRHO_PLUGIN_HAS_UI 1 #define DISTRHO_PLUGIN_IS_SYNTH 0 -#define DISTRHO_PLUGIN_NUM_INPUTS 2 +#define DISTRHO_PLUGIN_NUM_INPUTS 3 #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 #define DISTRHO_PLUGIN_WANT_LATENCY 0 diff --git a/plugins/ZamCompX2/ZamCompX2Artwork.cpp b/plugins/ZamCompX2/ZamCompX2Artwork.cpp index a856396..bb2a94b 100644 --- a/plugins/ZamCompX2/ZamCompX2Artwork.cpp +++ b/plugins/ZamCompX2/ZamCompX2Artwork.cpp @@ -2566,7 +2566,7 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 50, 19, 19, 20, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 115, 115, 115, 87, 87, 87, 87, 87, 87, 87, 87, 87, 124, 124, 124, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2604,9 +2604,9 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 84, 2, 2, 4, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 119, 119, 119, 7, 7, 7, 16, 16, 16, 30, 30, 30, 9, 9, 9, 18, 18, 18, 109, 109, 109, 44, 44, 44, 122, 122, 122, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 50, 50, 50, 129, 129, 129, 75, 75, 75, 43, 43, 43, 43, 43, 43, 43, 43, 43, 107, 107, 107, 103, 103, 103, 43, 43, 43, 43, 43, 43, 44, 44, 44, 110, 110, 110, 89, 89, 89, 59, 59, 59, 140, 140, 140, 128, 128, 128, 43, 43, 43, 114, 114, 114, 140, 140, 140, 80, 80, 80, 43, 43, 43, + 93, 93, 93, 140, 140, 140, 103, 103, 103, 48, 48, 48, 116, 116, 116, 43, 43, 43, 104, 104, 104, 140, 140, 140, 81, 81, 81, 83, 83, 83, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 64, 64, 64, 17, 17, 17, 4, 4, 4, 4, 4, 4, 17, 17, 17, 64, 64, 64, 70, 70, 70, 43, 43, 43, 43, 43, 43, 43, 43, 43, 84, 84, 84, 140, 140, 140, 44, 44, 44, 108, 108, 108, 57, 57, 57, 43, 43, 43, 111, 111, 111, 140, 140, 140, 139, 139, 139, 49, 49, 49, 43, 43, 43, 118, 118, 118, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2642,9 +2642,9 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 7, 0, 0, 0, 8, 8, 8, 8, 8, 8, 111, 111, 111, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 100, 100, 100, 0, 0, 0, 102, 102, 102, 140, 140, 140, 94, 94, 94, 48, 48, 48, 95, 95, 95, 0, 0, 0, 116, 116, 116, 0, 0, 0, + 68, 68, 68, 91, 91, 91, 16, 16, 16, 51, 51, 51, 44, 44, 44, 27, 27, 27, 87, 87, 87, 87, 87, 87, 122, 122, 122, 5, 5, 5, 42, 42, 42, 92, 92, 92, 38, 38, 38, 15, 15, 15, 66, 66, 66, 21, 21, 21, 140, 140, 140, 123, 123, 123, 0, 0, 0, 100, 100, 100, 140, 140, 140, + 19, 19, 19, 29, 29, 29, 37, 37, 37, 140, 140, 140, 86, 86, 86, 6, 6, 6, 105, 105, 105, 0, 0, 0, 26, 26, 26, 139, 139, 139, 53, 53, 53, 57, 57, 57, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 31, 31, 31, 35, 35, 35, 140, 140, 140, 140, 140, 140, 37, 37, 37, 28, 28, 28, 96, 96, 96, 66, 66, 66, 0, 0, 0, 122, 122, 122, 0, 0, 0, 93, 93, 93, 19, 19, 19, 12, 12, 12, 63, 63, 63, 140, 140, 140, 105, 105, 105, 10, 10, 10, 0, 0, 0, 107, 107, 107, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2680,9 +2680,9 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 88, 2, 2, 3, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 103, 103, 103, 0, 0, 0, 35, 35, 35, 52, 52, 52, 52, 52, 52, 105, 105, 105, 96, 96, 96, 0, 0, 0, + 117, 117, 117, 0, 0, 0, 103, 103, 103, 140, 140, 140, 41, 41, 41, 46, 46, 46, 44, 44, 44, 35, 35, 35, 114, 114, 114, 114, 114, 114, 138, 138, 138, 2, 2, 2, 76, 76, 76, 140, 140, 140, 111, 111, 111, 88, 88, 88, 66, 66, 66, 18, 18, 18, 118, 118, 118, 104, 104, 104, 0, 0, 0, + 100, 100, 100, 120, 120, 120, 0, 0, 0, 97, 97, 97, 3, 3, 3, 134, 134, 134, 86, 86, 86, 6, 6, 6, 105, 105, 105, 0, 0, 0, 14, 14, 14, 91, 91, 91, 53, 53, 53, 57, 57, 57, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 31, 31, 31, 35, 35, 35, 140, 140, 140, 140, 140, 140, 37, 37, 37, 41, 41, 41, 140, 140, 140, 104, 104, 104, 0, 0, 0, 120, 120, 120, 0, 0, 0, 93, 93, 93, 19, 19, 19, 54, 54, 54, 21, 21, 21, 140, 140, 140, 60, 60, 60, 52, 52, 52, 0, 0, 0, 107, 107, 107, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2718,9 +2718,9 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 253, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 55, 17, 17, 19, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 139, 139, 139, 70, 70, 70, 48, 48, 48, 48, 48, 48, 20, 20, 20, 4, 4, 4, + 94, 94, 94, 0, 0, 0, 117, 117, 117, 0, 0, 0, 103, 103, 103, 140, 140, 140, 41, 41, 41, 46, 46, 46, 44, 44, 44, 4, 4, 4, 13, 13, 13, 13, 13, 13, 128, 128, 128, 2, 2, 2, 76, 76, 76, 140, 140, 140, 140, 140, 140, 140, 140, 140, 66, 66, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 100, 100, 100, 81, 81, 81, 23, 23, 23, 137, 137, 137, 5, 5, 5, 98, 98, 98, 86, 86, 86, 6, 6, 6, 105, 105, 105, 0, 0, 0, 82, 82, 82, 19, 19, 19, 50, 50, 50, 57, 57, 57, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 31, 31, 31, 35, 35, 35, 140, 140, 140, 140, 140, 140, 37, 37, 37, 4, 4, 4, 13, 13, 13, 6, 6, 6, 36, 36, 36, 136, 136, 136, 0, 0, 0, 93, 93, 93, 19, 19, 19, 90, 90, 90, 5, 5, 5, 121, 121, 121, 19, 19, 19, 94, 94, 94, 0, 0, 0, 105, 105, 105, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2756,9 +2756,9 @@ static const unsigned char temp_zamcompx2_6[] = { 3, 3, 6, 0, 0, 0, 0, 0, 31, 0, 0, 183, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 22, 35, 35, 35, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 114, 114, 114, 57, 57, 57, 120, 120, 120, 140, 140, 140, + 69, 69, 69, 0, 0, 0, 94, 94, 94, 0, 0, 0, 117, 117, 117, 0, 0, 0, 103, 103, 103, 140, 140, 140, 41, 41, 41, 46, 46, 46, 44, 44, 44, 43, 43, 43, 140, 140, 140, 140, 140, 140, 140, 140, 140, 2, 2, 2, 76, 76, 76, 140, 140, 140, 96, 96, 96, 61, 61, 61, 66, 66, 66, + 20, 20, 20, 131, 131, 131, 115, 115, 115, 0, 0, 0, 100, 100, 100, 42, 42, 42, 1, 1, 1, 4, 4, 4, 1, 1, 1, 58, 58, 58, 86, 86, 86, 6, 6, 6, 105, 105, 105, 0, 0, 0, 137, 137, 137, 19, 19, 19, 7, 7, 7, 57, 57, 57, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 31, 31, 31, 35, 35, 35, 140, 140, 140, 140, 140, 140, 37, 37, 37, 38, 38, 38, 131, 131, 131, 27, 27, 27, 58, 58, 58, 139, 139, 139, 0, 0, 0, 93, 93, 93, 19, 19, 19, 95, 95, 95, 42, 42, 42, 57, 57, 57, 12, 12, 12, 123, 123, 123, 0, 0, 0, 105, 105, 105, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2794,9 +2794,9 @@ static const unsigned char temp_zamcompx2_6[] = { 140, 140, 140, 140, 140, 140, 133, 133, 133, 55, 55, 57, 1, 1, 2, 0, 0, 0, 0, 0, 56, 0, 0, 206, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 244, 0, 0, 0, 52, 52, 52, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 109, 109, 109, 1, 1, 1, + 30, 30, 30, 48, 48, 48, 18, 18, 18, 14, 14, 14, 95, 95, 95, 0, 0, 0, 117, 117, 117, 0, 0, 0, 45, 45, 45, 61, 61, 61, 8, 8, 8, 59, 59, 59, 44, 44, 44, 18, 18, 18, 57, 57, 57, 57, 57, 57, 107, 107, 107, 14, 14, 14, 26, 26, 26, 65, 65, 65, 25, 25, 25, + 31, 31, 31, 66, 66, 66, 21, 21, 21, 140, 140, 140, 123, 123, 123, 0, 0, 0, 98, 98, 98, 7, 7, 7, 89, 89, 89, 122, 122, 122, 65, 65, 65, 18, 18, 18, 86, 86, 86, 6, 6, 6, 105, 105, 105, 0, 0, 0, 140, 140, 140, 89, 89, 89, 0, 0, 0, 57, 57, 57, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 31, 31, 31, 35, 35, 35, 140, 140, 140, 140, 140, 140, 37, 37, 37, 41, 41, 41, 140, 140, 140, 77, 77, 77, 13, 13, 13, 138, 138, 138, 0, 0, 0, 93, 93, 93, 19, 19, 19, 95, 95, 95, 83, 83, 83, 1, 1, 1, 53, 53, 53, 124, 124, 124, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2833,9 +2833,9 @@ static const unsigned char temp_zamcompx2_6[] = { 0, 0, 212, 0, 0, 0, 69, 69, 69, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 98, 98, 98, 70, 70, 70, 70, 70, 70, 70, 70, 70, 119, 119, 119, 119, 119, 119, 70, 70, 70, 129, 129, 129, 70, 70, 70, 70, 70, 70, 70, 70, 70, 78, 78, 78, 138, 138, 138, 93, 93, 93, 70, 70, 70, 70, 70, 70, 70, 70, 70, 112, 112, 112, 120, 120, 120, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 126, 126, 126, 104, 104, 104, 81, 81, 81, 140, 140, 140, 132, 132, 132, 70, 70, 70, 111, 111, 111, 70, 70, 70, 134, 134, 134, 140, 140, 140, 123, 123, 123, 70, 70, 70, 109, 109, 109, 74, 74, 74, 124, 124, 124, 71, 71, 71, 140, 140, 140, 139, 139, 139, 74, 74, 74, + 99, 99, 99, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 86, 86, 86, 88, 88, 88, 140, 140, 140, 140, 140, 140, 90, 90, 90, 91, 91, 91, 140, 140, 140, 127, 127, 127, 70, 70, 70, 129, 129, 129, 70, 70, 70, 117, 117, 117, 80, 80, 80, 118, 118, 118, 127, 127, 127, 70, 70, 70, 112, 112, 112, 132, 132, 132, 70, 70, 70, 122, 122, 122, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, diff --git a/plugins/ZamCompX2/ZamCompX2Plugin.cpp b/plugins/ZamCompX2/ZamCompX2Plugin.cpp index 23eb33f..5e2b872 100644 --- a/plugins/ZamCompX2/ZamCompX2Plugin.cpp +++ b/plugins/ZamCompX2/ZamCompX2Plugin.cpp @@ -98,8 +98,17 @@ void ZamCompX2Plugin::initParameter(uint32_t index, Parameter& parameter) parameter.ranges.min = 1.0f; parameter.ranges.max = 150.0f; break; + case paramSidechain: + parameter.hints = kParameterIsAutomable | kParameterIsBoolean; + parameter.name = "Sidechain"; + parameter.symbol = "sidechain"; + parameter.unit = " "; + parameter.ranges.def = 0.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 1.0f; + break; case paramStereo: - parameter.hints = kParameterIsAutomable | kParameterIsInteger; + parameter.hints = kParameterIsAutomable | kParameterIsBoolean; parameter.name = "Stereo Detection"; parameter.symbol = "stereodet"; parameter.unit = " "; @@ -128,6 +137,16 @@ void ZamCompX2Plugin::initParameter(uint32_t index, Parameter& parameter) } } +void ZamCompX2Plugin::initAudioPort(bool input, uint32_t index, AudioPort& port) +{ + Plugin::initAudioPort(input, index, port); + + if ((index == 2) && input) { + port.hints |= kAudioPortIsSidechain; + port.name = "Sidechain Input"; + port.symbol = "sidechain_in"; + } +} void ZamCompX2Plugin::initProgramName(uint32_t index, String& programName) { @@ -156,6 +175,7 @@ void ZamCompX2Plugin::loadProgram(uint32_t index) makeup = 0.0; gainred = 0.0; slewfactor = 1.0; + sidechain = 0.0; stereodet = 0.0; outlevel = -45.0; break; @@ -168,6 +188,7 @@ void ZamCompX2Plugin::loadProgram(uint32_t index) makeup = 6.0; gainred = 0.0; slewfactor = 20.0; + sidechain = 0.0; stereodet = 1.0; outlevel = -45.0; break; @@ -180,6 +201,7 @@ void ZamCompX2Plugin::loadProgram(uint32_t index) makeup = 9.0; gainred = 0.0; slewfactor = 1.0; + sidechain = 0.0; stereodet = 1.0; outlevel = -45.0; break; @@ -216,6 +238,9 @@ float ZamCompX2Plugin::getParameterValue(uint32_t index) const case paramSlew: return slewfactor; break; + case paramSidechain: + return sidechain; + break; case paramStereo: return stereodet; break; @@ -255,6 +280,9 @@ void ZamCompX2Plugin::setParameterValue(uint32_t index, float value) case paramSlew: slewfactor = value; break; + case paramSidechain: + sidechain = value; + break; case paramStereo: stereodet = value; break; @@ -286,6 +314,7 @@ void ZamCompX2Plugin::run(const float** inputs, float** outputs, uint32_t frames float attack_coeff = exp(-1000.f/(attack * srate)); float release_coeff = exp(-1000.f/(release * srate)); int stereo = (stereodet < 0.5) ? STEREOLINK_AVERAGE : STEREOLINK_MAX; + bool usesidechain = (sidechain < 0.5) ? false : true; int attslew = 0; int relslew = 0; @@ -303,8 +332,13 @@ void ZamCompX2Plugin::run(const float** inputs, float** outputs, uint32_t frames relslew = 0; attslew = 0; Lyg = Ryg = 0.f; - Lxg = (inputs[0][i]==0.f) ? -160.f : to_dB(fabs(inputs[0][i])); - Rxg = (inputs[1][i]==0.f) ? -160.f : to_dB(fabs(inputs[1][i])); + if (usesidechain) { + Lxg = (inputs[2][i]==0.f) ? -160.f : to_dB(fabs(inputs[2][i])); + Rxg = Lxg; + } else { + Lxg = (inputs[0][i]==0.f) ? -160.f : to_dB(fabs(inputs[0][i])); + Rxg = (inputs[1][i]==0.f) ? -160.f : to_dB(fabs(inputs[1][i])); + } Lxg = sanitize_denormal(Lxg); Rxg = sanitize_denormal(Rxg); diff --git a/plugins/ZamCompX2/ZamCompX2Plugin.hpp b/plugins/ZamCompX2/ZamCompX2Plugin.hpp index 5df3fe0..8c2af03 100644 --- a/plugins/ZamCompX2/ZamCompX2Plugin.hpp +++ b/plugins/ZamCompX2/ZamCompX2Plugin.hpp @@ -41,6 +41,7 @@ public: paramMakeup, paramSlew, paramStereo, + paramSidechain, paramGainRed, paramOutputLevel, paramCount @@ -92,6 +93,7 @@ protected: void initParameter(uint32_t index, Parameter& parameter) override; void initProgramName(uint32_t index, String& programName) override; + void initAudioPort(bool input, uint32_t index, AudioPort& port) override; // ------------------------------------------------------------------- // Internal data @@ -126,7 +128,7 @@ protected: // ------------------------------------------------------------------- private: - float attack,release,knee,ratio,thresdb,makeup,gainred,outlevel,stereodet,slewfactor; //parameters + float attack,release,knee,ratio,thresdb,makeup,gainred,outlevel,sidechain,stereodet,slewfactor; //parameters float oldL_yl, oldL_y1, oldR_yl, oldR_y1, oldL_yg, oldR_yg; }; diff --git a/plugins/ZamCompX2/ZamCompX2UI.cpp b/plugins/ZamCompX2/ZamCompX2UI.cpp index 13cf50b..7c3d2ff 100644 --- a/plugins/ZamCompX2/ZamCompX2UI.cpp +++ b/plugins/ZamCompX2/ZamCompX2UI.cpp @@ -105,6 +105,11 @@ ZamCompX2UI::ZamCompX2UI() fKnobSlew->setRotationAngle(240); fKnobSlew->setCallback(this); + fToggleSidechain = new ImageSwitch(this, fToggleOffImg, fToggleOnImg); + fToggleSidechain->setAbsolutePos(500, 61); + fToggleSidechain->setId(ZamCompX2Plugin::paramSidechain); + fToggleSidechain->setCallback(this); + fToggleStereo = new ImageSwitch(this, fToggleOffImg, fToggleOnImg); fToggleStereo->setAbsolutePos(740, 61); fToggleStereo->setId(ZamCompX2Plugin::paramStereo); @@ -142,6 +147,9 @@ void ZamCompX2UI::parameterChanged(uint32_t index, float value) case ZamCompX2Plugin::paramSlew: fKnobSlew->setValue(value); break; + case ZamCompX2Plugin::paramSidechain: + fToggleSidechain->setDown(value > 0.5); + break; case ZamCompX2Plugin::paramStereo: fToggleStereo->setDown(value > 0.5); break; @@ -174,6 +182,7 @@ void ZamCompX2UI::programLoaded(uint32_t index) fKnobMakeup->setValue(0.0f); fKnobSlew->setValue(1.0f); fToggleStereo->setDown(false); + fToggleSidechain->setDown(false); break; case 1: fKnobAttack->setValue(10.0f); @@ -184,6 +193,7 @@ void ZamCompX2UI::programLoaded(uint32_t index) fKnobMakeup->setValue(6.0f); fKnobSlew->setValue(20.0f); fToggleStereo->setDown(true); + fToggleSidechain->setDown(false); break; case 2: fKnobAttack->setValue(50.0f); @@ -194,6 +204,7 @@ void ZamCompX2UI::programLoaded(uint32_t index) fKnobMakeup->setValue(9.0f); fKnobSlew->setValue(1.0f); fToggleStereo->setDown(true); + fToggleSidechain->setDown(false); break; } } diff --git a/plugins/ZamCompX2/ZamCompX2UI.hpp b/plugins/ZamCompX2/ZamCompX2UI.hpp index c17db79..97e9d4f 100644 --- a/plugins/ZamCompX2/ZamCompX2UI.hpp +++ b/plugins/ZamCompX2/ZamCompX2UI.hpp @@ -59,7 +59,7 @@ private: Image fImgBackground; ScopedPointer fKnobAttack, fKnobRelease, fKnobThresh; ScopedPointer fKnobRatio, fKnobKnee, fKnobMakeup, fKnobSlew; - ScopedPointer fToggleStereo; + ScopedPointer fToggleStereo, fToggleSidechain; Image fLedRedImg; float fLedRedValue; diff --git a/plugins/ZamCompX2/artwork/zamcompx2.png b/plugins/ZamCompX2/artwork/zamcompx2.png index 59dd2e5..5f30ebe 100644 Binary files a/plugins/ZamCompX2/artwork/zamcompx2.png and b/plugins/ZamCompX2/artwork/zamcompx2.png differ diff --git a/plugins/ZamCompX2/artwork/zamcompx2.svg b/plugins/ZamCompX2/artwork/zamcompx2.svg index 02fc52a..317ffff 100644 --- a/plugins/ZamCompX2/artwork/zamcompx2.svg +++ b/plugins/ZamCompX2/artwork/zamcompx2.svg @@ -4636,8 +4636,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.90509668" - inkscape:cx="255.28771" - inkscape:cy="38.401941" + inkscape:cx="545.35378" + inkscape:cy="-67.138394" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -5071,7 +5071,7 @@ sodipodi:end="6.8187738" sodipodi:start="2.6132357" transform="translate(-341,903.6588)" - d="m 456.93331,117.17445 a 24.748737,24.748737 0 1 1 42.65704,0.15424 l -21.28313,-12.63045 z" + d="m 456.93331,117.17445 c -6.89042,-11.80448 -2.90679,-26.9597 8.8977,-33.850121 11.80449,-6.890421 26.9597,-2.906784 33.85012,8.897703 4.53206,7.764198 4.49731,17.375438 -0.0908,25.106658 l -21.28313,-12.63045 z" sodipodi:ry="24.748737" sodipodi:rx="24.748737" sodipodi:cy="104.69824" @@ -5107,7 +5107,7 @@ sodipodi:cy="104.69824" sodipodi:rx="24.748737" sodipodi:ry="24.748737" - d="m 456.67602,116.72286 a 24.748737,24.748737 0 1 1 43.35985,-0.17702 l -21.72865,-11.8476 z" + d="m 456.67602,116.72286 c -6.64101,-11.94658 -2.33999,-27.014803 9.60659,-33.655814 11.94658,-6.641011 27.0148,-2.339998 33.65581,9.606582 4.12181,7.414772 4.15859,16.424042 0.0974,23.872212 l -21.72865,-11.8476 z" transform="translate(-341,903.6588)" /> Max + Sidechain diff --git a/plugins/ZamGate/DistrhoPluginInfo.h b/plugins/ZamGate/DistrhoPluginInfo.h index b66a602..a99e642 100644 --- a/plugins/ZamGate/DistrhoPluginInfo.h +++ b/plugins/ZamGate/DistrhoPluginInfo.h @@ -24,7 +24,7 @@ #define DISTRHO_PLUGIN_HAS_UI 1 #define DISTRHO_PLUGIN_IS_SYNTH 0 -#define DISTRHO_PLUGIN_NUM_INPUTS 1 +#define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_OUTPUTS 1 #define DISTRHO_PLUGIN_WANT_LATENCY 0 diff --git a/plugins/ZamGate/ZamGateArtwork.cpp b/plugins/ZamGate/ZamGateArtwork.cpp index 0aa58ff..a3b5776 100644 --- a/plugins/ZamGate/ZamGateArtwork.cpp +++ b/plugins/ZamGate/ZamGateArtwork.cpp @@ -2,7 +2,7 @@ #include "ZamGateArtwork.hpp" -static const unsigned char temp1[] = { +static const unsigned char temp_knob_1[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 2, 0, 0, 0, 66, 0, 0, 0, 146, 0, 0, 0, 206, 3, 3, 3, 237, 5, 5, 5, 243, 6, 6, 6, 246, 6, 6, 6, 249, 5, 5, 5, 249, 3, 3, 3, 230, 0, 0, 0, 193, 0, 0, 0, 140, 0, 0, 0, 77, 0, 0, 0, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 38, 0, 0, 0, 175, 5, 5, 5, 247, 14, 14, 14, 255, 20, 20, 20, 255, 25, 25, 25, 255, 29, 29, 29, 255, 31, 31, 31, 255, 33, 33, 33, 255, @@ -88,27 +88,59 @@ static const unsigned char temp1[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 4, 0, 0, 0, 82, 0, 0, 0, 148, 0, 0, 0, 200, 1, 1, 1, 228, 3, 3, 3, 242, 3, 3, 3, 241, 3, 3, 3, 236, 2, 2, 2, 232, 1, 1, 1, 226, 0, 0, 0, 202, 0, 0, 0, 141, 0, 0, 0, 60, 0, 0, 0, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, }; -const char* ZamGateArtwork::knobData = (const char*)temp1; +const char* ZamGateArtwork::knobData = (const char*)temp_knob_1; -static const unsigned char temp2[] = { +static const unsigned char temp_ledred_2[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 37, 234, 234, 255, 207, 165, 165, 255, 245, 129, 129, 255, 254, 165, 165, 255, 245, 234, 234, 255, 207, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 106, 134, 134, 255, 253, 0, 1, 255, 255, 0, 7, 255, 255, 0, 9, 255, 255, 0, 7, 255, 255, 0, 1, 255, 255, 134, 134, 255, 253, 255, 255, 255, 106, 255, 255, 255, 0, 255, 255, 255, 37, 134, 134, 255, 253, 0, 5, 255, 255, 0, 15, 255, 255, 0, 22, 255, 255, 0, 25, 255, 255, 0, 22, 255, 255, 0, 15, 255, 255, 0, 5, 255, 255, 134, 134, 255, 253, 255, 255, 255, 37, 234, 234, 255, 207, 0, 1, 255, 255, 0, 15, 255, 255, 0, 28, 255, 255, 0, 38, 255, 255, 0, 41, 255, 255, 0, 38, 255, 255, 0, 28, 255, 255, 0, 15, 255, 255, 0, 1, 255, 255, 234, 234, 255, 207, 165, 165, 255, 245, 0, 7, 255, 255, 0, 22, 255, 255, 0, 38, 255, 255, 0, 51, 255, 255, 0, 58, 255, 255, 0, 51, 255, 255, 0, 38, 255, 255, 0, 22, 255, 255, 0, 7, 255, 255, 165, 165, 255, 245, 129, 129, 255, 254, 0, 9, 255, 255, 0, 25, 255, 255, 0, 41, 255, 255, 0, 58, 255, 255, 0, 74, 255, 255, 0, 58, 255, 255, 0, 41, 255, 255, 0, 25, 255, 255, 0, 9, 255, 255, 129, 129, 255, 254, 165, 165, 255, 245, 0, 7, 255, 255, 0, 22, 255, 255, 0, 38, 255, 255, 0, 51, 255, 255, 0, 58, 255, 255, 0, 51, 255, 255, 0, 38, 255, 255, 0, 22, 255, 255, 0, 7, 255, 255, 165, 165, 255, 245, 234, 234, 255, 207, 0, 1, 255, 255, 0, 15, 255, 255, 0, 28, 255, 255, 0, 38, 255, 255, 0, 41, 255, 255, 0, 38, 255, 255, 0, 28, 255, 255, 0, 15, 255, 255, 0, 1, 255, 255, 234, 234, 255, 207, 255, 255, 255, 37, 134, 134, 255, 253, 0, 5, 255, 255, 0, 15, 255, 255, 0, 22, 255, 255, 0, 25, 255, 255, 0, 22, 255, 255, 0, 15, 255, 255, 0, 5, 255, 255, 134, 134, 255, 253, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 106, 134, 134, 255, 253, 0, 1, 255, 255, 0, 7, 255, 255, 0, 9, 255, 255, 0, 7, 255, 255, 0, 1, 255, 255, 134, 134, 255, 253, 255, 255, 255, 106, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 37, 234, 234, 255, 207, 165, 165, 255, 245, 129, 129, 255, 254, 165, 165, 255, 245, 234, 234, 255, 207, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 0,}; -const char* ZamGateArtwork::ledredData = (const char*)temp2; +const char* ZamGateArtwork::ledredData = (const char*)temp_ledred_2; -static const unsigned char temp3[] = { +static const unsigned char temp_ledyellow_3[] = { 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 60, 0, 255, 255, 217, 0, 255, 255, 224, 0, 255, 255, 214, 0, 255, 255, 210, 0, 255, 255, 214, 0, 255, 255, 224, 0, 255, 255, 217, 0, 255, 255, 60, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 198, 0, 255, 255, 185, 0, 255, 255, 180, 0, 255, 255, 185, 0, 255, 255, 198, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 224, 0, 255, 255, 198, 0, 255, 255, 175, 0, 255, 255, 157, 0, 255, 255, 150, 0, 255, 255, 157, 0, 255, 255, 175, 0, 255, 255, 198, 0, 255, 255, 224, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 214, 0, 255, 255, 185, 0, 255, 255, 157, 0, 255, 255, 132, 3, 255, 243, 152, 0, 255, 255, 132, 0, 255, 255, 157, 0, 255, 255, 185, 0, 255, 255, 214, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 210, 0, 255, 255, 180, 0, 255, 255, 150, 3, 255, 243, 152, 19, 255, 191, 255, 3, 255, 243, 152, 0, 255, 255, 150, 0, 255, 255, 180, 0, 255, 255, 210, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 214, 0, 255, 255, 185, 0, 255, 255, 157, 0, 255, 255, 132, 3, 255, 243, 152, 0, 255, 255, 132, 0, 255, 255, 157, 0, 255, 255, 185, 0, 255, 255, 214, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 224, 0, 255, 255, 198, 0, 255, 255, 175, 0, 255, 255, 157, 0, 255, 255, 150, 0, 255, 255, 157, 0, 255, 255, 175, 0, 255, 255, 198, 0, 255, 255, 224, 0, 255, 255, 142, 0, 255, 255, 19, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 198, 0, 255, 255, 185, 0, 255, 255, 180, 0, 255, 255, 185, 0, 255, 255, 198, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 19, 255, 255, 255, 0, 0, 255, 255, 60, 0, 255, 255, 217, 0, 255, 255, 224, 0, 255, 255, 214, 0, 255, 255, 210, 0, 255, 255, 214, 0, 255, 255, 224, 0, 255, 255, 217, 0, 255, 255, 60, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0,}; -const char* ZamGateArtwork::ledyellowData = (const char*)temp3; +const char* ZamGateArtwork::ledyellowData = (const char*)temp_ledyellow_3; -static const unsigned char temp4[] = { +static const unsigned char temp_toggleoff_4[] = { + 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 203, + 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 6, 255, 0, 0, 36, 228, 0, 0, 33, 222, 0, 0, 29, 221, 0, 0, 25, 221, 0, 0, 21, 220, 0, 0, 17, 219, 0, 0, 14, 219, 0, 0, 4, 220, 0, 0, 0, 220, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 224, + 0, 0, 0, 255, 0, 0, 0, 199, 0, 0, 0, 255, 0, 0, 38, 227, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 38, 227, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 203, 0, 0, 6, 255, 0, 0, 36, 228, 0, 0, 33, 222, 0, 0, 29, 221, 0, 0, 25, 221, 0, 0, 21, 220, 0, 0, 17, 219, 0, 0, 14, 219, 0, 0, 4, 220, 0, 0, 0, 220, + 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 224, 0, 0, 0, 255, 0, 0, 0, 199, 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, + 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 203, 0, 0, 0, 61,}; +const char* ZamGateArtwork::toggleoffData = (const char*)temp_toggleoff_4; + +static const unsigned char temp_toggleon_5[] = { + 0, 0, 0, 83, 0, 0, 0, 225, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, + 0, 0, 0, 81, 0, 0, 0, 225, 0, 0, 0, 254, 0, 0, 0, 217, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 5, 0, 223, 0, 14, 0, 219, 0, 17, 0, 219, 0, 22, 0, 220, 0, 25, 0, 221, 0, 29, 0, 221, 0, 32, 0, 222, 0, 36, 0, 224, + 0, 6, 0, 254, 0, 0, 0, 222, 0, 0, 0, 255, 0, 0, 0, 217, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, + 0, 180, 0, 238, 0, 39, 0, 224, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, + 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, + 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, + 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, + 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, + 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, + 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 217, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 224, 0, 0, 0, 255, 0, 0, 0, 225, 0, 0, 0, 254, 0, 0, 0, 217, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, + 0, 0, 0, 216, 0, 5, 0, 223, 0, 14, 0, 219, 0, 17, 0, 219, 0, 22, 0, 220, 0, 25, 0, 221, 0, 29, 0, 221, 0, 32, 0, 222, 0, 36, 0, 224, 0, 6, 0, 254, 0, 0, 0, 222, 0, 0, 0, 83, 0, 0, 0, 225, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, + 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, 0, 0, 0, 81,}; +const char* ZamGateArtwork::toggleonData = (const char*)temp_toggleon_5; + +static const unsigned char temp_zamgate_6[] = { 191, 191, 191, 151, 151, 151, 176, 176, 176, 203, 203, 203, 219, 219, 219, 217, 217, 217, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, @@ -2028,9 +2060,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 110, 0, 0, 0, 128, 128, 128, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 100, 100, 100, 22, 22, 22, 21, 21, 21, 21, 21, 21, 24, 24, 24, 109, 109, 109, 137, 137, 137, 132, 132, 132, 139, 139, 139, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 138, 138, 138, 140, 140, 140, 132, 132, 132, 131, 131, 131, 131, 131, 131, 131, 131, 131, 137, 137, 137, 140, 140, 140, 133, 133, 133, 131, 131, 131, 131, 131, 131, 136, 136, 136, 140, 140, 140, 133, 133, 133, 135, 135, 135, 140, 140, 140, 139, 139, 139, 131, 131, 131, 137, 137, 137, 140, 140, 140, 138, 138, 138, + 131, 131, 131, 132, 132, 132, 140, 140, 140, 140, 140, 140, 135, 135, 135, 133, 133, 133, 138, 138, 138, 131, 131, 131, 138, 138, 138, 140, 140, 140, 138, 138, 138, 132, 132, 132, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2059,9 +2091,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 142, 0, 0, 0, 109, 109, 109, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 6, 6, 6, 16, 16, 16, 79, 79, 79, 76, 76, 76, 5, 5, 5, 23, 23, 23, 77, 77, 77, 0, 0, 0, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, + 81, 81, 81, 1, 1, 1, 0, 0, 0, 0, 0, 0, 16, 16, 16, 122, 122, 122, 16, 16, 16, 49, 49, 49, 140, 140, 140, 121, 121, 121, 0, 0, 0, 85, 85, 85, 140, 140, 140, 89, 89, 89, 1, 1, 1, 0, 0, 0, 126, 126, 126, 140, 140, 140, 52, 52, 52, 18, 18, 18, 102, 102, 102, + 0, 0, 0, 57, 57, 57, 140, 140, 140, 102, 102, 102, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2089,9 +2121,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 174, 0, 0, 0, 91, 91, 91, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 2, 2, 2, 42, 42, 42, 140, 140, 140, 140, 140, 140, 92, 92, 92, 92, 92, 92, + 77, 77, 77, 0, 0, 0, 125, 125, 125, 0, 0, 0, 68, 68, 68, 127, 127, 127, 78, 78, 78, 0, 0, 0, 99, 99, 99, 0, 0, 0, 68, 68, 68, 122, 122, 122, 122, 122, 122, 134, 134, 134, 16, 16, 16, 29, 29, 29, 131, 131, 131, 113, 113, 113, 0, 0, 0, 71, 71, 71, 16, 16, 16, + 49, 49, 49, 140, 140, 140, 121, 121, 121, 0, 0, 0, 85, 85, 85, 140, 140, 140, 51, 51, 51, 41, 41, 41, 9, 9, 9, 87, 87, 87, 140, 140, 140, 52, 52, 52, 18, 18, 18, 102, 102, 102, 0, 0, 0, 2, 2, 2, 120, 120, 120, 102, 102, 102, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2120,9 +2152,9 @@ static const unsigned char temp4[] = { 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 12, 0, 0, 0, 5, 5, 5, 8, 8, 8, 62, 62, 62, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 8, 8, 8, 4, 4, 4, 26, 26, 26, 26, 26, 26, 30, 30, 30, 113, 113, 113, 77, 77, 77, 0, 0, 0, 125, 125, 125, 0, 0, 0, 74, 74, 74, 140, 140, 140, 101, 101, 101, + 0, 0, 0, 99, 99, 99, 0, 0, 0, 53, 53, 53, 96, 96, 96, 96, 96, 96, 136, 136, 136, 16, 16, 16, 40, 40, 40, 140, 140, 140, 138, 138, 138, 105, 105, 105, 123, 123, 123, 16, 16, 16, 37, 37, 37, 105, 105, 105, 91, 91, 91, 0, 0, 0, 85, 85, 85, 140, 140, 140, 13, 13, 13, + 78, 78, 78, 42, 42, 42, 46, 46, 46, 140, 140, 140, 52, 52, 52, 18, 18, 18, 102, 102, 102, 0, 0, 0, 22, 22, 22, 48, 48, 48, 102, 102, 102, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2151,9 +2183,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 177, 0, 0, 0, 89, 89, 89, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 107, 107, 107, 52, 52, 52, 52, 52, 52, 52, 52, 52, 3, 3, 3, 23, 23, 23, 77, 77, 77, 0, 0, 0, 125, 125, 125, 0, 0, 0, 74, 74, 74, 140, 140, 140, 101, 101, 101, 0, 0, 0, 99, 99, 99, 0, 0, 0, 9, 9, 9, 17, 17, 17, 17, 17, 17, 128, 128, 128, + 16, 16, 16, 40, 40, 40, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 115, 115, 115, 0, 0, 0, 113, 113, 113, 77, 77, 77, 8, 8, 8, 138, 138, 138, 52, 52, 52, 18, 18, 18, 102, 102, 102, + 0, 0, 0, 94, 94, 94, 1, 1, 1, 75, 75, 75, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2181,9 +2213,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 146, 0, 0, 0, 106, 106, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 137, 137, 137, 61, 61, 61, 88, 88, 88, 140, 140, 140, 140, 140, 140, 19, 19, 19, 20, 20, 20, + 77, 77, 77, 0, 0, 0, 125, 125, 125, 0, 0, 0, 74, 74, 74, 140, 140, 140, 101, 101, 101, 0, 0, 0, 99, 99, 99, 0, 0, 0, 77, 77, 77, 140, 140, 140, 140, 140, 140, 140, 140, 140, 16, 16, 16, 40, 40, 40, 140, 140, 140, 137, 137, 137, 53, 53, 53, 100, 100, 100, 16, 16, 16, + 46, 46, 46, 131, 131, 131, 114, 114, 114, 0, 0, 0, 85, 85, 85, 77, 77, 77, 0, 0, 0, 4, 4, 4, 3, 3, 3, 0, 0, 0, 107, 107, 107, 52, 52, 52, 18, 18, 18, 102, 102, 102, 0, 0, 0, 126, 126, 126, 42, 42, 42, 9, 9, 9, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2212,9 +2244,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 114, 0, 0, 0, 123, 123, 123, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 135, 135, 135, 4, 4, 4, 14, 14, 14, 65, 65, 65, 64, 64, 64, 4, 4, 4, 27, 27, 27, 77, 77, 77, 0, 0, 0, 125, 125, 125, 0, 0, 0, 44, 44, 44, 83, 83, 83, 48, 48, 48, + 0, 0, 0, 104, 104, 104, 0, 0, 0, 43, 43, 43, 79, 79, 79, 79, 79, 79, 114, 114, 114, 21, 21, 21, 13, 13, 13, 82, 82, 82, 70, 70, 70, 0, 0, 0, 80, 80, 80, 16, 16, 16, 49, 49, 49, 140, 140, 140, 121, 121, 121, 0, 0, 0, 85, 85, 85, 39, 39, 39, 38, 38, 38, + 109, 109, 109, 109, 109, 109, 7, 7, 7, 66, 66, 66, 52, 52, 52, 18, 18, 18, 102, 102, 102, 0, 0, 0, 126, 126, 126, 115, 115, 115, 1, 1, 1, 0, 0, 0, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2243,9 +2275,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 83, 1, 1, 2, 138, 138, 138, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 102, 102, 102, 35, 35, 35, 35, 35, 35, 35, 35, 35, 38, 38, 38, 121, 121, 121, 94, 94, 94, 35, 35, 35, 130, 130, 130, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 85, 85, 85, 135, 135, 135, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 94, 94, 94, + 115, 115, 115, 37, 37, 37, 35, 35, 35, 35, 35, 35, 55, 55, 55, 137, 137, 137, 48, 48, 48, 72, 72, 72, 140, 140, 140, 127, 127, 127, 35, 35, 35, 99, 99, 99, 41, 41, 41, 94, 94, 94, 140, 140, 140, 140, 140, 140, 65, 65, 65, 59, 59, 59, 75, 75, 75, 49, 49, 49, 113, 113, 113, + 35, 35, 35, 130, 130, 130, 140, 140, 140, 65, 65, 65, 35, 35, 35, 133, 133, 133, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -3391,5 +3423,5 @@ static const unsigned char temp4[] = { 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 209, 209, 209, 212, 212, 212, 218, 218, 218, 224, 224, 224, 180, 180, 180,}; -const char* ZamGateArtwork::zamgateData = (const char*)temp4; +const char* ZamGateArtwork::zamgateData = (const char*)temp_zamgate_6; diff --git a/plugins/ZamGate/ZamGateArtwork.hpp b/plugins/ZamGate/ZamGateArtwork.hpp index 9aabf99..41a5241 100644 --- a/plugins/ZamGate/ZamGateArtwork.hpp +++ b/plugins/ZamGate/ZamGateArtwork.hpp @@ -20,6 +20,16 @@ namespace ZamGateArtwork const unsigned int ledyellowWidth = 11; const unsigned int ledyellowHeight = 11; + extern const char* toggleoffData; + const unsigned int toggleoffDataSize = 1056; + const unsigned int toggleoffWidth = 22; + const unsigned int toggleoffHeight = 12; + + extern const char* toggleonData; + const unsigned int toggleonDataSize = 1056; + const unsigned int toggleonWidth = 22; + const unsigned int toggleonHeight = 12; + extern const char* zamgateData; const unsigned int zamgateDataSize = 206724; const unsigned int zamgateWidth = 644; diff --git a/plugins/ZamGate/ZamGatePlugin.cpp b/plugins/ZamGate/ZamGatePlugin.cpp index 25b5b9b..0d2a042 100644 --- a/plugins/ZamGate/ZamGatePlugin.cpp +++ b/plugins/ZamGate/ZamGatePlugin.cpp @@ -82,6 +82,15 @@ void ZamGatePlugin::initParameter(uint32_t index, Parameter& parameter) parameter.ranges.min = -30.0f; parameter.ranges.max = 30.0f; break; + case paramSidechain: + parameter.hints = kParameterIsAutomable | kParameterIsBoolean; + parameter.name = "Sidechain"; + parameter.symbol = "sidechain"; + parameter.unit = " "; + parameter.ranges.def = 0.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 1.0f; + break; case paramGainR: parameter.hints = kParameterIsOutput; parameter.name = "Gain Reduction"; @@ -103,6 +112,17 @@ void ZamGatePlugin::initParameter(uint32_t index, Parameter& parameter) } } +void ZamGatePlugin::initAudioPort(bool input, uint32_t index, AudioPort& port) +{ + Plugin::initAudioPort(input, index, port); + + if ((index == 1) && input) { + port.hints |= kAudioPortIsSidechain; + port.name = "Sidechain Input"; + port.symbol = "sidechain_in"; + } +} + // ----------------------------------------------------------------------- // Internal data @@ -122,6 +142,9 @@ float ZamGatePlugin::getParameterValue(uint32_t index) const case paramMakeup: return makeup; break; + case paramSidechain: + return sidechain; + break; case paramGainR: return gainr; break; @@ -149,6 +172,9 @@ void ZamGatePlugin::setParameterValue(uint32_t index, float value) case paramMakeup: makeup = value; break; + case paramSidechain: + sidechain = value; + break; case paramGainR: gainr = value; break; @@ -165,6 +191,7 @@ void ZamGatePlugin::loadProgram(uint32_t index) thresdb = -60.0; gainr = 0.0; makeup = 0.0; + sidechain = 0.0; outlevel = -45.0; activate(); } @@ -215,9 +242,14 @@ void ZamGatePlugin::run(const float** inputs, float** outputs, uint32_t frames) gl = gatestatel; att = 1000.f / (attack * fs); rel = 1000.f / (release * fs); + bool usesidechain = (sidechain < 0.5) ? false : true; for(i = 0; i < frames; i++) { - pushsamplel(samplesl, inputs[0][i]); + if (usesidechain) { + pushsamplel(samplesl, inputs[1][i]); + } else { + pushsamplel(samplesl, inputs[0][i]); + } absample = averageabs(samplesl); if (absample < from_dB(thresdb)) { gl -= rel; diff --git a/plugins/ZamGate/ZamGatePlugin.hpp b/plugins/ZamGate/ZamGatePlugin.hpp index ea04f82..d49ef90 100644 --- a/plugins/ZamGate/ZamGatePlugin.hpp +++ b/plugins/ZamGate/ZamGatePlugin.hpp @@ -36,6 +36,7 @@ public: paramRelease, paramThresh, paramMakeup, + paramSidechain, paramOutputLevel, paramGainR, paramCount @@ -87,6 +88,7 @@ protected: void initParameter(uint32_t index, Parameter& parameter) override; void initProgramName(uint32_t index, String& programName) override; + void initAudioPort(bool input, uint32_t index, AudioPort& port) override; // ------------------------------------------------------------------- // Internal data @@ -117,7 +119,7 @@ protected: } // ------------------------------------------------------------------- - float attack,release,thresdb,makeup,gainr,outlevel; //parameters + float attack,release,thresdb,makeup,sidechain,gainr,outlevel; //parameters void pushsamplel(float samples[], float sample); float averageabs(float samples[]); diff --git a/plugins/ZamGate/ZamGateUI.cpp b/plugins/ZamGate/ZamGateUI.cpp index 42c4c47..15f89cc 100644 --- a/plugins/ZamGate/ZamGateUI.cpp +++ b/plugins/ZamGate/ZamGateUI.cpp @@ -34,6 +34,10 @@ ZamGateUI::ZamGateUI() fLedRedImg = Image(ZamGateArtwork::ledredData, ZamGateArtwork::ledredWidth, ZamGateArtwork::ledredHeight); fLedYellowImg = Image(ZamGateArtwork::ledyellowData, ZamGateArtwork::ledyellowWidth, ZamGateArtwork::ledyellowHeight); + // toggle images + fTogOn = Image(ZamGateArtwork::toggleonData, ZamGateArtwork::toggleonWidth, ZamGateArtwork::toggleonHeight); + fTogOff = Image(ZamGateArtwork::toggleoffData, ZamGateArtwork::toggleoffWidth, ZamGateArtwork::toggleoffHeight); + // led values fLedRedValue = 0.0f; fLedYellowValue = 0.0f; @@ -74,6 +78,11 @@ ZamGateUI::ZamGateUI() fKnobMakeup->setRotationAngle(240); fKnobMakeup->setCallback(this); + fToggleSidechain = new ImageSwitch(this, fTogOff, fTogOn); + fToggleSidechain->setAbsolutePos(350, 61); + fToggleSidechain->setId(ZamGatePlugin::paramSidechain); + fToggleSidechain->setCallback(this); + // set default values programLoaded(0); } @@ -97,6 +106,9 @@ void ZamGateUI::parameterChanged(uint32_t index, float value) case ZamGatePlugin::paramMakeup: fKnobMakeup->setValue(value); break; + case ZamGatePlugin::paramSidechain: + fToggleSidechain->setDown(value > 0.5); + break; case ZamGatePlugin::paramGainR: if (fLedRedValue != value) { @@ -121,6 +133,7 @@ void ZamGateUI::programLoaded(uint32_t index) fKnobRelease->setValue(100.0f); fKnobThresh->setValue(-60.0f); fKnobMakeup->setValue(0.0f); + fToggleSidechain->setDown(false); } // ----------------------------------------------------------------------- @@ -141,6 +154,11 @@ void ZamGateUI::imageKnobValueChanged(ImageKnob* knob, float value) setParameterValue(knob->getId(), value); } +void ZamGateUI::imageSwitchClicked(ImageSwitch* tog, bool down) +{ + setParameterValue(tog->getId(), down ? 1.f : 0.f); +} + void ZamGateUI::onDisplay() { fImgBackground.draw(); diff --git a/plugins/ZamGate/ZamGateUI.hpp b/plugins/ZamGate/ZamGateUI.hpp index a73074f..3dfb7d2 100644 --- a/plugins/ZamGate/ZamGateUI.hpp +++ b/plugins/ZamGate/ZamGateUI.hpp @@ -24,13 +24,15 @@ using DGL::Image; using DGL::ImageKnob; +using DGL::ImageSwitch; START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- class ZamGateUI : public UI, - public ImageKnob::Callback + public ImageKnob::Callback, + public ImageSwitch::Callback { public: ZamGateUI(); @@ -47,6 +49,7 @@ protected: void imageKnobDragStarted(ImageKnob* knob) override; void imageKnobDragFinished(ImageKnob* knob) override; void imageKnobValueChanged(ImageKnob* knob, float value) override; + void imageSwitchClicked(ImageSwitch* tog, bool down) override; void onDisplay() override; @@ -54,11 +57,14 @@ private: Image fImgBackground; ScopedPointer fKnobAttack, fKnobRelease, fKnobThresh; ScopedPointer fKnobMakeup; + ScopedPointer fToggleSidechain; Image fLedRedImg; float fLedRedValue; Image fLedYellowImg; float fLedYellowValue; + Image fTogOn; + Image fTogOff; }; // ----------------------------------------------------------------------- diff --git a/plugins/ZamGate/artwork/zamgate.png b/plugins/ZamGate/artwork/zamgate.png index 1356eed..02ea4c1 100644 Binary files a/plugins/ZamGate/artwork/zamgate.png and b/plugins/ZamGate/artwork/zamgate.png differ diff --git a/plugins/ZamGate/artwork/zamgate.svg b/plugins/ZamGate/artwork/zamgate.svg index 7249f19..b649ef6 100644 --- a/plugins/ZamGate/artwork/zamgate.svg +++ b/plugins/ZamGate/artwork/zamgate.svg @@ -4624,9 +4624,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.90509669" - inkscape:cx="525.03821" - inkscape:cy="40.627798" + inkscape:zoom="1.28" + inkscape:cx="375.07621" + inkscape:cy="-19.570083" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -4637,7 +4637,7 @@ fit-margin-bottom="0" inkscape:window-width="1280" inkscape:window-height="765" - inkscape:window-x="49" + inkscape:window-x="-79" inkscape:window-y="31" inkscape:window-maximized="0" /> image/svg+xml - + @@ -4727,7 +4727,7 @@ sodipodi:cy="104.69824" sodipodi:rx="24.748737" sodipodi:ry="24.748737" - d="m 456.93331,117.17445 a 24.748737,24.748737 0 1 1 42.65704,0.15424 l -21.28313,-12.63045 z" + d="m 456.93331,117.17445 c -6.89042,-11.80448 -2.90679,-26.9597 8.8977,-33.850121 11.80449,-6.890421 26.9597,-2.906784 33.85012,8.897703 4.53206,7.764198 4.49731,17.375438 -0.0908,25.106658 l -21.28313,-12.63045 z" transform="translate(-430,903.6588)" sodipodi:start="2.6132357" sodipodi:end="6.8187738" /> @@ -4751,7 +4751,7 @@ height="1052.3622" /> 500 + Sidechain diff --git a/plugins/ZamGateX2/DistrhoPluginInfo.h b/plugins/ZamGateX2/DistrhoPluginInfo.h index 9a66cbb..d70a021 100644 --- a/plugins/ZamGateX2/DistrhoPluginInfo.h +++ b/plugins/ZamGateX2/DistrhoPluginInfo.h @@ -24,7 +24,7 @@ #define DISTRHO_PLUGIN_HAS_UI 1 #define DISTRHO_PLUGIN_IS_SYNTH 0 -#define DISTRHO_PLUGIN_NUM_INPUTS 2 +#define DISTRHO_PLUGIN_NUM_INPUTS 3 #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 #define DISTRHO_PLUGIN_WANT_LATENCY 0 diff --git a/plugins/ZamGateX2/ZamGateX2Artwork.cpp b/plugins/ZamGateX2/ZamGateX2Artwork.cpp index ab583c9..797cccc 100644 --- a/plugins/ZamGateX2/ZamGateX2Artwork.cpp +++ b/plugins/ZamGateX2/ZamGateX2Artwork.cpp @@ -2,7 +2,7 @@ #include "ZamGateX2Artwork.hpp" -static const unsigned char temp1[] = { +static const unsigned char temp_knob_1[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 2, 0, 0, 0, 66, 0, 0, 0, 146, 0, 0, 0, 206, 3, 3, 3, 237, 5, 5, 5, 243, 6, 6, 6, 246, 6, 6, 6, 249, 5, 5, 5, 249, 3, 3, 3, 230, 0, 0, 0, 193, 0, 0, 0, 140, 0, 0, 0, 77, 0, 0, 0, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 38, 0, 0, 0, 175, 5, 5, 5, 247, 14, 14, 14, 255, 20, 20, 20, 255, 25, 25, 25, 255, 29, 29, 29, 255, 31, 31, 31, 255, 33, 33, 33, 255, @@ -88,27 +88,59 @@ static const unsigned char temp1[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 4, 0, 0, 0, 82, 0, 0, 0, 148, 0, 0, 0, 200, 1, 1, 1, 228, 3, 3, 3, 242, 3, 3, 3, 241, 3, 3, 3, 236, 2, 2, 2, 232, 1, 1, 1, 226, 0, 0, 0, 202, 0, 0, 0, 141, 0, 0, 0, 60, 0, 0, 0, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, }; -const char* ZamGateX2Artwork::knobData = (const char*)temp1; +const char* ZamGateX2Artwork::knobData = (const char*)temp_knob_1; -static const unsigned char temp2[] = { +static const unsigned char temp_ledred_2[] = { 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 37, 234, 234, 255, 207, 165, 165, 255, 245, 129, 129, 255, 254, 165, 165, 255, 245, 234, 234, 255, 207, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 106, 134, 134, 255, 253, 0, 1, 255, 255, 0, 7, 255, 255, 0, 9, 255, 255, 0, 7, 255, 255, 0, 1, 255, 255, 134, 134, 255, 253, 255, 255, 255, 106, 255, 255, 255, 0, 255, 255, 255, 37, 134, 134, 255, 253, 0, 5, 255, 255, 0, 15, 255, 255, 0, 22, 255, 255, 0, 25, 255, 255, 0, 22, 255, 255, 0, 15, 255, 255, 0, 5, 255, 255, 134, 134, 255, 253, 255, 255, 255, 37, 234, 234, 255, 207, 0, 1, 255, 255, 0, 15, 255, 255, 0, 28, 255, 255, 0, 38, 255, 255, 0, 41, 255, 255, 0, 38, 255, 255, 0, 28, 255, 255, 0, 15, 255, 255, 0, 1, 255, 255, 234, 234, 255, 207, 165, 165, 255, 245, 0, 7, 255, 255, 0, 22, 255, 255, 0, 38, 255, 255, 0, 51, 255, 255, 0, 58, 255, 255, 0, 51, 255, 255, 0, 38, 255, 255, 0, 22, 255, 255, 0, 7, 255, 255, 165, 165, 255, 245, 129, 129, 255, 254, 0, 9, 255, 255, 0, 25, 255, 255, 0, 41, 255, 255, 0, 58, 255, 255, 0, 74, 255, 255, 0, 58, 255, 255, 0, 41, 255, 255, 0, 25, 255, 255, 0, 9, 255, 255, 129, 129, 255, 254, 165, 165, 255, 245, 0, 7, 255, 255, 0, 22, 255, 255, 0, 38, 255, 255, 0, 51, 255, 255, 0, 58, 255, 255, 0, 51, 255, 255, 0, 38, 255, 255, 0, 22, 255, 255, 0, 7, 255, 255, 165, 165, 255, 245, 234, 234, 255, 207, 0, 1, 255, 255, 0, 15, 255, 255, 0, 28, 255, 255, 0, 38, 255, 255, 0, 41, 255, 255, 0, 38, 255, 255, 0, 28, 255, 255, 0, 15, 255, 255, 0, 1, 255, 255, 234, 234, 255, 207, 255, 255, 255, 37, 134, 134, 255, 253, 0, 5, 255, 255, 0, 15, 255, 255, 0, 22, 255, 255, 0, 25, 255, 255, 0, 22, 255, 255, 0, 15, 255, 255, 0, 5, 255, 255, 134, 134, 255, 253, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 106, 134, 134, 255, 253, 0, 1, 255, 255, 0, 7, 255, 255, 0, 9, 255, 255, 0, 7, 255, 255, 0, 1, 255, 255, 134, 134, 255, 253, 255, 255, 255, 106, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 37, 234, 234, 255, 207, 165, 165, 255, 245, 129, 129, 255, 254, 165, 165, 255, 245, 234, 234, 255, 207, 255, 255, 255, 37, 255, 255, 255, 0, 255, 255, 255, 0,}; -const char* ZamGateX2Artwork::ledredData = (const char*)temp2; +const char* ZamGateX2Artwork::ledredData = (const char*)temp_ledred_2; -static const unsigned char temp3[] = { +static const unsigned char temp_ledyellow_3[] = { 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 60, 0, 255, 255, 217, 0, 255, 255, 224, 0, 255, 255, 214, 0, 255, 255, 210, 0, 255, 255, 214, 0, 255, 255, 224, 0, 255, 255, 217, 0, 255, 255, 60, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 198, 0, 255, 255, 185, 0, 255, 255, 180, 0, 255, 255, 185, 0, 255, 255, 198, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 224, 0, 255, 255, 198, 0, 255, 255, 175, 0, 255, 255, 157, 0, 255, 255, 150, 0, 255, 255, 157, 0, 255, 255, 175, 0, 255, 255, 198, 0, 255, 255, 224, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 214, 0, 255, 255, 185, 0, 255, 255, 157, 0, 255, 255, 132, 3, 255, 243, 152, 0, 255, 255, 132, 0, 255, 255, 157, 0, 255, 255, 185, 0, 255, 255, 214, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 210, 0, 255, 255, 180, 0, 255, 255, 150, 3, 255, 243, 152, 19, 255, 191, 255, 3, 255, 243, 152, 0, 255, 255, 150, 0, 255, 255, 180, 0, 255, 255, 210, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 214, 0, 255, 255, 185, 0, 255, 255, 157, 0, 255, 255, 132, 3, 255, 243, 152, 0, 255, 255, 132, 0, 255, 255, 157, 0, 255, 255, 185, 0, 255, 255, 214, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 224, 0, 255, 255, 198, 0, 255, 255, 175, 0, 255, 255, 157, 0, 255, 255, 150, 0, 255, 255, 157, 0, 255, 255, 175, 0, 255, 255, 198, 0, 255, 255, 224, 0, 255, 255, 142, 0, 255, 255, 19, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 198, 0, 255, 255, 185, 0, 255, 255, 180, 0, 255, 255, 185, 0, 255, 255, 198, 0, 255, 255, 217, 0, 255, 255, 217, 0, 255, 255, 19, 255, 255, 255, 0, 0, 255, 255, 60, 0, 255, 255, 217, 0, 255, 255, 224, 0, 255, 255, 214, 0, 255, 255, 210, 0, 255, 255, 214, 0, 255, 255, 224, 0, 255, 255, 217, 0, 255, 255, 60, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 255, 19, 0, 255, 255, 142, 0, 255, 255, 194, 0, 255, 255, 229, 0, 255, 255, 194, 0, 255, 255, 142, 0, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0,}; -const char* ZamGateX2Artwork::ledyellowData = (const char*)temp3; +const char* ZamGateX2Artwork::ledyellowData = (const char*)temp_ledyellow_3; -static const unsigned char temp4[] = { +static const unsigned char temp_toggleoff_4[] = { + 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 203, + 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 6, 255, 0, 0, 36, 228, 0, 0, 33, 222, 0, 0, 29, 221, 0, 0, 25, 221, 0, 0, 21, 220, 0, 0, 17, 219, 0, 0, 14, 219, 0, 0, 4, 220, 0, 0, 0, 220, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 224, + 0, 0, 0, 255, 0, 0, 0, 199, 0, 0, 0, 255, 0, 0, 38, 227, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 39, 223, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 216, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 38, 227, 0, 0, 180, 241, 0, 0, 180, 215, 0, 0, 180, 190, 0, 0, 180, 164, 0, 0, 180, 139, 0, 0, 181, 113, 0, 0, 180, 88, 0, 0, 23, 119, 0, 0, 0, 128, 255, 255, 255, 0, + 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 0, 203, 0, 0, 6, 255, 0, 0, 36, 228, 0, 0, 33, 222, 0, 0, 29, 221, 0, 0, 25, 221, 0, 0, 21, 220, 0, 0, 17, 219, 0, 0, 14, 219, 0, 0, 4, 220, 0, 0, 0, 220, + 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 224, 0, 0, 0, 255, 0, 0, 0, 199, 0, 0, 0, 61, 0, 0, 0, 203, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, + 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 203, 0, 0, 0, 61,}; +const char* ZamGateX2Artwork::toggleoffData = (const char*)temp_toggleoff_4; + +static const unsigned char temp_toggleon_5[] = { + 0, 0, 0, 83, 0, 0, 0, 225, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, + 0, 0, 0, 81, 0, 0, 0, 225, 0, 0, 0, 254, 0, 0, 0, 217, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 5, 0, 223, 0, 14, 0, 219, 0, 17, 0, 219, 0, 22, 0, 220, 0, 25, 0, 221, 0, 29, 0, 221, 0, 32, 0, 222, 0, 36, 0, 224, + 0, 6, 0, 254, 0, 0, 0, 222, 0, 0, 0, 255, 0, 0, 0, 217, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, + 0, 180, 0, 238, 0, 39, 0, 224, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, + 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, + 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, + 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, + 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, 0, 181, 0, 90, + 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 216, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 3, 0, 235, + 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 223, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 217, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, + 0, 3, 0, 235, 0, 181, 0, 90, 0, 180, 0, 115, 0, 180, 0, 140, 0, 180, 0, 164, 0, 179, 0, 189, 0, 180, 0, 214, 0, 180, 0, 238, 0, 39, 0, 224, 0, 0, 0, 255, 0, 0, 0, 225, 0, 0, 0, 254, 0, 0, 0, 217, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, 0, 0, 0, 216, + 0, 0, 0, 216, 0, 5, 0, 223, 0, 14, 0, 219, 0, 17, 0, 219, 0, 22, 0, 220, 0, 25, 0, 221, 0, 29, 0, 221, 0, 32, 0, 222, 0, 36, 0, 224, 0, 6, 0, 254, 0, 0, 0, 222, 0, 0, 0, 83, 0, 0, 0, 225, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, + 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 225, 0, 0, 0, 81,}; +const char* ZamGateX2Artwork::toggleonData = (const char*)temp_toggleon_5; + +static const unsigned char temp_zamgatex2_6[] = { 191, 191, 191, 151, 151, 151, 176, 176, 176, 203, 203, 203, 219, 219, 219, 217, 217, 217, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, @@ -2028,7 +2060,7 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 110, 0, 0, 0, 128, 128, 128, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 130, 130, 130, 127, 127, 127, 127, 127, 127, 127, 127, 127, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2059,9 +2091,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 142, 0, 0, 0, 109, 109, 109, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 94, 94, 94, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, 129, 129, 129, 96, 96, 96, 130, 130, 130, 100, 100, 100, 96, 96, 96, 96, 96, 96, 96, 96, 96, 117, 117, 117, 140, 140, 140, 103, 103, 103, 96, 96, 96, 96, 96, 96, 96, 96, 96, 116, 116, 116, + 140, 140, 140, 105, 105, 105, 96, 96, 96, 96, 96, 96, 105, 105, 105, 140, 140, 140, 110, 110, 110, 104, 104, 104, 140, 140, 140, 140, 140, 140, 99, 99, 99, 115, 115, 115, 140, 140, 140, 137, 137, 137, 97, 97, 97, 96, 96, 96, 133, 133, 133, 140, 140, 140, 121, 121, 121, 97, 97, 97, 135, 135, 135, + 96, 96, 96, 116, 116, 116, 140, 140, 140, 137, 137, 137, 96, 96, 96, 130, 130, 130, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2089,9 +2121,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 174, 0, 0, 0, 91, 91, 91, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 27, 27, 27, 9, 9, 9, 110, 110, 110, 114, 114, 114, 29, 29, 29, 0, 0, 0, + 99, 99, 99, 0, 0, 0, 107, 107, 107, 15, 15, 15, 7, 7, 7, 21, 21, 21, 12, 12, 12, 7, 7, 7, 111, 111, 111, 18, 18, 18, 6, 6, 6, 17, 17, 17, 17, 17, 17, 71, 71, 71, 78, 78, 78, 0, 0, 0, 21, 21, 21, 23, 23, 23, 0, 0, 0, 83, 83, 83, 42, 42, 42, + 23, 23, 23, 140, 140, 140, 140, 140, 140, 7, 7, 7, 58, 58, 58, 140, 140, 140, 106, 106, 106, 1, 1, 1, 6, 6, 6, 91, 91, 91, 140, 140, 140, 79, 79, 79, 0, 0, 0, 121, 121, 121, 0, 0, 0, 16, 16, 16, 136, 136, 136, 128, 128, 128, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2120,9 +2152,9 @@ static const unsigned char temp4[] = { 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 15, 0, 0, 12, 0, 0, 0, 5, 5, 5, 8, 8, 8, 62, 62, 62, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 27, 27, 27, 13, 13, 13, 131, 131, 131, 131, 131, 131, 117, 117, 117, 119, 119, 119, 103, 103, 103, 0, 0, 0, 107, 107, 107, 17, 17, 17, 48, 48, 48, 140, 140, 140, 122, 122, 122, + 0, 0, 0, 79, 79, 79, 18, 18, 18, 52, 52, 52, 140, 140, 140, 140, 140, 140, 140, 140, 140, 42, 42, 42, 12, 12, 12, 140, 140, 140, 140, 140, 140, 14, 14, 14, 45, 45, 45, 42, 42, 42, 23, 23, 23, 140, 140, 140, 140, 140, 140, 7, 7, 7, 58, 58, 58, 140, 140, 140, 68, 68, 68, + 25, 25, 25, 42, 42, 42, 51, 51, 51, 140, 140, 140, 79, 79, 79, 0, 0, 0, 121, 121, 121, 0, 0, 0, 0, 0, 0, 78, 78, 78, 128, 128, 128, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2151,9 +2183,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 177, 0, 0, 0, 89, 89, 89, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 49, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 103, 103, 103, 0, 0, 0, 107, 107, 107, 17, 17, 17, 48, 48, 48, 140, 140, 140, 127, 127, 127, 0, 0, 0, 79, 79, 79, 18, 18, 18, 23, 23, 23, 61, 61, 61, 61, 61, 61, 118, 118, 118, + 42, 42, 42, 14, 14, 14, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 42, 42, 42, 12, 12, 12, 70, 70, 70, 70, 70, 70, 3, 3, 3, 58, 58, 58, 140, 140, 140, 30, 30, 30, 60, 60, 60, 77, 77, 77, 12, 12, 12, 139, 139, 139, 79, 79, 79, 0, 0, 0, 121, 121, 121, + 0, 0, 0, 38, 38, 38, 11, 11, 11, 121, 121, 121, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2181,9 +2213,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 146, 0, 0, 0, 106, 106, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 136, 136, 136, 88, 88, 88, 87, 87, 87, 87, 87, 87, 24, 24, 24, 0, 0, 0, + 99, 99, 99, 0, 0, 0, 107, 107, 107, 17, 17, 17, 48, 48, 48, 140, 140, 140, 127, 127, 127, 0, 0, 0, 79, 79, 79, 18, 18, 18, 19, 19, 19, 52, 52, 52, 52, 52, 52, 115, 115, 115, 42, 42, 42, 14, 14, 14, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 42, 42, 42, + 4, 4, 4, 26, 26, 26, 26, 26, 26, 1, 1, 1, 58, 58, 58, 131, 131, 131, 1, 1, 1, 72, 72, 72, 85, 85, 85, 0, 0, 0, 110, 110, 110, 79, 79, 79, 0, 0, 0, 121, 121, 121, 0, 0, 0, 96, 96, 96, 16, 16, 16, 57, 57, 57, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2212,9 +2244,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 114, 0, 0, 0, 123, 123, 123, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 42, 42, 42, 43, 43, 43, 140, 140, 140, 140, 140, 140, 44, 44, 44, 0, 0, 0, 99, 99, 99, 0, 0, 0, 107, 107, 107, 17, 17, 17, 48, 48, 48, 140, 140, 140, 127, 127, 127, + 0, 0, 0, 79, 79, 79, 18, 18, 18, 52, 52, 52, 140, 140, 140, 140, 140, 140, 140, 140, 140, 42, 42, 42, 14, 14, 14, 140, 140, 140, 140, 140, 140, 36, 36, 36, 61, 61, 61, 42, 42, 42, 23, 23, 23, 140, 140, 140, 140, 140, 140, 7, 7, 7, 58, 58, 58, 94, 94, 94, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 1, 1, 1, 70, 70, 70, 79, 79, 79, 0, 0, 0, 121, 121, 121, 0, 0, 0, 99, 99, 99, 86, 86, 86, 2, 2, 2, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2243,9 +2275,9 @@ static const unsigned char temp4[] = { 0, 0, 255, 0, 0, 83, 1, 1, 2, 138, 138, 138, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 41, 41, 41, 0, 0, 0, 29, 29, 29, 30, 30, 30, 4, 4, 4, 19, 19, 19, 102, 102, 102, 0, 0, 0, 107, 107, 107, 17, 17, 17, 16, 16, 16, 48, 48, 48, 32, 32, 32, 1, 1, 1, 98, 98, 98, 18, 18, 18, 16, 16, 16, 43, 43, 43, 43, 43, 43, 80, 80, 80, + 61, 61, 61, 0, 0, 0, 42, 42, 42, 44, 44, 44, 1, 1, 1, 67, 67, 67, 42, 42, 42, 23, 23, 23, 140, 140, 140, 140, 140, 140, 7, 7, 7, 58, 58, 58, 56, 56, 56, 29, 29, 29, 140, 140, 140, 140, 140, 140, 40, 40, 40, 30, 30, 30, 79, 79, 79, 0, 0, 0, 121, 121, 121, + 0, 0, 0, 99, 99, 99, 138, 138, 138, 21, 21, 21, 0, 0, 0, 104, 104, 104, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -2273,9 +2305,9 @@ static const unsigned char temp4[] = { 70, 70, 71, 2, 2, 5, 0, 0, 0, 0, 0, 33, 0, 0, 178, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 51, 15, 15, 16, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 134, 134, 134, 73, 73, 73, 70, 70, 70, 70, 70, 70, 70, 70, 70, 126, 126, 126, + 122, 122, 122, 70, 70, 70, 124, 124, 124, 80, 80, 80, 70, 70, 70, 70, 70, 70, 70, 70, 70, 100, 100, 100, 140, 140, 140, 80, 80, 80, 70, 70, 70, 70, 70, 70, 70, 70, 70, 97, 97, 97, 138, 138, 138, 79, 79, 79, 70, 70, 70, 70, 70, 70, 79, 79, 79, 139, 139, 139, 92, 92, 92, + 82, 82, 82, 140, 140, 140, 140, 140, 140, 74, 74, 74, 100, 100, 100, 85, 85, 85, 98, 98, 98, 140, 140, 140, 140, 140, 140, 106, 106, 106, 71, 71, 71, 109, 109, 109, 70, 70, 70, 132, 132, 132, 70, 70, 70, 120, 120, 120, 140, 140, 140, 108, 108, 108, 70, 70, 70, 122, 122, 122, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, @@ -3391,5 +3423,5 @@ static const unsigned char temp4[] = { 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 209, 209, 209, 212, 212, 212, 218, 218, 218, 224, 224, 224, 180, 180, 180,}; -const char* ZamGateX2Artwork::zamgatex2Data = (const char*)temp4; +const char* ZamGateX2Artwork::zamgatex2Data = (const char*)temp_zamgatex2_6; diff --git a/plugins/ZamGateX2/ZamGateX2Artwork.hpp b/plugins/ZamGateX2/ZamGateX2Artwork.hpp index 5de74b7..9ecd715 100644 --- a/plugins/ZamGateX2/ZamGateX2Artwork.hpp +++ b/plugins/ZamGateX2/ZamGateX2Artwork.hpp @@ -20,6 +20,16 @@ namespace ZamGateX2Artwork const unsigned int ledyellowWidth = 11; const unsigned int ledyellowHeight = 11; + extern const char* toggleoffData; + const unsigned int toggleoffDataSize = 1056; + const unsigned int toggleoffWidth = 22; + const unsigned int toggleoffHeight = 12; + + extern const char* toggleonData; + const unsigned int toggleonDataSize = 1056; + const unsigned int toggleonWidth = 22; + const unsigned int toggleonHeight = 12; + extern const char* zamgatex2Data; const unsigned int zamgatex2DataSize = 206724; const unsigned int zamgatex2Width = 644; diff --git a/plugins/ZamGateX2/ZamGateX2Plugin.cpp b/plugins/ZamGateX2/ZamGateX2Plugin.cpp index 0e29d38..a342c39 100644 --- a/plugins/ZamGateX2/ZamGateX2Plugin.cpp +++ b/plugins/ZamGateX2/ZamGateX2Plugin.cpp @@ -82,6 +82,15 @@ void ZamGateX2Plugin::initParameter(uint32_t index, Parameter& parameter) parameter.ranges.min = -30.0f; parameter.ranges.max = 30.0f; break; + case paramSidechain: + parameter.hints = kParameterIsAutomable | kParameterIsBoolean; + parameter.name = "Sidechain"; + parameter.symbol = "sidechain"; + parameter.unit = " "; + parameter.ranges.def = 0.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 1.0f; + break; case paramGainR: parameter.hints = kParameterIsOutput; parameter.name = "Gain Reduction"; @@ -103,6 +112,17 @@ void ZamGateX2Plugin::initParameter(uint32_t index, Parameter& parameter) } } +void ZamGateX2Plugin::initAudioPort(bool input, uint32_t index, AudioPort& port) +{ + Plugin::initAudioPort(input, index, port); + + if ((index == 2) && input) { + port.hints |= kAudioPortIsSidechain; + port.name = "Sidechain Input"; + port.symbol = "sidechain_in"; + } +} + // ----------------------------------------------------------------------- // Internal data @@ -122,6 +142,9 @@ float ZamGateX2Plugin::getParameterValue(uint32_t index) const case paramMakeup: return makeup; break; + case paramSidechain: + return sidechain; + break; case paramGainR: return gainr; break; @@ -149,6 +172,9 @@ void ZamGateX2Plugin::setParameterValue(uint32_t index, float value) case paramMakeup: makeup = value; break; + case paramSidechain: + sidechain = value; + break; case paramGainR: gainr = value; break; @@ -166,6 +192,8 @@ void ZamGateX2Plugin::loadProgram(uint32_t index) gainr = 0.0; makeup = 0.0; outlevel = -45.0; + sidechain = 0.0; + activate(); } @@ -227,13 +255,19 @@ void ZamGateX2Plugin::run(const float** inputs, float** outputs, uint32_t frames gr = gatestater; att = 1000.f / (attack * fs); rel = 1000.f / (release * fs); + bool usesidechain = (sidechain < 0.5) ? false : true; for(i = 0; i < frames; i++) { - pushsamplel(samplesl, inputs[0][i]); - pushsampler(samplesr, inputs[1][i]); - absamplel = averageabs(samplesl); - absampler = averageabs(samplesr); - absample = std::max(absamplel, absampler); + if (usesidechain) { + pushsamplel(samplesl, inputs[2][i]); + absample = averageabs(samplesl); + } else { + pushsamplel(samplesl, inputs[0][i]); + pushsampler(samplesr, inputs[1][i]); + absamplel = averageabs(samplesl); + absampler = averageabs(samplesr); + absample = std::max(absamplel, absampler); + } if (absample < from_dB(thresdb)) { gr -= rel; if (gr < 0.f) diff --git a/plugins/ZamGateX2/ZamGateX2Plugin.hpp b/plugins/ZamGateX2/ZamGateX2Plugin.hpp index 4cec153..97cacf5 100644 --- a/plugins/ZamGateX2/ZamGateX2Plugin.hpp +++ b/plugins/ZamGateX2/ZamGateX2Plugin.hpp @@ -36,6 +36,7 @@ public: paramRelease, paramThresh, paramMakeup, + paramSidechain, paramOutputLevel, paramGainR, paramCount @@ -87,6 +88,7 @@ protected: void initParameter(uint32_t index, Parameter& parameter) override; void initProgramName(uint32_t index, String& programName) override; + void initAudioPort(bool input, uint32_t index, AudioPort& port) override; // ------------------------------------------------------------------- // Internal data @@ -117,7 +119,7 @@ protected: } // ------------------------------------------------------------------- - float attack,release,thresdb,makeup,gainr,outlevel; //parameters + float attack,release,thresdb,makeup,sidechain,gainr,outlevel; //parameters void pushsamplel(float samples[], float sample); void pushsampler(float samples[], float sample); diff --git a/plugins/ZamGateX2/ZamGateX2UI.cpp b/plugins/ZamGateX2/ZamGateX2UI.cpp index bab2545..92b02c4 100644 --- a/plugins/ZamGateX2/ZamGateX2UI.cpp +++ b/plugins/ZamGateX2/ZamGateX2UI.cpp @@ -34,6 +34,10 @@ ZamGateX2UI::ZamGateX2UI() fLedRedImg = Image(ZamGateX2Artwork::ledredData, ZamGateX2Artwork::ledredWidth, ZamGateX2Artwork::ledredHeight); fLedYellowImg = Image(ZamGateX2Artwork::ledyellowData, ZamGateX2Artwork::ledyellowWidth, ZamGateX2Artwork::ledyellowHeight); + // toggle images + fTogOn = Image(ZamGateX2Artwork::toggleonData, ZamGateX2Artwork::toggleonWidth, ZamGateX2Artwork::toggleonHeight); + fTogOff = Image(ZamGateX2Artwork::toggleoffData, ZamGateX2Artwork::toggleoffWidth, ZamGateX2Artwork::toggleoffHeight); + // led values fLedRedValue = 0.0f; fLedYellowValue = 0.0f; @@ -74,6 +78,11 @@ ZamGateX2UI::ZamGateX2UI() fKnobMakeup->setRotationAngle(240); fKnobMakeup->setCallback(this); + fToggleSidechain = new ImageSwitch(this, fTogOff, fTogOn); + fToggleSidechain->setAbsolutePos(350, 61); + fToggleSidechain->setId(ZamGateX2Plugin::paramSidechain); + fToggleSidechain->setCallback(this); + // set default values programLoaded(0); } @@ -97,6 +106,9 @@ void ZamGateX2UI::parameterChanged(uint32_t index, float value) case ZamGateX2Plugin::paramMakeup: fKnobMakeup->setValue(value); break; + case ZamGateX2Plugin::paramSidechain: + fToggleSidechain->setDown(value > 0.5); + break; case ZamGateX2Plugin::paramGainR: if (fLedRedValue != value) { @@ -121,6 +133,7 @@ void ZamGateX2UI::programLoaded(uint32_t index) fKnobRelease->setValue(100.0f); fKnobThresh->setValue(-60.0f); fKnobMakeup->setValue(0.0f); + fToggleSidechain->setDown(false); } // ----------------------------------------------------------------------- @@ -141,6 +154,11 @@ void ZamGateX2UI::imageKnobValueChanged(ImageKnob* knob, float value) setParameterValue(knob->getId(), value); } +void ZamGateX2UI::imageSwitchClicked(ImageSwitch* tog, bool down) +{ + setParameterValue(tog->getId(), down ? 1.f : 0.f); +} + void ZamGateX2UI::onDisplay() { fImgBackground.draw(); diff --git a/plugins/ZamGateX2/ZamGateX2UI.hpp b/plugins/ZamGateX2/ZamGateX2UI.hpp index 9fd944e..4d6c7b9 100644 --- a/plugins/ZamGateX2/ZamGateX2UI.hpp +++ b/plugins/ZamGateX2/ZamGateX2UI.hpp @@ -24,13 +24,15 @@ using DGL::Image; using DGL::ImageKnob; +using DGL::ImageSwitch; START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- class ZamGateX2UI : public UI, - public ImageKnob::Callback + public ImageKnob::Callback, + public ImageSwitch::Callback { public: ZamGateX2UI(); @@ -47,6 +49,7 @@ protected: void imageKnobDragStarted(ImageKnob* knob) override; void imageKnobDragFinished(ImageKnob* knob) override; void imageKnobValueChanged(ImageKnob* knob, float value) override; + void imageSwitchClicked(ImageSwitch* tog, bool down) override; void onDisplay() override; @@ -54,11 +57,14 @@ private: Image fImgBackground; ScopedPointer fKnobAttack, fKnobRelease, fKnobThresh; ScopedPointer fKnobMakeup; + ScopedPointer fToggleSidechain; Image fLedRedImg; float fLedRedValue; Image fLedYellowImg; float fLedYellowValue; + Image fTogOn; + Image fTogOff; }; // ----------------------------------------------------------------------- diff --git a/plugins/ZamGateX2/artwork/zamgatex2.png b/plugins/ZamGateX2/artwork/zamgatex2.png index 48224a1..7df61b0 100644 Binary files a/plugins/ZamGateX2/artwork/zamgatex2.png and b/plugins/ZamGateX2/artwork/zamgatex2.png differ diff --git a/plugins/ZamGateX2/artwork/zamgatex2.svg b/plugins/ZamGateX2/artwork/zamgatex2.svg index 8f9eeca..7314364 100644 --- a/plugins/ZamGateX2/artwork/zamgatex2.svg +++ b/plugins/ZamGateX2/artwork/zamgatex2.svg @@ -16,7 +16,7 @@ id="svg2" version="1.1" inkscape:version="0.48.5 r10040" - sodipodi:docname="zamgate.svg" + sodipodi:docname="zamgatex2.svg" inkscape:export-filename="/home/damien/git/zam-plugins/plugins/ZamGateX2/artwork/zamgatex2.png" inkscape:export-xdpi="84.32" inkscape:export-ydpi="84.32"> @@ -4625,10 +4625,10 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.28" - inkscape:cx="376.35297" + inkscape:cx="377.91547" inkscape:cy="26.139357" inkscape:document-units="mm" - inkscape:current-layer="text3396" + inkscape:current-layer="text3392" showgrid="false" units="mm" fit-margin-top="0" @@ -5847,6 +5847,18 @@ d="m 834.99877,988.03584 c 0.0734,0 0.88824,1.52995 2.44442,4.58984 l 0.0472,0.0472 0.0472,0 0,-0.0472 -0.0105,-4.49542 0.0577,-0.0944 1.24319,0 0.0944,0.0944 0,6.89263 -0.0944,0.0944 -1.53694,0 c -0.28676,-0.43013 -1.10157,-1.97582 -2.44442,-4.63705 l -0.0472,0 0,4.54263 -0.0944,0.0944 -1.19598,0 -0.13639,-0.11016 -0.005,-6.9241 0.0472,-0.0472 1.58415,0" style="fill:#000000;font-family:Allstar4;-inkscape-font-specification:Allstar4" id="path3381" /> + Sidechain