implement new waterfall color selection
This commit is contained in:
parent
c8496a2547
commit
496e771e17
@ -2,7 +2,7 @@ from owrx.property import PropertyLayer
|
|||||||
|
|
||||||
|
|
||||||
defaultConfig = PropertyLayer(
|
defaultConfig = PropertyLayer(
|
||||||
version=3,
|
version=4,
|
||||||
max_clients=20,
|
max_clients=20,
|
||||||
receiver_name="[Callsign]",
|
receiver_name="[Callsign]",
|
||||||
receiver_location="Budapest, Hungary",
|
receiver_location="Budapest, Hungary",
|
||||||
@ -22,264 +22,7 @@ defaultConfig = PropertyLayer(
|
|||||||
digital_voice_unvoiced_quality=1,
|
digital_voice_unvoiced_quality=1,
|
||||||
digital_voice_dmr_id_lookup=True,
|
digital_voice_dmr_id_lookup=True,
|
||||||
# sdrs=...
|
# sdrs=...
|
||||||
waterfall_colors=[
|
waterfall_scheme="GoogleTurboWaterfall",
|
||||||
0x30123B,
|
|
||||||
0x311542,
|
|
||||||
0x33184A,
|
|
||||||
0x341B51,
|
|
||||||
0x351E58,
|
|
||||||
0x36215F,
|
|
||||||
0x372466,
|
|
||||||
0x38266C,
|
|
||||||
0x392973,
|
|
||||||
0x3A2C79,
|
|
||||||
0x3B2F80,
|
|
||||||
0x3C3286,
|
|
||||||
0x3D358B,
|
|
||||||
0x3E3891,
|
|
||||||
0x3E3A97,
|
|
||||||
0x3F3D9C,
|
|
||||||
0x4040A2,
|
|
||||||
0x4043A7,
|
|
||||||
0x4146AC,
|
|
||||||
0x4248B1,
|
|
||||||
0x424BB6,
|
|
||||||
0x434EBA,
|
|
||||||
0x4351BF,
|
|
||||||
0x4453C3,
|
|
||||||
0x4456C7,
|
|
||||||
0x4559CB,
|
|
||||||
0x455BCF,
|
|
||||||
0x455ED3,
|
|
||||||
0x4561D7,
|
|
||||||
0x4663DA,
|
|
||||||
0x4666DD,
|
|
||||||
0x4669E1,
|
|
||||||
0x466BE4,
|
|
||||||
0x466EE7,
|
|
||||||
0x4671E9,
|
|
||||||
0x4673EC,
|
|
||||||
0x4676EE,
|
|
||||||
0x4678F1,
|
|
||||||
0x467BF3,
|
|
||||||
0x467DF5,
|
|
||||||
0x4680F7,
|
|
||||||
0x4682F9,
|
|
||||||
0x4685FA,
|
|
||||||
0x4587FC,
|
|
||||||
0x458AFD,
|
|
||||||
0x448CFE,
|
|
||||||
0x448FFE,
|
|
||||||
0x4391FF,
|
|
||||||
0x4294FF,
|
|
||||||
0x4196FF,
|
|
||||||
0x3F99FF,
|
|
||||||
0x3E9BFF,
|
|
||||||
0x3D9EFE,
|
|
||||||
0x3BA1FD,
|
|
||||||
0x3AA3FD,
|
|
||||||
0x38A6FB,
|
|
||||||
0x36A8FA,
|
|
||||||
0x35ABF9,
|
|
||||||
0x33ADF7,
|
|
||||||
0x31B0F6,
|
|
||||||
0x2FB2F4,
|
|
||||||
0x2DB5F2,
|
|
||||||
0x2CB7F0,
|
|
||||||
0x2AB9EE,
|
|
||||||
0x28BCEC,
|
|
||||||
0x26BEEA,
|
|
||||||
0x25C0E7,
|
|
||||||
0x23C3E5,
|
|
||||||
0x21C5E2,
|
|
||||||
0x20C7E0,
|
|
||||||
0x1FC9DD,
|
|
||||||
0x1DCCDB,
|
|
||||||
0x1CCED8,
|
|
||||||
0x1BD0D5,
|
|
||||||
0x1AD2D3,
|
|
||||||
0x19D4D0,
|
|
||||||
0x18D6CD,
|
|
||||||
0x18D8CB,
|
|
||||||
0x18DAC8,
|
|
||||||
0x17DBC5,
|
|
||||||
0x17DDC3,
|
|
||||||
0x17DFC0,
|
|
||||||
0x18E0BE,
|
|
||||||
0x18E2BB,
|
|
||||||
0x19E3B9,
|
|
||||||
0x1AE5B7,
|
|
||||||
0x1BE6B4,
|
|
||||||
0x1DE8B2,
|
|
||||||
0x1EE9AF,
|
|
||||||
0x20EAAD,
|
|
||||||
0x22ECAA,
|
|
||||||
0x24EDA7,
|
|
||||||
0x27EEA4,
|
|
||||||
0x29EFA1,
|
|
||||||
0x2CF09E,
|
|
||||||
0x2FF19B,
|
|
||||||
0x32F298,
|
|
||||||
0x35F394,
|
|
||||||
0x38F491,
|
|
||||||
0x3CF58E,
|
|
||||||
0x3FF68B,
|
|
||||||
0x43F787,
|
|
||||||
0x46F884,
|
|
||||||
0x4AF980,
|
|
||||||
0x4EFA7D,
|
|
||||||
0x51FA79,
|
|
||||||
0x55FB76,
|
|
||||||
0x59FC73,
|
|
||||||
0x5DFC6F,
|
|
||||||
0x61FD6C,
|
|
||||||
0x65FD69,
|
|
||||||
0x69FE65,
|
|
||||||
0x6DFE62,
|
|
||||||
0x71FE5F,
|
|
||||||
0x75FF5C,
|
|
||||||
0x79FF59,
|
|
||||||
0x7DFF56,
|
|
||||||
0x80FF53,
|
|
||||||
0x84FF50,
|
|
||||||
0x88FF4E,
|
|
||||||
0x8BFF4B,
|
|
||||||
0x8FFF49,
|
|
||||||
0x92FF46,
|
|
||||||
0x96FF44,
|
|
||||||
0x99FF42,
|
|
||||||
0x9CFE40,
|
|
||||||
0x9FFE3E,
|
|
||||||
0xA2FD3D,
|
|
||||||
0xA4FD3B,
|
|
||||||
0xA7FC3A,
|
|
||||||
0xAAFC39,
|
|
||||||
0xACFB38,
|
|
||||||
0xAFFA37,
|
|
||||||
0xB1F936,
|
|
||||||
0xB4F835,
|
|
||||||
0xB7F835,
|
|
||||||
0xB9F634,
|
|
||||||
0xBCF534,
|
|
||||||
0xBFF434,
|
|
||||||
0xC1F334,
|
|
||||||
0xC4F233,
|
|
||||||
0xC6F033,
|
|
||||||
0xC9EF34,
|
|
||||||
0xCBEE34,
|
|
||||||
0xCEEC34,
|
|
||||||
0xD0EB34,
|
|
||||||
0xD2E934,
|
|
||||||
0xD5E835,
|
|
||||||
0xD7E635,
|
|
||||||
0xD9E435,
|
|
||||||
0xDBE236,
|
|
||||||
0xDDE136,
|
|
||||||
0xE0DF37,
|
|
||||||
0xE2DD37,
|
|
||||||
0xE4DB38,
|
|
||||||
0xE6D938,
|
|
||||||
0xE7D738,
|
|
||||||
0xE9D539,
|
|
||||||
0xEBD339,
|
|
||||||
0xEDD139,
|
|
||||||
0xEECF3A,
|
|
||||||
0xF0CD3A,
|
|
||||||
0xF1CB3A,
|
|
||||||
0xF3C93A,
|
|
||||||
0xF4C73A,
|
|
||||||
0xF5C53A,
|
|
||||||
0xF7C33A,
|
|
||||||
0xF8C13A,
|
|
||||||
0xF9BF39,
|
|
||||||
0xFABD39,
|
|
||||||
0xFABA38,
|
|
||||||
0xFBB838,
|
|
||||||
0xFCB637,
|
|
||||||
0xFCB436,
|
|
||||||
0xFDB135,
|
|
||||||
0xFDAF35,
|
|
||||||
0xFEAC34,
|
|
||||||
0xFEA933,
|
|
||||||
0xFEA732,
|
|
||||||
0xFEA431,
|
|
||||||
0xFFA12F,
|
|
||||||
0xFF9E2E,
|
|
||||||
0xFF9C2D,
|
|
||||||
0xFF992C,
|
|
||||||
0xFE962B,
|
|
||||||
0xFE932A,
|
|
||||||
0xFE9028,
|
|
||||||
0xFE8D27,
|
|
||||||
0xFD8A26,
|
|
||||||
0xFD8724,
|
|
||||||
0xFC8423,
|
|
||||||
0xFC8122,
|
|
||||||
0xFB7E20,
|
|
||||||
0xFB7B1F,
|
|
||||||
0xFA781E,
|
|
||||||
0xF9751C,
|
|
||||||
0xF8721B,
|
|
||||||
0xF86F1A,
|
|
||||||
0xF76C19,
|
|
||||||
0xF66917,
|
|
||||||
0xF56616,
|
|
||||||
0xF46315,
|
|
||||||
0xF36014,
|
|
||||||
0xF25D13,
|
|
||||||
0xF05B11,
|
|
||||||
0xEF5810,
|
|
||||||
0xEE550F,
|
|
||||||
0xED530E,
|
|
||||||
0xEB500E,
|
|
||||||
0xEA4E0D,
|
|
||||||
0xE94B0C,
|
|
||||||
0xE7490B,
|
|
||||||
0xE6470A,
|
|
||||||
0xE4450A,
|
|
||||||
0xE34209,
|
|
||||||
0xE14009,
|
|
||||||
0xDF3E08,
|
|
||||||
0xDE3C07,
|
|
||||||
0xDC3A07,
|
|
||||||
0xDA3806,
|
|
||||||
0xD83606,
|
|
||||||
0xD63405,
|
|
||||||
0xD43205,
|
|
||||||
0xD23105,
|
|
||||||
0xD02F04,
|
|
||||||
0xCE2D04,
|
|
||||||
0xCC2B03,
|
|
||||||
0xCA2903,
|
|
||||||
0xC82803,
|
|
||||||
0xC62602,
|
|
||||||
0xC32402,
|
|
||||||
0xC12302,
|
|
||||||
0xBF2102,
|
|
||||||
0xBC1F01,
|
|
||||||
0xBA1E01,
|
|
||||||
0xB71C01,
|
|
||||||
0xB41B01,
|
|
||||||
0xB21901,
|
|
||||||
0xAF1801,
|
|
||||||
0xAC1601,
|
|
||||||
0xAA1501,
|
|
||||||
0xA71401,
|
|
||||||
0xA41201,
|
|
||||||
0xA11101,
|
|
||||||
0x9E1001,
|
|
||||||
0x9B0F01,
|
|
||||||
0x980D01,
|
|
||||||
0x950C01,
|
|
||||||
0x920B01,
|
|
||||||
0x8E0A01,
|
|
||||||
0x8B0901,
|
|
||||||
0x880801,
|
|
||||||
0x850701,
|
|
||||||
0x810602,
|
|
||||||
0x7E0502,
|
|
||||||
0x7A0402,
|
|
||||||
],
|
|
||||||
waterfall_min_level=-88,
|
waterfall_min_level=-88,
|
||||||
waterfall_max_level=-20,
|
waterfall_max_level=-20,
|
||||||
waterfall_auto_level_margin={"min": 3, "max": 10, "min_range": 50},
|
waterfall_auto_level_margin={"min": 3, "max": 10, "min_range": 50},
|
||||||
|
@ -40,11 +40,33 @@ class ConfigMigratorVersion2(ConfigMigrator):
|
|||||||
config["version"] = 3
|
config["version"] = 3
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigMigratorVersion3(ConfigMigrator):
|
||||||
|
|
||||||
|
def migrate(self, config):
|
||||||
|
# inline import due to circular dependencies
|
||||||
|
from owrx.waterfall import WaterfallOptions
|
||||||
|
|
||||||
|
if "waterfall_scheme" in config:
|
||||||
|
scheme = WaterfallOptions(config["waterfall_scheme"])
|
||||||
|
if scheme is not WaterfallOptions.CUSTOM and "waterfall_colors" in config:
|
||||||
|
del config["waterfall_colors"]
|
||||||
|
elif "waterfall_colors" in config:
|
||||||
|
scheme = WaterfallOptions.findByColors(config["waterfall_colors"])
|
||||||
|
if scheme is not WaterfallOptions.CUSTOM:
|
||||||
|
logger.debug("detected waterfall option: %s", scheme.value)
|
||||||
|
if "waterfall_colors" in config:
|
||||||
|
del config["waterfall_colors"]
|
||||||
|
config["waterfall_scheme"] = scheme.value
|
||||||
|
|
||||||
|
config["version"] = 4
|
||||||
|
|
||||||
|
|
||||||
class Migrator(object):
|
class Migrator(object):
|
||||||
currentVersion = 3
|
currentVersion = 4
|
||||||
migrators = {
|
migrators = {
|
||||||
1: ConfigMigratorVersion1(),
|
1: ConfigMigratorVersion1(),
|
||||||
2: ConfigMigratorVersion2(),
|
2: ConfigMigratorVersion2(),
|
||||||
|
3: ConfigMigratorVersion3(),
|
||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -11,6 +11,7 @@ from owrx.form import (
|
|||||||
)
|
)
|
||||||
from owrx.form.receiverid import ReceiverKeysConverter
|
from owrx.form.receiverid import ReceiverKeysConverter
|
||||||
from owrx.form.gfx import AvatarInput, TopPhotoInput
|
from owrx.form.gfx import AvatarInput, TopPhotoInput
|
||||||
|
from owrx.waterfall import WaterfallOptions
|
||||||
import shutil
|
import shutil
|
||||||
import os
|
import os
|
||||||
from glob import glob
|
from glob import glob
|
||||||
@ -74,6 +75,11 @@ class GeneralSettingsController(SettingsFormController):
|
|||||||
),
|
),
|
||||||
Section(
|
Section(
|
||||||
"Waterfall settings",
|
"Waterfall settings",
|
||||||
|
DropdownInput(
|
||||||
|
"waterfall_scheme",
|
||||||
|
"Waterfall color scheme",
|
||||||
|
options=WaterfallOptions,
|
||||||
|
),
|
||||||
NumberInput(
|
NumberInput(
|
||||||
"fft_fps",
|
"fft_fps",
|
||||||
"FFT speed",
|
"FFT speed",
|
||||||
|
@ -0,0 +1,320 @@
|
|||||||
|
from owrx.form import DropdownEnum
|
||||||
|
|
||||||
|
|
||||||
|
class Waterfall(object):
|
||||||
|
def __init__(self, colors):
|
||||||
|
self.colors = colors
|
||||||
|
|
||||||
|
def getColors(self):
|
||||||
|
return self.colors
|
||||||
|
|
||||||
|
|
||||||
|
class GoogleTurboWaterfall(Waterfall):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__(
|
||||||
|
[
|
||||||
|
0x30123B,
|
||||||
|
0x311542,
|
||||||
|
0x33184A,
|
||||||
|
0x341B51,
|
||||||
|
0x351E58,
|
||||||
|
0x36215F,
|
||||||
|
0x372466,
|
||||||
|
0x38266C,
|
||||||
|
0x392973,
|
||||||
|
0x3A2C79,
|
||||||
|
0x3B2F80,
|
||||||
|
0x3C3286,
|
||||||
|
0x3D358B,
|
||||||
|
0x3E3891,
|
||||||
|
0x3E3A97,
|
||||||
|
0x3F3D9C,
|
||||||
|
0x4040A2,
|
||||||
|
0x4043A7,
|
||||||
|
0x4146AC,
|
||||||
|
0x4248B1,
|
||||||
|
0x424BB6,
|
||||||
|
0x434EBA,
|
||||||
|
0x4351BF,
|
||||||
|
0x4453C3,
|
||||||
|
0x4456C7,
|
||||||
|
0x4559CB,
|
||||||
|
0x455BCF,
|
||||||
|
0x455ED3,
|
||||||
|
0x4561D7,
|
||||||
|
0x4663DA,
|
||||||
|
0x4666DD,
|
||||||
|
0x4669E1,
|
||||||
|
0x466BE4,
|
||||||
|
0x466EE7,
|
||||||
|
0x4671E9,
|
||||||
|
0x4673EC,
|
||||||
|
0x4676EE,
|
||||||
|
0x4678F1,
|
||||||
|
0x467BF3,
|
||||||
|
0x467DF5,
|
||||||
|
0x4680F7,
|
||||||
|
0x4682F9,
|
||||||
|
0x4685FA,
|
||||||
|
0x4587FC,
|
||||||
|
0x458AFD,
|
||||||
|
0x448CFE,
|
||||||
|
0x448FFE,
|
||||||
|
0x4391FF,
|
||||||
|
0x4294FF,
|
||||||
|
0x4196FF,
|
||||||
|
0x3F99FF,
|
||||||
|
0x3E9BFF,
|
||||||
|
0x3D9EFE,
|
||||||
|
0x3BA1FD,
|
||||||
|
0x3AA3FD,
|
||||||
|
0x38A6FB,
|
||||||
|
0x36A8FA,
|
||||||
|
0x35ABF9,
|
||||||
|
0x33ADF7,
|
||||||
|
0x31B0F6,
|
||||||
|
0x2FB2F4,
|
||||||
|
0x2DB5F2,
|
||||||
|
0x2CB7F0,
|
||||||
|
0x2AB9EE,
|
||||||
|
0x28BCEC,
|
||||||
|
0x26BEEA,
|
||||||
|
0x25C0E7,
|
||||||
|
0x23C3E5,
|
||||||
|
0x21C5E2,
|
||||||
|
0x20C7E0,
|
||||||
|
0x1FC9DD,
|
||||||
|
0x1DCCDB,
|
||||||
|
0x1CCED8,
|
||||||
|
0x1BD0D5,
|
||||||
|
0x1AD2D3,
|
||||||
|
0x19D4D0,
|
||||||
|
0x18D6CD,
|
||||||
|
0x18D8CB,
|
||||||
|
0x18DAC8,
|
||||||
|
0x17DBC5,
|
||||||
|
0x17DDC3,
|
||||||
|
0x17DFC0,
|
||||||
|
0x18E0BE,
|
||||||
|
0x18E2BB,
|
||||||
|
0x19E3B9,
|
||||||
|
0x1AE5B7,
|
||||||
|
0x1BE6B4,
|
||||||
|
0x1DE8B2,
|
||||||
|
0x1EE9AF,
|
||||||
|
0x20EAAD,
|
||||||
|
0x22ECAA,
|
||||||
|
0x24EDA7,
|
||||||
|
0x27EEA4,
|
||||||
|
0x29EFA1,
|
||||||
|
0x2CF09E,
|
||||||
|
0x2FF19B,
|
||||||
|
0x32F298,
|
||||||
|
0x35F394,
|
||||||
|
0x38F491,
|
||||||
|
0x3CF58E,
|
||||||
|
0x3FF68B,
|
||||||
|
0x43F787,
|
||||||
|
0x46F884,
|
||||||
|
0x4AF980,
|
||||||
|
0x4EFA7D,
|
||||||
|
0x51FA79,
|
||||||
|
0x55FB76,
|
||||||
|
0x59FC73,
|
||||||
|
0x5DFC6F,
|
||||||
|
0x61FD6C,
|
||||||
|
0x65FD69,
|
||||||
|
0x69FE65,
|
||||||
|
0x6DFE62,
|
||||||
|
0x71FE5F,
|
||||||
|
0x75FF5C,
|
||||||
|
0x79FF59,
|
||||||
|
0x7DFF56,
|
||||||
|
0x80FF53,
|
||||||
|
0x84FF50,
|
||||||
|
0x88FF4E,
|
||||||
|
0x8BFF4B,
|
||||||
|
0x8FFF49,
|
||||||
|
0x92FF46,
|
||||||
|
0x96FF44,
|
||||||
|
0x99FF42,
|
||||||
|
0x9CFE40,
|
||||||
|
0x9FFE3E,
|
||||||
|
0xA2FD3D,
|
||||||
|
0xA4FD3B,
|
||||||
|
0xA7FC3A,
|
||||||
|
0xAAFC39,
|
||||||
|
0xACFB38,
|
||||||
|
0xAFFA37,
|
||||||
|
0xB1F936,
|
||||||
|
0xB4F835,
|
||||||
|
0xB7F835,
|
||||||
|
0xB9F634,
|
||||||
|
0xBCF534,
|
||||||
|
0xBFF434,
|
||||||
|
0xC1F334,
|
||||||
|
0xC4F233,
|
||||||
|
0xC6F033,
|
||||||
|
0xC9EF34,
|
||||||
|
0xCBEE34,
|
||||||
|
0xCEEC34,
|
||||||
|
0xD0EB34,
|
||||||
|
0xD2E934,
|
||||||
|
0xD5E835,
|
||||||
|
0xD7E635,
|
||||||
|
0xD9E435,
|
||||||
|
0xDBE236,
|
||||||
|
0xDDE136,
|
||||||
|
0xE0DF37,
|
||||||
|
0xE2DD37,
|
||||||
|
0xE4DB38,
|
||||||
|
0xE6D938,
|
||||||
|
0xE7D738,
|
||||||
|
0xE9D539,
|
||||||
|
0xEBD339,
|
||||||
|
0xEDD139,
|
||||||
|
0xEECF3A,
|
||||||
|
0xF0CD3A,
|
||||||
|
0xF1CB3A,
|
||||||
|
0xF3C93A,
|
||||||
|
0xF4C73A,
|
||||||
|
0xF5C53A,
|
||||||
|
0xF7C33A,
|
||||||
|
0xF8C13A,
|
||||||
|
0xF9BF39,
|
||||||
|
0xFABD39,
|
||||||
|
0xFABA38,
|
||||||
|
0xFBB838,
|
||||||
|
0xFCB637,
|
||||||
|
0xFCB436,
|
||||||
|
0xFDB135,
|
||||||
|
0xFDAF35,
|
||||||
|
0xFEAC34,
|
||||||
|
0xFEA933,
|
||||||
|
0xFEA732,
|
||||||
|
0xFEA431,
|
||||||
|
0xFFA12F,
|
||||||
|
0xFF9E2E,
|
||||||
|
0xFF9C2D,
|
||||||
|
0xFF992C,
|
||||||
|
0xFE962B,
|
||||||
|
0xFE932A,
|
||||||
|
0xFE9028,
|
||||||
|
0xFE8D27,
|
||||||
|
0xFD8A26,
|
||||||
|
0xFD8724,
|
||||||
|
0xFC8423,
|
||||||
|
0xFC8122,
|
||||||
|
0xFB7E20,
|
||||||
|
0xFB7B1F,
|
||||||
|
0xFA781E,
|
||||||
|
0xF9751C,
|
||||||
|
0xF8721B,
|
||||||
|
0xF86F1A,
|
||||||
|
0xF76C19,
|
||||||
|
0xF66917,
|
||||||
|
0xF56616,
|
||||||
|
0xF46315,
|
||||||
|
0xF36014,
|
||||||
|
0xF25D13,
|
||||||
|
0xF05B11,
|
||||||
|
0xEF5810,
|
||||||
|
0xEE550F,
|
||||||
|
0xED530E,
|
||||||
|
0xEB500E,
|
||||||
|
0xEA4E0D,
|
||||||
|
0xE94B0C,
|
||||||
|
0xE7490B,
|
||||||
|
0xE6470A,
|
||||||
|
0xE4450A,
|
||||||
|
0xE34209,
|
||||||
|
0xE14009,
|
||||||
|
0xDF3E08,
|
||||||
|
0xDE3C07,
|
||||||
|
0xDC3A07,
|
||||||
|
0xDA3806,
|
||||||
|
0xD83606,
|
||||||
|
0xD63405,
|
||||||
|
0xD43205,
|
||||||
|
0xD23105,
|
||||||
|
0xD02F04,
|
||||||
|
0xCE2D04,
|
||||||
|
0xCC2B03,
|
||||||
|
0xCA2903,
|
||||||
|
0xC82803,
|
||||||
|
0xC62602,
|
||||||
|
0xC32402,
|
||||||
|
0xC12302,
|
||||||
|
0xBF2102,
|
||||||
|
0xBC1F01,
|
||||||
|
0xBA1E01,
|
||||||
|
0xB71C01,
|
||||||
|
0xB41B01,
|
||||||
|
0xB21901,
|
||||||
|
0xAF1801,
|
||||||
|
0xAC1601,
|
||||||
|
0xAA1501,
|
||||||
|
0xA71401,
|
||||||
|
0xA41201,
|
||||||
|
0xA11101,
|
||||||
|
0x9E1001,
|
||||||
|
0x9B0F01,
|
||||||
|
0x980D01,
|
||||||
|
0x950C01,
|
||||||
|
0x920B01,
|
||||||
|
0x8E0A01,
|
||||||
|
0x8B0901,
|
||||||
|
0x880801,
|
||||||
|
0x850701,
|
||||||
|
0x810602,
|
||||||
|
0x7E0502,
|
||||||
|
0x7A0402,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TeejeezWaterfall(Waterfall):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__([0x000000, 0x0000FF, 0x00FFFF, 0x00FF00, 0xFFFF00, 0xFF0000, 0xFF00FF, 0xFFFFFF])
|
||||||
|
|
||||||
|
|
||||||
|
class Ha7ilmWaterfall(Waterfall):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__([0x000000, 0x2E6893, 0x69A5D0, 0x214B69, 0x9DC4E0, 0xFFF775, 0xFF8A8A, 0xB20000])
|
||||||
|
|
||||||
|
|
||||||
|
class CustomWaterfall(Waterfall):
|
||||||
|
def __init__(self):
|
||||||
|
# TODO: read waterfall_colors from config
|
||||||
|
super().__init__([0x00000])
|
||||||
|
|
||||||
|
|
||||||
|
class WaterfallOptions(DropdownEnum):
|
||||||
|
DEFAULT = ("Google Turbo (OpenWebRX default)", GoogleTurboWaterfall)
|
||||||
|
TEEJEEZ = ("Original colorscheme by teejeez (default in OpenWebRX < 0.20)", TeejeezWaterfall)
|
||||||
|
HA7ILM = ("Old theme by HA7ILM", Ha7ilmWaterfall)
|
||||||
|
CUSTOM = ("Custom", CustomWaterfall)
|
||||||
|
|
||||||
|
def __new__(cls, *args, **kwargs):
|
||||||
|
description, waterfallClass = args
|
||||||
|
obj = object.__new__(cls)
|
||||||
|
obj._value_ = waterfallClass.__name__
|
||||||
|
obj.waterfallClass = waterfallClass
|
||||||
|
obj.description = description
|
||||||
|
return obj
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.description
|
||||||
|
|
||||||
|
def instantiate(self):
|
||||||
|
return self.waterfallClass()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def findByColors(colors):
|
||||||
|
for o in WaterfallOptions:
|
||||||
|
if o is WaterfallOptions.CUSTOM:
|
||||||
|
continue
|
||||||
|
waterfall = o.instantiate()
|
||||||
|
if waterfall.getColors() == colors:
|
||||||
|
return o
|
||||||
|
return WaterfallOptions.CUSTOM
|
Loading…
Reference in New Issue
Block a user