History wipe because Zed is very annoying...
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
from os import environ
|
||||
|
||||
from .enums import SunshineAudioConfig
|
||||
from .env_key import SunshineEnvKey as EnvKey
|
||||
from .structs import (
|
||||
SunshineAudioConfig,
|
||||
SunshineClientInfo,
|
||||
SunshineClientOptions,
|
||||
SunshineClientSpecs,
|
||||
SunshineEnvironmentVariables,
|
||||
)
|
||||
|
||||
|
||||
def load_env_variables() -> SunshineEnvironmentVariables:
|
||||
def ld_str(var: EnvKey):
|
||||
return environ.get(var.requested_key, var.default)
|
||||
|
||||
def ld_int(var: EnvKey):
|
||||
return int(ld_str(var))
|
||||
|
||||
def ld_bool(var: EnvKey):
|
||||
return ld_str(var).lower() == "true"
|
||||
|
||||
return SunshineEnvironmentVariables(
|
||||
SunshineClientInfo(
|
||||
app_id=ld_str(EnvKey.APP_ID), app_name=ld_str(EnvKey.APP_NAME)
|
||||
),
|
||||
SunshineClientSpecs(
|
||||
width=ld_int(EnvKey.WIDTH),
|
||||
height=ld_int(EnvKey.HEIGHT),
|
||||
fps=ld_int(EnvKey.FPS),
|
||||
hdr=ld_bool(EnvKey.HDR),
|
||||
gcmap=ld_int(EnvKey.GCMAP),
|
||||
),
|
||||
SunshineClientOptions(
|
||||
host_audio=ld_bool(EnvKey.HOST_AUDIO),
|
||||
enable_sops=ld_bool(EnvKey.ENABLE_SOPS),
|
||||
audio_config=SunshineAudioConfig(ld_str(EnvKey.AUDIO_CONFIG)),
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,7 @@
|
||||
from enum import StrEnum
|
||||
|
||||
|
||||
class SunshineAudioConfig(StrEnum):
|
||||
STEREO = "2.0"
|
||||
SURROUND_5_1 = "5.1"
|
||||
SURROUND_7_1 = "7.1"
|
||||
@@ -0,0 +1,22 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class KeyDefaultMixin(str):
|
||||
def __new__(cls, requested_key: str, default: str):
|
||||
obj = str.__new__(cls, requested_key)
|
||||
obj.requested_key = requested_key
|
||||
obj.default = default
|
||||
return obj
|
||||
|
||||
|
||||
class SunshineEnvKey(KeyDefaultMixin, Enum):
|
||||
APP_ID = ("SUNSHINE_APP_ID", "Unknown ID")
|
||||
APP_NAME = ("SUNSHINE_APP_NAME", "Unknown App Name")
|
||||
WIDTH = ("SUNSHINE_CLIENT_WIDTH", "1920")
|
||||
HEIGHT = ("SUNSHINE_CLIENT_HEIGHT", "1080")
|
||||
FPS = ("SUNSHINE_CLIENT_FPS", "60")
|
||||
HDR = ("SUNSHINE_CLIENT_HDR", "0")
|
||||
GCMAP = ("SUNSHINE_CLIENT_GCMAP", "0")
|
||||
HOST_AUDIO = ("SUNSHINE_CLIENT_HOST_AUDIO", "0")
|
||||
ENABLE_SOPS = ("SUNSHINE_CLIENT_ENABLE_SOPS", "0")
|
||||
AUDIO_CONFIG = ("SUNSHINE_CLIENT_AUDIO_CONFIGURATION", "2.0")
|
||||
@@ -0,0 +1,32 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from .enums import SunshineAudioConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class SunshineClientInfo:
|
||||
app_id: str
|
||||
app_name: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class SunshineClientSpecs:
|
||||
width: int
|
||||
height: int
|
||||
fps: int
|
||||
hdr: bool
|
||||
gcmap: int
|
||||
|
||||
|
||||
@dataclass
|
||||
class SunshineClientOptions:
|
||||
host_audio: bool
|
||||
enable_sops: bool
|
||||
audio_config: SunshineAudioConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class SunshineEnvironmentVariables:
|
||||
info: SunshineClientInfo
|
||||
specs: SunshineClientSpecs
|
||||
options: SunshineClientOptions
|
||||
Reference in New Issue
Block a user